vitalik.eth|2026年09月16日 21:35
人们越来越普遍地认为,人工智能黑客意味着网络安全注定要失败。
我不同意。我认为,一旦人们齐心协力,网络安全自然会成为防御的优势。任何继续持有加密货币的人(包括我,约占我净资产的90%)都在暗中下注。
这就是我打赌的原因。
首先,简单有力的一句话:
如果人工智能可以证明Navier-Stokes和FLT,那么人工智能就可以证明“这个程序是安全的”这一陈述是一个数学定理。即使程序非常复杂。
现在,细致入微:
(另请参见:https://vitalik.eth.limo/general/2026/05/18/fv.html )
“安全”一词实际上意味着隐藏在壁橱里的各种骷髅。Signal(加密信使)的“安全”意味着什么?
你可能想到的最基本的定义是:没有持有收件人密钥的人无法读取消息的内容。
但是:
*你记得包括其他关键的安全形式吗?对手能伪造信息吗?攻击者能否阻止邮件到达收件人?它们是否会通过发送格式错误的消息导致您的客户端崩溃?
*您是否确保您的对手模型包括主动而非被动干扰协议的攻击者?还有那些通过重放你们中任何一个人早些时候通过网络发送给你们或收件人的消息来进行干扰的攻击者?
*如果对手入侵了Signal服务器怎么办?
*您最初是如何得知哪个公钥属于接收者的?如果这个过程被篡改了怎么办?
*如果你的设备在过去或未来的某个时候被黑客攻击了怎么办?那么你的信息仍然安全吗?
*如果你的密钥因操作系统中的错误而泄漏怎么办?还是因为你有一个被窃听的Signal客户端版本?或者,如果数据库损坏了怎么办?
*或者是你用的编程语言的库、解释器或编译器?
*如果你的密钥泄漏是因为硬件产生的可感知信号中的微小扰动泄漏了可以一次提取几百分之一比特密钥的数学关系,该怎么办?
*你是否隐藏了有效载荷的大小?这有关系吗?
*你绝对不会隐藏发送者和接收者的身份,以及每条消息发送的确切时间(想想:不仅是一天中的时间,还有一条消息和下一条消息之间的时间差)。这还不足以推断出很多关于你有什么关系以及你正在进行什么类型的对话的重要事实吗?
所以。..甚至定义也可能超过一千行代码,需要深入仔细地思考才能弄清楚。
致力于使定义更具人类可读性是极其重要的——这可能是目前唯一重要的“高级语言”。
但即便如此,尽管有上述所有情况,对于安全关键组件,定义的攻击面比实现的攻击面小得多。验证定义是否充分是一项比直接扫描代码更容易处理的任务,并且可以通过更好的工具变得更容易处理。
定义也是可加的:如果两个组有两个不同的定义A和B,那么,好吧,你可以证明程序同时满足A和B。这样代码就不是可加的了:如果一个程序是A+B,A或B中的一个bug可能会破坏整个程序。定义是累加的。如果你不能同时满足A和B,那么你就为你的项目隔离了最重要的哲学问题,让它在接下来的几周里努力解决。
有时,定义并不比实现小多少——UI组件可能就是一个例子。但对于许多最关键的组件——消息传递协议、沙盒、SNARKs和FHE等密码学——不对称是真实存在的。
从历史上看,这种方法的一大类失败来自人们只验证了他们代码的一小部分,他们自称是安全关键部分,而忽略了其余部分——事实证明,其余代码中的某些部分也是安全关键的。
在核查困难和稀缺的时候,这是合理的。今天的解决方案是:抱歉,你必须对整个程序进行验证,包括数据库、网络、任何缓存层,一切。现代AI可以做到这一点。
所以这不是关于“好人在坏人之前发现所有漏洞”——这可能也有效,毕竟有限的程序只有有限数量的漏洞,但风险更大——这是一种不对称的策略,首先使代码更具弹性。
这是以太坊未来几年的发展方向。如果不这样做,区块链就没有未来,尤其是具有可扩展性和隐私性的区块链。我们需要让软件真正安全。我们已经取得了很大的进展。
分享至:
脉络
热门快讯
APP下载
X
Telegram
复制链接