AI Pulse

AI花4周证明Signal代码安全,人类只审1%

Google DeepMind 的 AlphaProof Code 花4周,证明了 Signal 实际编译出来的代码是安全的。人类专家审查了约1%。

重点是它验证的层级。这次覆盖的是实现——实际跑起来的代码,而不是协议的设计文档。大多数协议验证做到规格说明就停了。真正的 bug 往往藏在规格和代码之间那道缝里。停在规格,验的只是设计意图。

600万行证明,谁来读

具体做法是这样:Gemini 驱动的智能体写了超过600万行 Lean 证明。Lean 这个证明检查器自己再把证明过一遍。人类专家只看智能体标出来“这里可能有问题”的那约1%。

团队还做了一次健全性检查,确认系统不是摆设。他们把两个旧的、已经修好的 Signal bug 重新塞回代码里。系统给出了机器检查的证明,说明这两个版本不安全。已知的坏东西,它抓得到。

但规格是人写的

这条链路上,规格还是人写、人审。证明的质量,取决于你决定证明什么。

口子也留在这里:证明“代码等于规格”,不等于“代码没有 bug”。规格本身可能写错,系统会一丝不苟地证明一个错误的需求。但能消掉整类 bug,这是实打实的收益。

有人把矛头指向那1%:人类只看智能体标记出来的内容。标记要是偏了,剩下99%除了证明检查器没人碰,而检查器只覆盖规格写了的东西。更狠的玩法是直接攻击规格——故意放一个太弱的属性进去,看系统会不会抱怨。或者给边缘情况写对抗性样例,再找个团队外的人来挑测试漏掉的假设。规格是最先被尝试攻破的地方,因为证明能把一个糟糕的需求做得完全自洽。

真要用,成本在规格上

一位开发者在自己编译器上用了类似方法,规模小得多。只挑最关键的部分,因为 token 要花钱。还有一种更窄的做法:只对高风险路径做这种验证,写规格和审规格才是成本的大头。

对某些东西来说这接近硬要求。任何 TCP 服务器,多半都得证明它在未认证输入上不会崩溃,不会被拿去打远程代码执行。也有人说得更直接:今天做真正的软件产品,不做这类验证就会被黑,没有绕开的路。

从 AlphaProof 到 AlphaCode 这条线,被一位评论者读成递归改进:AI 写的代码能被信任,因为它可以被验证。前提是经过同行评审。

它在 Signal 之外的代码库上泛化得怎么样,没有数据。规格编写和审查的成本会不会成为瓶颈,也没有。普通开发者什么时候能上手,目前不清楚。

关键事实

阅读原文
📚 相关主题 形式化验证安全

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新