[Grant Update] Zcash Shielded Assets Monthly Updates

Dear Zcash Community,

We are happy to share with you some updates related to this grant, based on the work we have been doing over the past months.

The zcash_tx_tool crate for transaction generation

  • While we were developing on the Zebra node to add support for Zcash Shielded Assets (ZSAs), a significant bottleneck was the lack of any available solution to generate ZSA transactions.

  • We therefore created the zcash_tx_tool repository in order to provide a test environment for users to easily create transactions that can be submitted to a Zebra node for validation and addition to the blockchain.

  • Note that this tool supports the generation of V5 transactions (the current deployed version). Furthermore, support was also added for the V6 transaction format as defined in ZIP 230, including the ZSA features of issuance of Custom Assets, transfer (over the Orchard pool), burn of Custom Assets, and finalization of issued Assets. All the other TXv6 components are included as well.

  • The main ZSA test scenario can be seen in: zcash_tx_tool/src/commands/test_orchard_zsa.rs at main · QED-it/zcash_tx_tool · GitHub

  • The tx_tool can be activated to preform the full ZSA E2E flow: issue, transfer and burn using the docker images we provide via the following command:

    > docker run --pull=always \
    -e ZCASH_NODE_ADDRESS=dev.zebra.zsa-test.net \
    -e ZCASH_NODE_PORT=443 \
    -e ZCASH_NODE_PROTOCOL=https \
    public.ecr.aws/j7v0v6n9/tx-tool:latest
    
  • The transaction format can be updated if NU7 requires additional changes. It is based on the ZSA version of librustzcash and other related dependencies.

  • The transactions our tool generates successfully validate on Zebra nodes that support ZSA features. This corresponds to Milestone #2 of our grant.

The testnet and its maintenance

  • We have also set up a single node testnet based on the Zebra node running on an AWS ECS instance.
  • The address is: http://dev.zebra.zsa-test.net. It is possible to connect to this node (a la a single-node testnet) and submit your own transactions through the zcash_tx_tool that was described above.
  • Automatic deployment of the latest stable version of the node to the testnet was also set up.
  • The testnet will periodically reset to avoid long sync times.
  • The testnet is being monitored to provide high availability. We also created auto-deploy and auto-reset scripts as Github Actions, which are also in the zcash_tx_tool repository.
  • Real-time logs are available at https://logs.zebra.zsa-test.net/
  • This corresponds to Milestone #3 of our grant.

Efforts towards integration

  • We have spearheaded getting the ZIPs (ZIP 226, ZIP 227, ZIP 230, ZIP 246) into their final forms for integration of ZSAs into the protocol. This has included subsequent changes added for updates to the SIGHASH computation, and the front-loading of transaction format updates such as Action Groups in order to avoid the need for multiple transaction format changes in quick succession.
  • There has been continuous upkeep of the branches of the various repositories we have added ZSA support to (namely sinsemilla, halo2, orchard, librustzcash, and zebra) . This includes both the updates to support the ZIP changes, as well as the changes needed due to the ongoing review of the OrchardZSA pull request.
  • The implementation is in line with the major upstream changes as of date (such as zip233Amount and the explicit fee field transaction format changes) in librustzcash, and there is a working version of the Zebra node with ZSA support integrated.
  • The OrchardZSA implementation, the most significant part of the ZSA work, is currently in line with the upstream Orchard repository. In addition to full ZSA functionality, all review changes from the core developers were addressed (See PR471 for details) and is ready to be merged into a dedicated feature branch of the upstream Orchard repository (pending final approval).
  • This corresponds to Milestone #4 of the grant.

We look forward to hearing your thoughts!

Best,

The QEDIT Team.

3 Likes