-
Notifications
You must be signed in to change notification settings - Fork 159
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
ZIPs 32 and 316: Refine how IVK components are derived, and other cleanups #564
Conversation
64df00a
to
f1575cd
Compare
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.
Some small fixes/comments to add
f1575cd
to
acfe6ee
Compare
acfe6ee
to
d2eaf83
Compare
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.
ACK
An alternative idea from @str4d: Amend orchard key tree to derive ask, nk, 2 rIVKs, one for recipient, one for change. Both halves use the same nk and ak in their viewing keys Would have to change how ovk and d_k are derived prf_expand only depends on ak and nk, not rIVK Only need adding an extra bit of data to the key tree @str4d correct me |
What we decided on was the following:
Then when spending notes:
This has the following effects:
|
I've reverted all refinements to ZIP 32, in line with the above decision. There were refinements to ZIP 316 that I left in place (specifically the fix to how transparent IVKs were defined, which we want to retain). |
The hardened change path approach is being dropped. ZIP 316 will include separate amendments (to be made later) that derive change addresses within each protocol's key tree, instead of at the spend authorization level.
The largest valid integer for any BIP 32 path element with a defined hardening state (in this case, non-hardened) is 2^32 - 1 (being the 31-bit integer with all bits set to 1). The range of valid diversifier indices for transparent-including UAs is defined as end-inclusive in the ZIP, but used the end-exclusive bound 2^32.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
…ncy. Signed-off-by: Daira Hopwood <daira@jacaranda.org>
cd9e3c3
to
0e83a55
Compare
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
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.
✅
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.
ACK
Co-authored-by: Deirdre Connolly <deirdre@zfnd.org> Signed-off-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Kris Nuttycombe <kris.nuttycombe@gmail.com> Signed-off-by: Daira Hopwood <daira@jacaranda.org>
6e9f5d0
to
983a67a
Compare
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
983a67a
to
12a1678
Compare
Co-authored-by: str4d jack@electriccoin.co
Co-authored-by: Kris Nuttycombe kris@electriccoin.co
Co-authored-by: Deirdre Connolly deirdre@zfnd.org
Signed-off-by: Daira Hopwood daira@jacaranda.org