Approximate activation October 7, 2021

What is NU5?

NU5 is the sixth major network upgrade for Zcash and a component of the Halo Arc product suite release. The testnet will be activated on approximately October 7, 2021 at block height 1,599,200.

NU5 represents the continued evolution of our zk-SNARK technology stack and will move Zcash to the Halo proving system, removing the need for the trusted setup and upgrading the protocol’s underlying cryptography.

Naming convention for this and future Zcash network upgrades has shifted from a theme-based alias, like Canopy and Sapling, to a simple number system. This is meant to provide clarity and consistency moving forward.

Improvements

NU5 will create a new version of Zcashd, the consensus node for Zcash. This will include support for:

ZIP 216: Require Canonical Jubjub Point Encodings

Fixes an oversight in the implementation of the Sapling consensus rules, by rejecting all non-canonical representations of Jubjub points.

ZIP 224: Orchard Shielded Protocol

NU5 introduces a new shielded pool with spending keys and payment addresses that are amenable to future scalability improvements. New pools with separate privacy sets are instituted at major network upgrades to increase security of the monetary base. 

ZIP 225: New transaction version format

This proposal defines an update to the Zcash peer-to-peer transaction format to include support for data elements required to support the Orchard protocol. The new transaction format defines well-bounded regions of the serialized form to serve each of the existing pools of funds, and adds and describes a new region containing Orchard-specific elements.

ZIP 239: Relay of Version 5 Transactions

This proposal alters the peer-to-peer network protocol, adding a new inv message type which must be used for advertising V5 transactions. This ensures that network nodes cannot perform a denial-of-service attack on wallets that are submitting V5 transactions to the mempool.

ZIP 244:  Non-malleable transaction IDs

Among other benefits, this update defines a new transaction digest algorithm for the NU5 network upgrade onward, in order to introduce non-malleable transaction identifiers that commit to all transaction data except for attestations to transaction validity.

ZIP 316: Unified addresses

The unified address (UA) is a future-proof Zcash address format that improves usability, increases the ease of interoperability, and supports shielding Zcash by default. UAs make Zcash easier to use by removing the complexity of multiple address types. This simplifies the user experience and increases interoperability between shielded-only applications and transparent-only applications.

Updated ZIPs

The following ZIPs have been updated to reflect support for NU5 including the Orchard protocol and new transaction format:

ZIP 32: Shielded Hierarchical Deterministic Wallets

ZIP 203: Transaction Expiry

ZIP 209: Prohibit Negative Shielded Chain Value Pool Balances

ZIP 212: Allow Recipient to Derive Ephemeral Secret from Note Plaintext

ZIP 213: Shielded Coinbase

ZIP 221: FlyClient – Consensus-Layer Changes

Consensus Branch ID

The Consensus Branch ID constant is changing for NU5, consistent with the Network Upgrade Mechanism process outlined in ZIP 200. The new constant is 0x37519621.

Version Group ID

Unlike Blossom, Heartwood, and Canopy, and like Overwinter and Sapling, NU5 defines a new transaction version. Therefore, NU5 transactions may be in the new v5 format specified by ZIP 225. Unlike previous transaction version updates, the existing v4 transaction format remains valid after NU5 activation. If the transaction version number is 4 then the version group ID must be 0x892F2085. If the transaction version number is 5 then the version group ID must be 0x26A7270A.

How do I upgrade?

If you are unsure about how to upgrade your node, don’t worry! The Zcash Full Node and CLI user guide has comprehensive sections on upgrading nodes, whether they were installed from source code or the Debian package. A careful read of this guide should answer most upgrade-related questions.

Note for ASIC Miners

ASIC miners do not verify consensus rules, and NU5 does not alter the block header, so there’s no specific upgrade action needed on their part. They rely on the mining pool they’re connecting to and should verify the pool has upgraded if not identified in the list below.