Dear Zcash community,
We’d like to share with you here our update on what we have been working on in the last few weeks.
ZIPs
-
We have actively been working with the ZIP Editors to stabilize the specification of the ZSA ZIPs.
-
We helped merge PR#1077 to help complete the updates to the SIGHASH versioning, and also opened PR#1086 and PR#1088 for some follow on rearrangements that were necessary as a result. All these changes have been merged.
The halo2 crate and sinsemilla crate
- Our work to add in ZSA support was merged by the ECC last month, there have been no further changes needed.
Changes to the orchard crate
-
We completed the changes to the encoding of the issuance authorization signature and issuance validating key (PR#182, PR#184).
-
The additions to the
orchardcrate to implement the ZIP changes for SIGHASH versioning (mentioned above) were also implemented (PR#181). -
Based on discussion with the ECC, we refactored some of the above implementation (PR#192).
-
We also implemented the follow on ZIP changes that were mentioned above (PR#189, PR#193).
-
We also have been keeping up to date with upstream, and ensuring that our upstream pull request (PR#471) is consistently ready for review, even with the ZIP changes. We look forward to the review and discussion of this major chunk of the ZSA implementation.
Changes to the librustzcash crate
-
Just as in
orchard, we will be implementing the latest changes that have been made in the ZIPs, namely theikandissueAuthSigencoding, the support for SIGHASH versioning, and all the follow-on changes (PR#129, PR#142, PR#146). -
We had to also make a change to the serialization of the issue note description that had been made in a previous ZIP editor change but only recently noticed by us (PR#141).
-
We also merged the changes from upstream into our work, so that our upstream PR#1931 remains ready for review and discussion whenever ECC begins looking at it.
-
We are also in the process of adding the sighash versioning to the Sapling serialization (PR#149).
-
The addition of the Fee Rule updates for ZSAs in ZIP 317 are also in the process of being implemented (PR#148).
The Python reference implementation
-
The ZIP changes also necessitate an update to the Python reference implementation and the test vectors they generate. This is also complete (PR#31, PR#32, PR#36, PR#37, PR#38).
-
We have also prepared the sighash versioning changes for the transparent and sapling code as well (PR#34, PR#35).
Zebra
-
We are continuing to discuss the changes in our pull request (PR#9560) to the upstream repository that covers partial support for ZSAs, via parsing, (de)serialisation and validation of V6 transactions with the Zcash Foundation.
-
This PR uses ZSA capable forks of the various crates (such as
orchard,librustzcashand others) down the stack, and therefore merging post review will depend on those forks being merged in those crates. -
The branch that syncs Zebra with the latest versions of our
orchardandlibrustzcashcrates can be looked at on this PR Link.
-
-
We have continued syncing with Zebra - v2.4.2 (PR#87, PR#88).
-
Some API improvements have been prepared for better deployment support such as a jsonrpsee based health-check (PR#90).
-
The state management work continues to progress, and we will submit a subsequent PR with those changes post the review of the current PR (PR Link). We are also adding this functionality to the demo (PR#89).
Updates to zcash_tx_tool
-
We have continued improving the CI/CD of the repository, and allowing for automatic pushes of the latest stable Docker images to the ECR.
-
The Docker images are currently being published to ECR at gallery.ecr.aws/j7v0v6n9/tx-tool
-
We have been preparing support for the state management support work in Zebra to the transaction tool to be able to provide a complete demo (PR#42).
PRs ready for review
-
The
orchardcrate changes for ZSA are in PR#471. -
The
librustzcashcrate changes for ZSA are in PR#1931. -
The initial ZSA changes for zebra are in PR#9560.
Best,
The QEDIT Team.