以太坊智能合约漏洞百出,89%的合约存在漏洞

对区块链技术稍有了解的人都知道,区块链存在的基础是系统中参与交易的所有人要对数字资产的归属达成共识。而从整体上看,区块链则是一种将系统内交易进行编码的可附加账本,除了要达成数字资产归属权共识外,基于区块链技术的任何应用要生效,还要满足很重要的两点,一是每次交易必须有效,二是过往交易历史不能篡改。 然而,要保证交易有效,就必须遵循某一事先约定的规则。现实世界中,各类交易都有相关的法律条款甲乙约束。而在计算机世界里,正如美国著名学者劳伦斯·莱斯格当年所提出的“代码即规则”(code is law)——一旦代码被编写出来并开始执行,就永远不能回收了。这多少能解释区块链在某些具体应用场景下面临的情况。 以比特币客户端为例,目前该客户端拥有约 3 万行代码,而目前的工业标准允许每一百行代码中存在一个 bug。理论上说,哪怕比特币客户端存在 300 个 bug 也是符合行业规则的。但事实并非如此,2010 年 8 月那个利用整数溢出漏洞凭空创造出 1840 亿个比特币的黑客(比特币设计之初的限额仅为 2100 万个),差点就彻底毁灭了比特币。