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 :slight_smile:

ZIPs

  • We opened a new pull request (PR#991) to the zcash/zips repository to the movement of the burn fields into the Action Groups in the V6 transaction format. We have received the green light from the ZIP Editors for this change. We have also responded to all current comments on this PR.
  • Note that the PR targets the draft PR#987 that has been opened by the ZIP Editors to create a new ZIP for the updated SIGHASH computation, instead of the main branch. This is because it causes less redundancy to make the changes on top of this branch.

Changes to the orchard crate

  • As mentioned in our previous update, the PCZT changes required various updates to allow support in the OrchardZSA protocol. We completed the support for the PCZT changes (in PR#143).
  • We also updated our implementation to reflect the changes to the ZIPs in PR#975 (replacing the asset description with a hash) in PR#150.

Changes to the halo2 and sinsemilla crates

  • We have pulled upstream changes to the halo2 crate and made them compatible with our fork (in PR#38). These changes mainly correspond to the shift of code from halo2_gadgets into separate sinsemilla and halo2_poseidon crates.
  • We have also submitted an upstream pull request (PR#2) to the new sinsemilla crate providing the changes needed to support the OrchardZSA protocol.

Changes to the librustzcash crate

  • We have propagated the changes mentioned in the updates to the orchard crate to librustzcash (such as PR#103).
  • We have also made the changes to support the move of the burn fields into the Action Groups (as in the ZIPs PR#991).

Changes to the Python reference implementation

  • We updated the zcash_test_vectors repository to generate the test vectors for the changes in PR#150 of the orchard crate (the move from the asset description string to an asset description hash).
  • We are in the process of merging the upstream changes that were made to remove the use of the std library in the generated Rust vectors.

Zebra Node

  • Our development of the asset supply and state management functionality in Zebra is progressing.
  • We have prepared the changes needed for the move to Action Groups in this crate as well. These include both serialization and consensus changes. This can be seen in PR#42 and PR#46.

Updates to zcash_tx_tool

  • 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 review at present.

PRs ready for review

  • We have submitted PR#823 to the halo2 repository and PR#429 to the orchard repository 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 the suggested changes to the ZIPs for the V6 serialization format open for discussion in PR#991 of the zips repository.
  • We have opened PR#2 to the sinsemilla crate for changes needed to support OrchardZSA in that repository.

Best,

The QEDIT Team.

11 Likes