ZSAs in NU7

Dear Zcash community,

We’d like to share with you our update on what we have been working on towards getting ZSAs ready for NU7.

ZIPs

  • The ZIP Editors merged our pull request (PR#991) to the zcash/zips repository for the movement of the burn fields into the Action Groups in the V6 transaction format. This is now included as a part of the PR#987 opened by the ZIP Editors for transaction format and digest changes for NU7.
  • We have also opened an independent pull request (PR#1009) that performs some rearrangements to the Asset Identifier section of ZIP 227 (the Issuance ZIP) to make the flow of the section more linear.

Changes to the halo2 and sinsemilla crates

  • The ECC merged our upstream pull request (PR#2) to the sinsemilla crate providing the changes needed to support the OrchardZSA protocol! We have updated our dependencies to start pointing to the zcash/sinsemilla crate instead of our fork.
  • We had submitted a pull request to the halo2 repository (PR#823). The ECC reviewed this PR and requested some changes, which we have discussed and incorporated. This is now ready for review again.

Changes to the orchard crate

  • We have completed all the changes that have arisen from ZIP changes to the ZSA ZIPs (such as the movement of the burn fields into the Action Group, and the replacement of the Asset Description string with its hash).
  • We have also merged in the upstream changes to the orchard crate, so our crate is currently completely caught up to upstream! This would make review and merging less complicated. (OrchardZSA commits)
  • We are in the process of discussing some of the ZSA changes to orchard with the ECC, as a precursor to a formal review.

Changes to the librustzcash crate

  • Just as in orchard, we have completed all the changes arising from the updates to the ZSA ZIPs in the librustzcash crate (for example, PR#105, PR#109, PR#110).
  • We are in the process of merging in the changes from upstream into our work.

Changes to the Python reference implementation

  • We have similarly updated the zcash_test_vectors repository to generate the test vectors after incorporating all the changes arising from the ZSA ZIP updates as well (see PR#25 and PR#28).
  • We have also created a PR to merge the upstream changes to this repository, which is being reviewed internally (PR#26).

Zebra

  • Our development of the asset supply and state management functionality in Zebra is progressing well, and we are getting ready for internal review of this critical code.
  • We are reviewing the changes needed for the move to Action Groups in this crate as well, along with the other ZSA ZIP changes mentioned above. This can be seen in PR#42 and PR#46.
  • We are in the process of internal review for the infrastructure required to introduce OrchardZSA (extending shieldedData) and TxV6 in Zebra (PR#37).

Updates to zcash_tx_tool

  • We have updated our tool to include the ZSA ZIP changes that we have implemented elsewhere in the other repositories (as mentioned above).
  • We have deployed a CI to the repository that will confirm the usage of a compatible Zebra version, helping automate our updates better.
  • We are creating ways to allow a user to more easily create their own scenarios for testing, this is in the later stages of review, and we will share more about this soon!

PRs ready for review

  • We have submitted PR#823 to the halo2 repository (and PR#429 to the orchard repository as a reference to support the halo2 gadget changes), as described in the previous update. We will be submitting further PRs after the initial review of this PR, since they build on this base.
  • We also have suggested rearrangement of ZIP 227 for better flow of text in PR#1009 of the zips repository.
  • The orchard crate changes for ZSA are in PR#372.

Best,
The QEDIT Team.

12 Likes