本文深入探讨了区块链安全,指出其不仅仅是代码层面的问题,更是一场策略性的对抗游戏。攻击者总是先行动,通过信息不对称、信号传递和多轮攻击等手段,利用防御者的盲点和激励机制漏洞。文章强调,成功的防御需要理解攻击者的策略,并设计能够打破其游戏规则的防御机制。
2025年6月10日
我过去认为区块链安全是一场代码之战;在 DeFi 或 NFT 智能合约的业务逻辑中寻找漏洞,在密码学中创建和破解安全通信和加密协议,或者使用形式化验证以数学方式找到不成立的属性和规范。但是,我越深入研究,就越意识到区块链安全不仅仅是代码。而是关于游戏,战略性的、对抗性的、不断发展的游戏。在这些游戏中,攻击者 总是先行动。
例如,想象一下:如果你是一名攻击者,你会如何破坏区块链系统?只是利用一个漏洞?还是胜过整个安全模型?
如果我告诉你,一次攻击不仅仅是一次单一的攻击,而是一场多步骤、多回合的交战,其中攻击者 针对一个防御不完善的系统采取完美的策略?这就是对抗性博弈论的意义所在。这就是为什么区块链安全本质上是一场关于谁玩得更好的竞赛。
对抗性博弈论,以其最简单的形式,描述了两个理性的代理(一个攻击者和一个防御者)如何以相反的动机进行竞争。但有趣的地方在于:大多数对区块链协议的攻击都不是一次性的攻击。相反,它们像多回合战略游戏一样展开,其中攻击者 利用可预测的防御者 行为、激励不匹配和信息不对称。让我们看看它的实际运作。
每一个好的对抗性游戏都始于信息不对称——一方比另一方知道得更多。攻击者 总是拥有先发制人的优势,因为他们可以选择何时、何地以及如何攻击。
需要记住的关键点:每一次攻击都始于对防御者 盲点的深刻理解。协议行为的可预测性越高,就越容易玩游戏。 |
---|
这就是博弈论真正发光的地方——攻击者 不仅仅是行动;他们发出信号、虚张声势和误导。
想象一下施塔克尔伯格博弈,这是对抗性博弈论中的一个基本模型,其中一个玩家(攻击者)先行动,第二个玩家(防御者)做出反应。
第一个攻击者 操纵了网络的感知,通过利用人们对可见漏洞的反应方式,引发了一场灾难性事件。
需要记住的关键点:在对抗性游戏中,有时最好的行动不是直接攻击——而是让其他人为你做。 |
---|
在大多数情况下,防御是为单回合攻击设计的——智能合约错误被利用,补丁被部署,问题得到“解决”。
但是当一个攻击在多个回合中展开时会发生什么?
这种多步骤的对抗性策略就是我为什么认为区块链安全不是关于修补代码——而是关于修补博弈机制。
需要记住的关键点:如果你的协议可以在多个阶段被利用,假设攻击者 会慢慢来。快速攻击很花哨。缓慢攻击是致命的。 |
---|
这里我们谈谈在阴影中进行的游戏。
如果你在区块链安全领域待了足够长的时间,你可能听说过黑暗森林理论。Dan Robinson 和 Georgios Konstantopoulos 在 2020 年写了关于它的文章,当时他们试图对一个有漏洞的以太坊合约进行白帽救援。
事情是这样的:
教训是?如果你的交易是可见的,那就已经太晚了。mempool 是一个战场,每一步行动都会被预测和反击。
需要记住的关键点:每一个广播到 mempool 的交易都是对攻击者 优化你的公开邀请。 |
---|
区块链安全不是关于预防所有攻击——这是不可能的。而是关于理解攻击者 正在玩的游戏,并设计出在他们破坏你的协议之前就打破他们策略的防御。
这是我们最失败的地方:
❌ 我们假设攻击者 像我们一样思考。
❌ 我们假设安全是一个技术问题,而不是一个激励问题。
❌ 我们假设一次性的补丁可以永久解决问题。
但是攻击者 从未停止游戏。他们分析你的激励,预测你的对策,并调整他们的策略。
需要记住的关键点:每一个防御都会创造一个新的游戏。每一个游戏都有新的规则。而那些最了解这些规则的人——获胜。 |
---|
我会留下一些应该让你夜不能寐的事情:
🚨 单次防御不起作用——如果你的安全模型假设攻击者 会尝试一次就离开,那么你已经输了。
🚨 区块链中的一切都是非对称信息游戏——攻击者 总是比防御者 看到更多。
🚨 如果一个攻击看起来太简单,你就错过了更深层次的行动——大多数表面上看起来很基础的漏洞实际上是伪装成低成本攻击的多步骤攻击。
🚨 如果激励不一致,最终会有人利用它们——无论你审计代码多少——如果有钱可赚,就会有人玩游戏。
区块链安全不仅仅是关于代码。而是关于预测对抗条件下的人类行为。是关于像攻击者 一样思考,同时像防御者 一样设计。最重要的是——是关于始终保持领先一步。
🚀 轮到你了。你认为我们会在野外看到下一个对抗性策略是什么?
- 原文链接: blog.immunebytes.com/the...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!