-
Notifications
You must be signed in to change notification settings - Fork 107
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
NU5 Tracking: The Spec #1856
Comments
@dconnolly @mpguerra where's the ticket that tracks: "Pre-NU5 spec sections still active in Canopy or NU5, which Zebra hasn't implemented yet" ? |
this is now #1872 |
@dconnolly I don't see any changes for NU5 in 5.4.1.5. CRHivk Hash Function, but I see them in 5.4.1.6 instead. If that's correct, I will move the work in 5.4.1.5 into #1872 for the Pre-NU5 spec work |
@dconnolly I started adding #1864 to some of the spec sections, can you please review these? |
For "4.1.6. Signature" do we need to create an issue for Pallas signatures? |
For "4.1.10 Group Hash" are we going to pull in as a dependency? |
We need to do this eventually for when we are sending money via Orchard but not for 'just' Zebra's NU5 chain validation. So yes we need to create the ticket but it does not have to be completed yet. |
I think this is completed in #1864, under the hood it uses the |
Do we need to create an issue for " 4.9. Merkle Path Validity" also? |
Yes I think so. I am stubbing out similar types to RedJubjub in that branch #1864 just to have the types, but I not sure yet if we just want to port |
I think that is correct, yes |
As a reminder, I have already created a (semi-)generic |
Do we need to create an issue for "4.14. Balance and Binding Signature" ? |
Do we need to create an issue for "5.4.9.3. Halo 2" similar to #305? |
Pool balance is #1895, but we still need to create (or find) tickets for the rest. |
There are a significant number of transaction consensus rules in 7.1 that aren't covered by ZIP-225 or the v5 transaction RFC. I'd like to track those changes in separate tickets, because the v5 transaction RFC is already quite large, and we need to finish it off soon. |
Note that some of the section numbers in the spec changed as a result of inserting section 4.1.3 Pseudo Random Permutations. Also 4.7.2 (sending notes) was split into separate Sapling and Orchard sections. |
Updated section "5.6.4 Unified and Orchard Encodings" with "5.6.4.1 Unified Payment Addresses" |
Added #2064 to section "5.4.1.10 PoseidonHash Function" and Epic |
@dconnolly: Is "4.14. Balance and Binding Signature (Orchard)" fully covered by ZIP-209/#1895 ? If so, we can cross it out from this list |
Looks like we are done here 🎉 |
This epic will track the tasks that need to happen somewhere in code in order to implement Zcash Orchard and the other NU5 ZIPs in Zebra, as defined by the Zcash Specification.
This may include pieces of code contributed to the https://github.com/zcash/orchard crate or https://github.com/zcash/halo2 crate, by the zebrad team or the zcashd or whomever, but they need to happen by someone.
This tracking issue contains segments for the whole spec that includes Orchard changes for now. A checkbox means that that part of the specification describes something to implement.
A checked box or strikethrough means that we:
Our mandatory Canopy checkpoint significantly reduces the number of features that we have to implement.
Leaf nodes are marked by – and correspond to implementable items. They should be followed by issue references that track the status of that issue, or a short explanation. Some pieces of the spec that pertain to sending or receiving money or blockchain scanning are noted here, but not linked to issues, as we are not doing that work for Zebra for NU5 activation.
1. Introduction– nothing implementable2. Notation– nothing implementable3.4. Transactions and Treestates(covered by Design: treestate (note commitment trees and nullifier sets) #958 which is tracked under NU5 Tracking: Pre-NU5 Spec work #1872)Port zebra-chain::sapling to zebra-chain::orchard #1864Stop double-spends by checking nullifiers in the finalized state #2230 Stop double-spends by checking nullifiers and UTXO spends in each non-finalized chain #22314.1.1. Hash Functions– pull as dependencies4.1.2. Pseudo Random Functions– pull as dependencies4.1.3. Pseudo Random Permutations- (will be done as part of the zebra-client work)redpallas
module withreddsa
crate #2080 (not required for NU5 validation)4.1.13. Zero-Knowledge Proving System4.4. Spend Descriptions(covered by ZIP-216/Implement ZIP-216: Require Canonical Point Encodings #1798 which is tracked under NU5 Tracking: Required ZIPs #1854)4.5. Output Descriptions(covered by ZIP-216/Implement ZIP-216: Require Canonical Point Encodings #1798 which is tracked under NU5 Tracking: Required ZIPs #1854)4.7.2. Sending Notes (Sapling)- (will be done as part of the zebra-client work)4.7.3. Sending Notes (Orchard)- (will be done as part of the zebra-client work)4.8. Dummy Notes- probably doesn't exist in the wild yet4.8.2. Dummy Notes (Sapling and Orchard)4.9. Merkle Path Validity(covered by Design: treestate (note commitment trees and nullifier sets) #958 which is tracked under NU5 Tracking: Pre-NU5 Spec work #1872)4.10. SIGHASH Transaction Hashing(covered by ZIP-244 which is tracked under NU5 Tracking: Required ZIPs #1854 )4.13. Balance and Binding Signature (Sapling)(covered by Parse Sapling data in Transaction Version 5 #1829 which is tracked under NU5 Tracking: Required ZIPs #1854)4.15. Spend Authorization Signature (Sapling and Orchard)- (will be done as part of the zebra-client work)Orchard Nullifier #1911Stop double-spends by checking nullifiers in the finalized state #2230 Stop double-spends by checking nullifiers and UTXO spends in each non-finalized chain #22314.19. In-band secret distribution (Sapling and Orchard)(will be done as part of the zebra-client work)4.19.1. Encryption (Sapling and Orchard) - Orchard: derive OutgoingCipherKey ( Sapling and Orchard) #2041(will be done as part of the zebra-client work)4.19.2. Decryption using an Incoming Viewing Key (Sapling and Orchard)Stop double-spends by checking nullifiers and UTXO spends in each non-finalized chain #22314.19.3. Decryption using a Full Viewing Key (Sapling and Orchard)4.21. Block Chain Scanning (Sapling and Orchard)nothing to do here?5.4.1.10. PoseidonHash Function - Import Poseidon hash into Zebra #2064- (will be done as part of the zebra-client work)5.4.3. Authenticated One-Time Symmetric EncryptionHalo2Verifier
async service #21045.6.4.1 Unified Payment Addresses- (will be done as part of the zebra-client work)6. Network Upgrades(tracked by NU5 Tracking: Required ZIPs #1854)Also remember that consensus ZIPs are part of the spec
The text was updated successfully, but these errors were encountered: