事件经过
Zcash的Orchard池是其最新的匿名池——于2022年5月激活(网络升级NU5),构建于Halo 2证明系统之上,专门设计用于消除困扰Zcash早期池的可信设置风险。2026年5月下旬,安全研究员Taylor Hornby——由Shielded Labs专门为此类主动审计聘请——发现了Orchard电路中的一个完备性漏洞。在Anthropic发布Claude Opus 4.8的第二天,他在自定义审计框架中使用该模型,生成了一个可行的概念验证:在一个运行与主网相同规则的本地回归测试环境中,他反复将一笔票据的价值翻倍,直到一个钱包持有超过1000万ZEC。证明通过了验证。网络会接受这笔交易。
| 日期(2026) | 事件 |
|---|---|
| 2022年5月 | Orchard激活(NU5)。该漏洞从第一天起就存在。 |
| 5月29日 | Hornby在回归测试环境中复现了该漏洞利用;开始私下披露。 |
| 6月2日 | 软分叉(Zebra 4.5.3):Orchard交易被暂时禁用以限制风险暴露。 |
| 6月3日 | NU6.2硬分叉:Orchard以修正后的电路和新的验证密钥重新启用。 |
| 6月初 | 完整公开披露及工作记录。ZEC从近期高点下跌约45–50%。 |
从发现到永久修复:约五天,无链分叉,以及一篇异常坦率的公开报告。请记住这种响应质量——它对理解后续内容至关重要。
漏洞的通俗解释
零知识证明让你能够说服验证者某个陈述为真——「这笔交易有效」——同时不泄露背后的秘密(金额、发送方、接收方)。要保证安全,证明系统必须具备完备性:必须不可能为虚假的陈述生成看似有效的证明。
Orchard的缺陷是一个约束不足的构件——具体出在电路所依赖的可变基椭圆曲线标量乘法代码中。用通俗的话说:电路忘了完全钉死它本该强制执行的数学关系之一。这留下了一个缺口,证明者可以从中注入任意的秘密值,却仍能满足验证者运行的所有检查。完备性破裂了。证明系统会将无效的状态转换——虚假票据、膨胀的余额、池内的双重花费——当作合法交易来接受。
一个关于可信度的精确说明:这并非高层协议规范中的漏洞,而是底层证明库中的一个构件级缺陷——这是零知识实现中一类常见且臭名昭著地微妙的错误。标量乘法构件是电路中最难完全约束的部分之一,这正是顶尖密码学家和先前审计在四年内未能发现的原因。
为何「无通胀」与「严重」同时成立
头条保证是准确的:ZEC总供应量从未膨胀,且没有任何用户资金被盗。但更审慎的表述——「该漏洞没有产生可提取的通胀,然而Orchard池内部的余额完整性暂时变得无法证明」——才是真正推动市场反应的部分,值得理解。
- 该漏洞能做什么:在匿名池内部制造无效的状态转换——虚假票据、膨胀的内部余额。由于该池本身就是隐私设计(金额和参与方隐藏,证明为零知识),事后无法通过密码学方法证明或证伪任何人在四年时间窗口内利用了该漏洞。
- 该漏洞不能做什么:将这些虚假价值从Orchard提取出来变为透明ZEC,或扩大可见的货币基础。这是转门机制的工作(见下一节),它守住了。
因此对于一种以隐私健全货币为卖点的币,残留的问题不是「有人搬空了金库」。而是匿名池内部会计的完整性完全依赖于一个后来被发现已损坏的电路——而你无法通过对池进行加总来审计它。这种不可知性——而非确认的盗窃——是持有者抛售的原因。Shielded Labs此后表示正在探索一个新的匿名池,采用强制迁移会计机制,以便未来供应完整性可公开验证,同时进行电路的形式化验证。
转门:无名英雄
Zcash的转门是其价值池之间(透明池、传统的Sprout和Sapling匿名池、以及Orchard)的一个共识级会计不变量。规则简单而残酷:每笔匿名交易揭示进入或离开池的净金额,链追踪每个池的运行余额,任何会导致池余额为负的区块都会被拒绝。
这是在零知识证明之上的一层纵深防御,正是它遏制了本次漏洞。攻击者铸造虚假票据可以在Orchard内部膨胀余额,但当他们试图将这些价值解匿出去时,交易所声明的池流出将超过所有曾合法进入的总额——共识将拒绝该交易。转门如同防爆门:一个池中的完备性失效不会泄漏到全局供应中。这就是为什么每份可信报告都能诚实地声称「无供应通胀,无资金被盗」,同时仍无法验证池的内部历史。
更深层的教训:电路完备性与Monero模型
很容易将此解读为「零知识不好,Monero好」。这不是诚实的结论。诚实的结论是关于每种设计将其风险集中在何处。
Orchard本身就是对Zcash以往合理批评的回应:其早期池使用需要可信设置的证明系统,一旦设置仪式被破坏,可能导致永久性的无法检测的伪造。Halo 2移除了这种可信设置。但本次事件展示了该取舍的代价:没有可信设置,电路的实现必须绝对完备——每个构件、每条约束、每个椭圆曲线操作。任何一处约束不足的关系都会破坏整个保证,而这些构件极难做到完全正确。
Monero做出了不同的取舍。它没有必须编码整个有效性关系的单一电路。其隐私来自更直接的代数机制:Pedersen承诺加范围证明隐藏金额(RingCT),环签名在诱饵输出中提供签名者歧义,隐匿地址将每个输出变为一次性密钥,密钥镜像防止双重花费。在「交易有效」与「数学验证通过」之间的抽象层更少,这意味着针对这类特定的「通过损坏电路伪造价值」漏洞的表面积更小。
- Zcash匿名(Orchard):强大的理论隐私——金额、发送方、接收方和备注完全隐藏,池内匿名集不断增长——代价是必须保持一个非常复杂的约束系统100%正确并在每次变更时重新审计。隐私也是可选的,存在透明回退。
- Monero:强制的、默认开启的隐私,具有实用的强不可链接性,代价是交易更大,以及围绕诱饵质量、输出选择启发式和持续的基元加固(例如进行中的FCMP++升级)的不同风险特征。
两者最终都依赖于正确的实现和持续的审查。ZK以要求电路完美为代价购买「数学隐私」;RingCT通过更明确的检查获得可用的强制隐私,但有其自身的工程取舍。两者都不是魔法。
Zcash做对了什么——以及需要保持诚实的部分
一个中立的指南必须直言不讳:Zcash的处理是负责任披露的典范。团队专门聘请了一位研究者在攻击者之前搜寻这些漏洞;他们与矿工和交易所进行了私下协调;他们在数天内推出了两阶段修复;并且他们完全公开,明确拒绝声称利用是不可能的。他们实际上说:「我们无法通过密码学排除它已被使用的可能性——不要依赖'可能没事'。」这种坦诚是罕见且正确的。
而使Monero倡导者保持诚实的反论点:
- 「越简单越安全」这个说法太绝对了。Monero自身也经历过历史上的审查,多年来有其自身的钱包和节点漏洞,而其强制模型意味着所有价值都依赖于其设计选择,无法退出。
- 构件和约束漏洞是整个ZK行业反复出现的挑战,而非Zcash特有的缺陷。
- 转门和快速响应确实是令人印象深刻的工程。市场惩罚了不可知性,在杠杆和至少一位大型公开持有者(Arthur Hayes)以隐私叙事要求「完美,而非'可能没事'」为由退出的推动下加剧。Monero仅经历了温和的同情性抛售。
- 「蓄意后门」的边缘说法在传播。可信度很低;中立的读者应予以忽略。
这对你意味着什么
如果你持有或使用这两种币,实际解读如下:
- 这是纵深防御的案例研究,而非ZK的死亡告示。转门发挥了作用;证明失败了,而一个后备机制抓住了它。假设自身组件可能失败的系统比不这样假设的系统更具生命力。
- 「完备性」对任何隐私货币而言都是生死攸关的——无论是电路的完备性还是RingCT的代数完备性。将审计频率和形式化验证视为特性,而非开销。
- 强制隐私与可选隐私是一个真实的维度。Monero的无退出模型与Zcash的多池、以透明为主的现实是不同的赌注——根据你希望隐私是默认状态还是一种选择来做出选择。
- AI审计时代是一把双刃剑。一位使用正确框架的防御者在一天内发现了四年专家审查未能发现的东西。攻击者同样可以做到。主动的、AI辅助的审计现在是隐私协议的基本要求。
刚接触非KYC隐私并试图决定从哪里开始?参见如何在没有KYC的情况下购买Monero和经过审查的钱包列表。本指南的目的不是加冕优胜者——而是确保你理解在每种设计中你真正信任的是什么。