-
Notifications
You must be signed in to change notification settings - Fork 1
Transaction Approval / User Controls ZIP #91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for zcash-zips-qedit ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
e702a44 to
9343183
Compare
9343183 to
aae09b0
Compare
7112a88 to
f5b53e1
Compare
vivek-arte
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added some math notation suggestions. Also, would need some updates to make the ZIP build on top of ZIP 226/227 and TxV6 (ZIP 230) instead of directly on top of NU5 (Vanilla Orchard)
zips/draft-approval.rst
Outdated
|
|
||
| Given the Orchard address of the recipient of the output note of an Orchard Action (in the form: $d | pk_d$, see [#protocol-raw-address]_), and given that $g_d$ is a Pallas curve point, derived from $d$ (see [#protocol-diversify-hash]_) - the approval signature derivation goes as follows: | ||
|
|
||
| 1. The sender sends the $OrchardActionDescription$ (the preimage of the message to be signed, as per [#protocol-actions]_) for the recipient to sign. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use OrchardZSA terminology - can also add a [#zip-230]_ reference, that is where the encoding of OrchardZSAAction is defined.
| 1. The sender sends the $OrchardActionDescription$ (the preimage of the message to be signed, as per [#protocol-actions]_) for the recipient to sign. | |
| 1. The sender sends the OrchardZSA Action Description, ``OrchardZSAAction`` (the preimage of the message to be signed, as per [#protocol-actions]_), for the recipient to sign. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the detail in parentheses necessary?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not a must, but I don't think it is an issue to keep either. Happy to remove if you're opinionated about that :)
zips/draft-approval.rst
Outdated
| In fact, such proof of knowledge of $ivk$ can be obtained by using a Schnorr Signature on the Action (the message) with $ivk$ as signing/secret key and $g_d$ as group generator. | ||
|
|
||
| **Note:** Zcash Orchard already uses a Schnorr-based signature scheme instantiated with the Pallas curve (see RedPallas [#protocol-redpallas]_). | ||
| As of NU6, RedPallas is used to instantiate $SpendAuthSig^{Orchard}$ and $BindingSig^{Orchard}$. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not really relevant?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was added simply to note that Schnorr signatures are already used in Zcash, so we're not adding brand new primitives to the protocol. Happy to remove tbh, I'm not really opinionated about this :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, understood. We can leave it in then.
vivek-arte
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just spotted a few LaTeX improvements
Co-authored-by: Vivek Arte <46618816+vivek-arte@users.noreply.github.com>
This PR introduces the TX approval / user controls ZIP.
Motivation
In the current version of Zcash, fund transfers occur without the explicit consent of recipients. While this simplicity offers convenience, it creates significant challenges for users of the network (e.g. individuals or businesses). The goal of this ZIP is to design a mechanism where the recipient of shielded funds on Zcash (for any type of ZSA) can confirm (or ‘approve’) the receipt of the funds on chain. The proposed controls offer robust safeguarding solutions while maintaining Zcash’s core privacy features.
ZIP preview:
https://deploy-preview-91--zcash-zips-qedit.netlify.app/draft-approval
Blog post:
https://forum.zcashcommunity.com/t/introducing-transaction-controls-in-zcash/49640
Full writeup:
https://hackmd.io/@47RQMp3nR22v0fGRiy03DQ/rkLWGBVaR
Upstream PR:
zcash#980