feat(approach): enshrined private transfers#93
Conversation
|
Thanks for this. The spec and live demo links are a great find. A couple of things before we can merge:
I suggest reverting the approach and adding the native shielding to the current |
|
Thanks for the review, @Meyanis95! A few thoughts: I think this is an approach, not a pattern. Per the repo's taxonomy ( This doc combines four building blocks — an intent-transaction wallet authorization standard, a Privacy RPC server-side proving bridge, a system-contract enshrinement model, and a compliance layer (proof of innocence + issuer viewing keys) — into a phased strategy for achieving native private transfers on the L1.
On the roadmap point — this is a proposal for protocol-layer standardization, not app-layer. The roadmap says "Private L1 / shielded transfers" but doesn't specify how. This is an approach to implementing that roadmap item. Thanks! |
|
Checking in here, @Meyanis95! Would love to get this merged! Thanks! |
|
Thanks for the thoughtful reply, @RogerPodacter! I agree the content is valuable! The intent-transaction standard, Privacy RPC bridge, and enshrinement model are all worth documenting. The question is about where it fits in the taxonomy. "Enshrined private transfers" isn't targeting a specific use case; it's an infrastructure strategy. Our existing approaches target specific institutional scenarios (private payments, private trade settlement) and explain how to combine patterns to solve them. This doc is holistic: it proposes a protocol-level deployment path that would serve all of those use cases, but doesn't target any one specifically. That's not a problem with the content; it just means the taxonomy fit is off. As an approach, it would sit alongside docs that answer "how do I do X privately today?" with a doc that answers "how should Ethereum enshrine privacy at L1?" — which risks confusing readers into thinking this is something already achievable, rather than a proposal. What I'd suggest instead:
This way, the substance gets in, readers discover it in the right context, and the building blocks are available for other combinations down the line. Happy to help with the restructuring if useful. |
…legation patterns
c232eaf to
1119135
Compare
|
Agreed, @Meyanis95! I've reworked this PR. The approach doc is gone; this now adds two standalone patterns extracted from EIP-8182:
Both are reusable building blocks that stand on their own independent of the enshrinement argument. They can plug into existing approaches (private payments, private trade settlement) later. Would love your feedback, thanks! |
|
|
||
| - **Unified anonymity set.** All auth methods share one note tree — ECDSA spends are indistinguishable from passkey spends on-chain. | ||
| - **Auth method privacy.** Observers cannot determine which inner circuit was used. | ||
| - **No fund migration.** Changing or adding auth methods does not require moving notes. |
There was a problem hiding this comment.
How would you define the owner field of a note? Where it's usually a public key.
|
Thanks @RogerPodacter! |
|
Thanks, @Meyanis95! I added the front matter and updated patterns/pattern-permissionless-spend-auth.md to respond to your question. To also respond directly here: Notes commit to a hash of an ownership secret ( Thanks! |
| last_reviewed: 2026-03-16 | ||
| context: both | ||
| crops_profile: | ||
| cr: high |
There was a problem hiding this comment.
What prevents the prover from censoring your request? From reading the pattern, this would be low.
There was a problem hiding this comment.
Agreed! I updated the score to low.
| last_reviewed: 2026-03-16 | ||
| context: both | ||
| crops_profile: | ||
| cr: high |
There was a problem hiding this comment.
Do you need a realyer to send tx on-chain? If yes, this might need to be mitigated.
There was a problem hiding this comment.
I'd push back a little here because the pattern itself doesn’t require a relayer: registry updates are permissionless and on-chain.
Someone building a privacy protocol might combine this pattern with other patterns that do require relayers (for example my own proof delegation pattern), but this should be reflected in the CR score of those other patterns, not the score for the auth layer.
Thoughts?
There was a problem hiding this comment.
It's all good, we can keep it this way.
For reference, we have this section for architectural tradeoffs
iptf-map/patterns/pattern-shielding.md
Line 58 in d68037e
Meyanis95
left a comment
There was a problem hiding this comment.
Overall LGTM!
I'll let you fix the CI/CD checks, as well as revise the CR fields in crops_profile.
Thank you for your contribution @RogerPodacter
|
Thanks, @Meyanis95! I pushed a commit that I believe fixes all issues except one, where I replied with my pushback. Let me know if this makes sense! |
What are you adding?
Description
New approach doc: enshrined private transfers. Describes an intent-transaction standard for wallet-authorized private transfers, a Privacy RPC server-side proving bridge, and an L1 system contract upgradeable only by hard fork. Includes optional compliance layers (proof of innocence, issuer viewing keys). Based on this article, with a live demo and draft spec.
Checklist