ZF Engineering Update: 2025 Sprint 1 (January 6th - January 17th)

Hi everyone,

This is the Zcash Foundation’s Engineering update for Sprint 1 of 2025 (January 6th - January 17th,) our first sprint of this year.

During this sprint, the Zebra team worked on fixing an outstanding consensus rule issue in zebra whereby we were not enforcing using the correct consensus branch ID in the SIGHASH computation (this could not cause a consensus issue because another check prevented it, but we want to be safe), as a precursor to this, we did some work to improve and fix the test vectors we use in zebra for NU5 blocks and transactions. We also took advantage of this work to make some optimizations to how we check coinbase transactions in zebra to make this more efficient in certain cases.

We continued to work on adding the spent outpoint and nullifier indices that a zcashd replacement wallet will need from Zebra. We also worked on fixing an error reported by the application monitoring software that we run on our zebra nodes, that was due to a concurrency bug when verifying transactions in blocks that are already present in the mempool.

Finally, we reviewed and merged a PR from @idky137 to enable Zaino to use data from RPC method responses. Thank you for your contributions!

In FROST, we are wrapping up the last few final items to provide a usable implementation of FROST for zcash in wallets, adding some finishing touches to the FROST server, frostd, in preparation for a FROST for Zcash community call and demo as well as an audit. Some of these include a change to no longer send participant identifiers as we now have participant authentication in place as well as adding a broadcast channel to be used during distributed key generation (DKG).

We have also been making some improvements to the FROST reference implementation libraries including, making the DKG secret packages serializable to allow for asynchronous key generation and cleaning up redundant code, among other things.

Finally, we released FROST v2.1.0, which includes the frost-secp256k1-tr crate, which allows the generation of Bitcoin Taproot (BIP340/BIP341) compatible signatures and also signatures for issuance of the upcoming Zcash Shielded Assets (ZSAs).

On DevOps, we’ve been focused on documenting the set up of our CI infrastructure as well as that of other services, such as the ZF hosted dnsseeder.

Thank you for reading!

5 Likes