Smart Contract Invariants Protect Against Cybercriminals
本文证明了通过 INVARIANTEVAL 基准测试和 PONDEREPLAY 框架进行验证的智能合约不变性,能够通过拦截 108,637 笔历史交易中的网络犯罪攻击,有效地防御所有 28 种现实世界的以太坊漏洞利用。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,互联网是一座巨大且繁忙的数字城市,在这里,钱并不存在银行里,而是存放在被称为“区块链”的巨大透明玻璃保险库中。在这些保险库内居住着“智能合约”,它们本质上是自动执行的自动售货机。你投入正确的代码(比如一枚硬币),机器就会给你正确的产品(比如一个代币),整个过程无需人工收银员。但问题在于:这些自动售货机是由人类建造的,而人类会犯错。如果程序员忘记锁门或者算错了找零,聪明的窃贼就可以溜进来,搬走整个保险库,带着数十亿美元消失不见。这就是数字经济中的西部荒野,网络罪犯一直在寻找可以撬开玻璃的松动螺丝。
为了阻止这些窃贼,计算机科学家一直试图建造更好的锁。一个极具前景的想法是“不变性”(invariant)。把“不变性”想象成一个神奇的规则,自动售货机在执行任何操作之前都会进行检查。它就像是一个夜总会的保安,会核对一份清单:“这个人满21岁了吗?门锁好了吗?价格匹配吗?”如果任何一个问题的答案是“否”,机器就会砰地一声关上门并拒绝动作,即使窃贼手里拿着万能钥匙也无济于事。研究人员一直在追问的大问题是:如果我们曾在过去的劫案中设置了这些神奇的保安,他们真的能阻止窃贼吗?更重要的是,我们能否教会计算机自主发明这些保安,还是说我们仍然需要人类专家来编写规则?
这篇论文通过建立一个大规模的现实世界实验,深入探讨了这个问题。来自瑞典皇家理工学院(KTH)的研究团队决定停止猜测,开始测试。他们收集了以太坊区块链上已经发生的28起真实的、涉及数十亿美元的劫案。对于每一场灾难,他们都扮演了数字犯罪现场调查员的角色。他们精确地观察了窃贼是如何闯入的,然后手动编写了一个特定的“不变性”(一条安全规则),该规则能够阻断那次特定的攻击。他们将这个集合命名为 INVARIANTEVAL。
他们不仅编写了规则,还制造了一台时光机来测试它们。利用他们开发的一款名为 PONDEREPLAY 的高级工具,他们重新运行了区块链的历史。他们提取了原始的、存在漏洞的代码,加入了他们新的安全规则,然后重放了108,637笔历史交易。这就像是倒带播放一场银行抢劫案的电影,但这一次,银行安装了一套全新的、超强力的报警系统。
结果非常清晰。当他们运行重放程序时,所有28条由人工编写的安全规则都完美运行。在每种情况下,攻击交易都触碰到了新规则,机器说“没门”,从而阻断了盗窃。研究人员发现,这些规则不仅挡住了坏人,还让好人(合法用户)在98.3%的时间里能正常使用系统。在极少数系统过于严格而拦截了正常用户的情况下,研究人员可以追踪到确切原因,证明这些规则是在按预期工作,而非仅仅是出现了故障。
然而,当研究人员提出第二个问题时,故事发生了急转弯:计算机能做到这一点吗?他们选取了目前该领域最先进、最顶尖的自动化工具——即那些旨在为我们自动编写这些安全规则的工具——并针对这28起真实劫案进行了测试。结果令人感到挫败。在需要被阻止的28起攻击中,这些高级自动化工具仅成功推导出了其中2起攻击的正确安全规则。剩下的26起呢?这些工具要么完全忽略了危险,要么编写的规则过于脆弱,无法阻止窃贼。
那么,结论是什么?论文证明了“不变性”这一概念是一个强大的盾牌;如果我们当时有了正确的规则,我们本可以阻止超过十亿美元的失窃。但坏消息是,我们目前还没有一个能够可靠地为我们编写这些规则的机器人。我们仍然需要人类专家去理解窃贼的特定诡计,并编写守卫规则。自动生成这些防御机制的技术仍处于萌芽阶段,在“我们已知有效的方法”与“我们的计算机目前能自主做到的事”之间,仍存在着巨大的鸿沟。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。