AlphaProof Code
674 points • 2 days ago • Article Link

Google DeepMind 在软件安全领域取得了重大里程碑,成功利用人工智能对 Signal 消息应用程序的核心加密协议进行了形式化验证。这一成就通过一个名为 AlphaProof Code 的新型代理框架实现,标志着在证明代码完全按预期运行且不存在漏洞方面迈出了巨大的一步。过去,形式化验证是一项极其耗费劳动力的任务,但借助这种新方法,研究人员仅用四周时间就完成了对 Signal 广泛部署实现的验证。

AlphaProof Code 框架通过类似专业研究团队的方式来分担验证工作量。人类专家与 AI 合作建立所需的安全规范,而一系列由 Gemini Carbon 模型驱动的 AI 代理则负责创建数学证明这项艰巨工作。该系统生成了超过 600 万行 Lean(为机器校验证明而设计的语言),以确保软件的准确性。通过自动化这一流程,框架让人类专家把注意力放在代码库中只占一小部分、但需要更细致判断的关键环节上,而 Lean 系统则对其余复杂内容进行严格校验。

这一突破尤其引人关注,因为它弥合了协议设计与实际实现之间的难题。尽管许多验证方法停留在高层设计层面,AlphaProof Code 进一步确认:在设备上运行的已编译机器代码始终遵循关键安全属性。团队还通过将已知的历史漏洞重新植入代码来对系统进行再验证,证明 AI 能够成功识别这些版本的问题,并证明其不安全。

随着这项技术走向可扩展应用,未来数字安全的意义也将更为深远:它或将把形式化验证从小众的学术研究,变成保护关键基础设施的可落地方案。凭借数学层面的安全保证,这些方法最终有望应用于保护多类系统,从医疗设备固件到电网软件。与此同时,网络威胁日益复杂,而能够将代码快速核验到具体安全规范之上的能力,将为支撑全球通信的技术提供一条更强有力的新防线。

为推动社区在这一方向开展更深入的探索与开发,Google DeepMind 已将其形式化验证制品开源。该举措旨在促进协作与研究,推动这类由 AI 驱动的安全保障方案在全行业软件加固中的落地实践。通过把自动定理证明与主动防御代理相结合,团队希望在技术快速变革的时代,为构建更具韧性、更安全的系统确立新的标准。

197 comments • Comments Link

• 在此背景下,形式化验证并不能证明不存在所有 bug,而是证明代码行为没有违反由人类专家定义的特定安全模型。

• 验证过程在很大程度上取决于规格说明的质量;如果最初的数学模型存在缺陷,或未能捕获关键的现实世界性质,那么由此产生的证明就会带来一种虚假的安全感。

• 通过针对已编译的 ELF 二进制而非高层 Rust 源码进行验证,验证过程避免了对未经证明且复杂的 Rust 编译器语义的依赖,尽管这只能把保证限定在特定的二进制构建版本上。

• 基于 AI 的工具擅长生成大规模形式化证明,但它们更像是助手而非独立的裁决者:需要人类专家来设定目标、审查逻辑,并应对对抗性边界情况。

• 尽管对"零 bug"的说法仍有人持怀疑态度,但重新引入已知漏洞并确认系统能够检测到它们,表明这一过程具有超越营销噱头的实际效用。

• 由于"停机问题"以及把模糊的现实需求转化为严格且可证明的数学定理所固有的复杂性,将形式化验证扩展到通用软件仍然很困难。

• 有人认为向形式化验证代码的转变是软件工程中不可避免的趋势,类似于行业范围内对加密网页流量的采用;但也有人认为高层业务逻辑仍会抵制这种严谨性。

• 现代开发工作流越来越多地引入专门化的 AI 代理,用来管理长期上下文并协调自主编码任务;在某些团队中,这反而带来了更好的工程实践和更少的线上事故。

• 人们担心这些过程中使用的大语言模型的对齐方式与透明度,尤其是当模型承受的内部压力更偏向基准性能而非可靠性时。

• 当系统一开始就把证明纳入设计时,形式化验证的效果最好;如果试图在混乱的既有代码库上追溯性地"炼成"证明,其效果会差得多。

向 AI 辅助的形式化验证过渡,意味着以更高风险的方式来提供软件安全保障的重大转变,尽管它仍然是用于改进的工具,而不是实现完美万灵药。尽管对像 libsignal 这样复杂库的技术成就令人印象深刻,但讨论也凸显了对基础数学模型局限性以及形式化证明可能无法捕获"规格层"缺陷的健康怀疑。最终,共识是:尽管 AI 能显著降低生成证明所需的工作量,但定义安全优先级并验证逻辑意图这一核心责任依然显然是人类任务。