Ironwood History

Shielded Labs security researcher Taylor Hornby discovered a counterfeiting bug in the Orchard shielded pool's ZK circuit through the use of AI vulnerability analysis. The vulnerability was quickly patched in a hard fork network upgrade days later by the Zcash Open Development Lab (ZODL).

In the following days, Shielded Labs also proposed a solution: in order to re-establish user guarantees about the circulating supply of ZEC, payments in the Orchard shielded pool would be disabled in a network upgrade and a new pool (based on a patched version of Orchard) would be introduced simultaneously. This would force all payments to send money through the turnstile first if they could hypothetically be counterfeit coins.

Kris Nuttycombe from ZODL provided a key refinement: since the new pool would use the same cryptography, wallets could seamlessly route payments to Orchard receivers into the new Ironwood pool instead, to reduce UX friction.

Governance

The community quickly rallied around the proposed idea and, after some debate, Project Tachyon, Valar Group, ZODL, Shielded Labs and the Zcash Foundation agreed to a limited-scope NU6.3 upgrade introducing the pool. The specific consensus rules were resolved in the days that followed.

One of the early areas of debate was the exact mechanism by which payments would be disabled in the old pool. Orchard comes pre-configured with an enableOutputs flag that can be toggled by the consensus rules to disable payments for precisely this kind of situation. However, when disabled, this flag also prohibits the creation of change notes within the pool. This complicates private migration out of the pool, because it forces funds to leave the pool as a sum of (a subset of) the note values in the wallet.

Valar Group was very insistent on the ability to privately migrate. After some back and forth, we compromised on a minor circuit change that would allow restricting payments to either leave the pool or be made to the same address that spent them, permitting change notes but limiting payments within the pool to esoteric payment protocols.

Implementation

The implementation of the upgrade's consensus rules was largely the work of Project Tachyon, Valar Group and ZODL.

Hardware Wallet Support

The ability to migrate funds from Orchard to Ironwood using the Keystone hardware wallet was a focus of Valar Group. After a multi-week effort to ensure migration capabilities were ergonomic, helped in part by optimizations to the PCZT components of the orchard and librustzcash libraries, and after laborious modifications and testing of the Keystone firmware, Valar Group completed this work.

Check out the numerous pull requests for the Keystone firmware alone.

Ironwood Circuit Changes

Project Tachyon, for its part, contributed the modifications to the Ironwood circuit that enable the "cross-address restriction" needed for disabling payments in the pool while allowing private migration.

Formal Verification

Project Tachyon is coordinating an ongoing formal verification effort for Ironwood. Please see their blog post for the most recent update.

Activation

The activation height of 3428143 was chosen for NU6.3, roughly 28 July 2026.

Zcash Foundation landed support for NU6.3. Zakura, our fork of Zebra, has had support for NU6.3 and the Ironwood consensus rules since the initial 1.0.0 release.