以太坊智能合约的致命漏洞阻碍了合约开发者及其应用
几周前,以太坊为了解决拒绝服务攻击(DoS)攻击,执行了硬分叉,但以太坊网络及其开发者依旧在努力解决另外一个重大漏洞。这次智能合约出现的重大漏洞让以太坊网络上的去中心化应用的努力白费了。
11月1号,以太坊开发团队和Solidity的创始人向用户了开发者警告了一个可以重写存储中变量的漏洞。
智能合约中的变量是两个或多个参与方达成的协议。因此,如果攻击者能够访问存储病修改变量,去中心化应用就会受到严重影响,资金可能会被提走,这可能会迫使开发者放弃之前的智能合约项目来重新编译合约。
以太坊的Christian Reitwiessner说道:
“这意味着如果一个攻击者能够让第一个变量值产生溢出,那么就可以修改第二个变量。可以使用算法或者直接传递调用数据的数值来产生第一个变量的溢出(调用数据中的数值是32字节的,填充不需要验证或强制。)。”
包括Ansel Lindner在内的以太坊开发者都说道以太坊应用都因为该漏洞而无法运行。‘
“想象一下,花费了一年创建了一个以太坊应用,结果发现不能运行,”Lindner写到。
他进一步说道跟Geth中的内存漏洞持续影响以太坊网络达数周之久一样,近期的智能合约漏洞很有可能会导致一系列其它的致命漏洞。
“我也同意这是一个一侧有着类似潜在致命漏洞的大山,”Lindner补充道。
Reitwiessner解释道,幸运的是以太坊的多重签名钱包合约并未受影响。但是,包含两个或更多合约的智能合约极有可能会受影响。
“以下合约可能会受影响:包含两个或多个连续状态变量的合约,其中他们的长度总和小于256位,而且第一个状态变量不是有符号的整数、也不是字节NN类型,”Reitwiessner写到。
Reitwiessner建议开发者从停止已经部署的合约并移走资金,使用发布的Solidity 0.4.4编译新的合约。不这么做可能会导致资金丢失,而且核能会严重地影响依赖这些合约的去中心化应用。
截至目前为止,以太坊开发团队已经发现了10个易受攻击的以太坊智能合约,其中的7个可被攻击。
“事实证明只有10个智能合约易受攻击,因此我们能够联系绝大部分的合约开发者。其中的7个合约也只有其所有者在允许修改他们许可范围之外的参数、或者允许解锁之前已经锁定合约时,合约所有者才能攻击这些合约,”Reitwiesnner补充道。
【来源】https://www.cryptocoinsnews.com/ethereum-smart-contract-issues-frustrate-developers-fatal-bugs/
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场