| WPRC Seoul × Decipher | 18 Jun 2026 |
|---|---|
| The Zcash Moment: When AI Finds the Bug | [Brian Seong, Chad] |
Summary
In May 2026, security researcher Taylor Hornby discovered a critical vulnerability in Zcash's Orchard shielded pool and privately disclosed it to Zcash Open Development Lab engineers. According to Shielded Labs, Hornby was engaged to find Zcash protocol vulnerabilities before malicious actors did, and used AI-assisted security auditing techniques, including Anthropic's Opus 4.8, during a targeted review of the Orchard circuit. The vulnerability itself was not an "AI bug." It was a zero-knowledge circuit soundness bug. In plain terms, the Orchard circuit could be convinced to accept an invalid private state transition. Shielded Labs says Hornby produced a local regtest exploit that generated unlimited, undetectable counterfeit ZEC inside Orchard, while ZODL says there is no evidence that the vulnerability was exploited on mainnet, no unauthorized value creation was detected, user privacy was not affected, and Zcash's total supply remained safe.
Why This Matters
Zcash tries to provide two guarantees at the same time: users should be able to transact privately, and no one should be able to create money out of thin air. Orchard matters because it is part of Zcash's core privacy system, not a peripheral app or smart contract. The incident matters because it exposed a hard boundary between privacy and verification. If a transparent blockchain has a bug, the chain may contain public evidence of what happened. If a private pool has a bug, some of that evidence is hidden by design. The question becomes: how can users verify monetary soundness when the transaction history is intentionally private?
Background: What Is Orchard?
Zcash supports transparent transactions, where flows are publicly visible, and shielded transactions, where sender, receiver, and amount can remain hidden. Orchard is Zcash's modern shielded pool. It lets users create and spend private notes while using zero-knowledge proofs to convince the network that each transaction follows the rules. In a normal Orchard transaction, the network sees public artifacts such as nullifiers, commitments, and proofs. It does not see the sender, receiver, amount, or note contents. This gives users privacy, but it also puts enormous weight on the correctness of the zero-knowledge circuit, because the circuit defines what the proof is actually proving.

Component Deep Dive
| Component | What it is |
|---|---|
| Orchard Shielded Pool | Orchard is the private pool where the vulnerability occurred. Users spend old private notes and create new private notes. The network verifies that the transaction is valid, but it does not see the private transaction details. |
| Notes | A note is the private object that represents shielded value. You can think of it as a hidden coin controlled by a user's wallet. Orchard users spend notes and create new notes, but the public chain does not reveal their contents. |
| Commitments | A commitment is a public cryptographic object that represents a hidden note. It lets the chain record that a note exists without revealing what is inside it. |
| Nullifiers | A nullifier is the public anti-double-spend marker. When a private note is spent, a nullifier is revealed. Nodes check that the same nullifier has not appeared before. |
| Zero-Knowledge Circuit | The circuit defines the rules that a private Orchard transaction must satisfy. A zero-knowledge proof only proves what the circuit actually constrains. If the circuit misses a constraint, the proof can still verify while proving the wrong thing. |
| Soundness Bug | The Orchard bug was a soundness bug. Soundness means invalid transactions should not verify. Here, the circuit could accept an invalid private state transition because one part of the circuit was under-constrained. |
| Faulty Gadget | The specific issue was in an elliptic-curve multiplication gadget in halo2_gadgets. ZODL describes the problem as an incomplete double-and-add loop that did not properly tie an internal base value back to the real base. |
| Exploit Path | The attacker would not decrypt private transactions or break user privacy. Instead, they could craft a proof where a false internal relationship still passed the circuit check. That could let the same private value be treated as spendable more than once. |
| Counterfeit ZEC Inside Orchard | The worst-case result was counterfeit value inside the private Orchard pool. Shielded Labs describes this as potentially unlimited and undetectable counterfeit ZEC within Orchard. ZODL frames the practical effect as invalid state transitions and possible double-spending within Orchard. |
| Turnstile Accounting | Zcash's turnstile tracks value entering and exiting shielded pools. This helps protect aggregate supply, but it cannot reconstruct every private transaction that happened inside the old Orchard pool. |
| Emergency Fix | The immediate response was to contain first, then repair. Orchard activity was temporarily disabled through an emergency soft fork, then restored through NU6.2 with a corrected circuit and verifying key. |
| Ironwood Recovery Path | Ironwood is the proposed long-term recovery path. It would seal the old Orchard pool, force funds to exit through the turnstile, and move users into a new shielded pool so supply integrity can be verified again. |
How the Bug Worked
The Orchard vulnerability was not a privacy failure. It did not reveal senders, receivers, amounts, or note contents. It was a soundness failure: the zero-knowledge proof could still verify, but the circuit was not fully enforcing the rule the protocol needed. In a ZK system, the proof only proves the constraints actually written into the circuit. If an important relationship is computed but not properly constrained, a malicious prover may be able to make the circuit accept a false private state transition. In Orchard, the issue was in an elliptic-curve multiplication gadget inside halo2_gadgets; ZODL describes the bug as an incomplete double-and-add loop that failed to properly tie an internal base value back to the real base, while BlockSec explains it as a missing equality constraint that let the internal computation remain self-consistent while becoming disconnected from the intended protocol rule. In practical terms, the attacker would not "decrypt" Orchard. They would craft a proof where invalid private accounting still looked valid to the network. A normal Orchard spend reveals a nullifier so the same private note cannot be spent twice. But because the faulty circuit weakened the binding between the private note, the key material, and the nullifier, a malicious prover could make different valid-looking spends from the same underlying value. Shielded Labs says Taylor Hornby produced a local regtest exploit that generated unlimited, undetectable counterfeit ZEC inside Orchard; ZODL's framing is that successful exploitation could have enabled invalid state transitions or double-spending within Orchard. This is also why privacy made the aftermath difficult: Zcash's turnstile can track value entering and exiting shielded pools, helping protect aggregate supply, but it cannot reconstruct every private transfer that happened inside the old Orchard pool. So "no evidence of exploitation" and "cryptographically proven non-exploitation" are not the same claim.
Response and Recovery
After the disclosure, ZODL and the Zcash ecosystem moved into emergency response mode. The first step was containment: temporarily disabling Orchard activity through a soft fork. The second step was repair: re-enabling Orchard through NU6.2 with a corrected circuit and updated verifying key. ZODL says there is no evidence that the vulnerability was exploited, no unauthorized value creation was detected, user privacy was not affected, and Zcash's total supply remained safe. But because this was a consensus-level issue, it was not something one team could silently patch alone; miners, node operators, exchanges, wallets, infrastructure providers, and other participants had to coordinate under pressure. The bug was technical, but the fix was social as well as technical.
Ironwood is the proposed path from reassurance back to verification. Instead of asking users to simply trust that the old Orchard pool was probably not exploited, Ironwood would create a new shielded pool, prevent new outputs in the old Orchard pool, and force old Orchard funds to exit through the turnstile before becoming usable again. That design aims to let users verify supply integrity by running a node. The AI angle belongs here, but lightly: Shielded Labs says Hornby used AI-assisted auditing techniques and Opus 4.8 during the targeted Orchard review, and used Opus 4.8 to help build the local exploit. The lesson is not "AI saved Zcash" or "AI hacked Zcash." The cleaner lesson is that expert-led, AI-assisted security research found a deep ZK implementation bug in a live privacy system — and that open blockchains may now become systems continuously inspected by both defenders and attackers.
From Open Attack Surface to Open Inspection Surface
Blockchains are unusually inspectable systems. Their code, transaction rules, public state, protocol discussions, and incident histories are often visible, which means the same openness can help both defenders and attackers. The Zcash incident shows the optimistic version: a responsible researcher used AI-assisted review to find a serious bug before any known exploitation. Similar trends are appearing in smart-contract security, where benchmarks like EVMbench and SCONE-bench test whether AI agents can detect, patch, or exploit real vulnerabilities in sandboxed blockchain environments.
The broader shift is that AI changes the scale of inspection. A human auditor might review one part of a system; an AI-assisted workflow can scan more code, generate more hypotheses, test edge cases, and validate exploitability faster. That could turn open blockchains into "open inspection surfaces," where bugs are found earlier and patched before attackers reach them. But the same tools can also compress the path from bug discovery to exploit generation. The question is whether crypto builds defensive AI workflows fast enough, or whether openness simply gives better tools to attackers.
Key Takeaways
The Orchard bug was a ZK circuit soundness failure, not a privacy leak and not an AI-created bug. The exploit path was possible because the circuit did not fully constrain the relationship it needed to enforce. The danger was counterfeit value inside Orchard, where privacy makes post-incident verification difficult. ZODL says there is no evidence of exploitation or unauthorized value creation, but Shielded Labs emphasizes that users cannot prove from the old private pool alone that exploitation never happened. Ironwood matters because it tries to restore independent verification, not just expert reassurance. AI-assisted research matters because it helped find the bug and points toward a future where open protocols are inspected continuously by both defenders and attackers.
Discussion Questions
- Does the Orchard incident make you more confident or less confident in Zcash?
- Is "no known exploitation" enough for a privacy-preserving monetary system?
- Can private money ever provide the same post-incident assurance as transparent money?
- Is Ironwood best understood as a technical fix, a trust-recovery mechanism, or both?
- Should major ZK systems treat formal verification and continuous AI-assisted auditing as mandatory?
- Does open-source blockchain code help defenders more than attackers, or does AI change that balance?
- Will AI become crypto's immune system, or accelerate an AI-versus-AI security race?
References
- Shielded Labs, "The Orchard Counterfeiting Vulnerability—And Next Steps."
- ZODL / Zcash Foundation, "Orchard Vulnerability Successfully Remediated" and "Zebra 4.5.3 and 5.0.0: Emergency Soft Fork and NU6.2 Activation."
- Project Tachyon, "Ironwood: Auditing the Orchard Pool's Supply."
- Shielded Labs / Zcash Community Forum, "Ironwood: Verifying the Soundness of Zcash's Circulating Supply."
- BlockSec, "Zcash Orchard Soundness Bug Analysis."
- OpenAI / Paradigm, "EVMbench: Evaluating AI Agents on Smart Contract Security."
- Anthropic, "AI agents find $4.6M in blockchain smart contract exploits."