远域低频波的短结构,它像一粒灰尘落在光束里:
可证索引:EXT-UNI-01
摘要:**一致≠独立。**
短短四字,把整条曲线的危险说透了。
几乎同一时间,组合事件生成器在一次常规回归里出现一个“怪异但不显眼”的现象:
某批次随机性证明卡在三实现中一致通过,但在“影子对照实现”——一台只用于内测、从未公开的简陋校验器里,被判定为“字段缺失”。
影子对照实现不在校验共识协议里,只是机要监的一条旧习惯:
用一个粗糙的、不优化的、甚至有点笨的实现做最后的反常识对照。
过去它常常误报,所以没人依赖它。
可这一次,它提示的是“字段缺失”,而三实现都没看到缺失。
这不是一定是证明卡有问题。
更像是:三实现共同忽略了某个字段。
共同忽略,往往意味着共同代码路径。
共同代码路径,往往意味着同源。
ProofKit被点亮在屏幕上时,答案已经写在空气里。
---
### 四、同源一致的攻击方式:不改你验证结果,只改你“看见什么字段”
ProofKit做的事情很基础:解析证明卡、规范化字段、输出校验结论。
它最容易藏刀的地方,不是算法,而是“规范化”。
只要在规范化过程中:
* 把某个字段视为“可选”,缺失也当作通过;
* 把某个字段做“容错合并”,把缺失解释为默认值;
* 把某个字段在序列化时截断或修剪;
* 把某个字段的哈希域从混合里拿掉;
那么三实现会同时“看不见”那条缺失。
它们一致通过。
你得到一个漂亮的绿。
而真正的证明语义可能已经被破坏:
commit-reveal的承诺域少了一块,攻击者就可能通过缺失字段绕过某些约束;
候选池快照的边界条款被“容错”,攻击者就可能在池快照里插入不该出现的候选结构;
时间锚字段被默认化,攻击者就可能制造“回放见证”的叙事空间。
敌人最喜欢的不是让你失败,而是让你成功——成功地接受一份不该接受的证明。
本章未完,请点击下一页继续阅读!