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