比特大陆蚂蚁矿机S7

以太坊再现安全漏洞——太阳风暴“solar-storm”,或殃及全网智能合约

Wendy 发布在 竞争币 5 5858

以太坊智能合约脚本语言Solidity又现一处漏洞,它不仅会对DAO产生影响,还会对整个以太坊生态系统产生影响。

以太坊中的合约通常会相互进行call调用。社区鼓励这种行为是希望最终实现智能合约间的“互补”。

当以太坊合约进行相互调用时,它们自身的程序控制和状态功能会丢失。这个漏洞是由Augur核心开发人员Joey Krug 和Gnosis联合创始人Martin Köppelmann发现的,后来由康奈尔大学博士生Philip Daian和研究者Emin Gun Sirer共同发布。

以太坊漏洞

这个漏洞与DAO攻击者利用的可重入性(reentrancy)(注:可重入与递归概念相似,关于DAO攻击漏洞,官方用词是递归调用漏洞,这里的可重入性是作者个人观点)的漏洞不同。暂且称之为太阳风暴(solar-storm)吧(因为它能切断以太坊智能合约间的沟通,就像太阳风暴能切断地球的通讯设备一样)。Daian在发布这个漏洞时并未给出确切的名字,不过他挺喜欢“太阳风暴”的。

 

太阳风暴 VS 可重入性

 

可重入性(reentrancy)漏洞发生的前提:

  1. 1. 合约A,函数A call调用合约B
  2. 2. 合约B call调用合约A,函数A

Daian认为,合约间仅一次简单的调用也会暴露漏洞。

太阳风暴(solar-storm)漏洞发生的前提

  1. 1. 合约A call调用任意外部合约
  2. 2. 合约A状态经外部函数修改(这是经常会发生的情况)

因此太阳风暴(solar-storm)漏洞发生的例子有:

  1. 1. 合约A,函数A call调用合约B
  2. 2. 合约A的另一个函数C与函数A共享状态
  3. 3. 合约B call调用合约A,函数C

为了避免暴露这种漏洞,我们有两种选择:

(a)禁止合约进行外部调用
(b)禁止使用外部调用函数与发起外部调用的函数共享状态

在实际用例中完全禁止b是不可能的,因此我们必须不再进行合约外部调用。如果不得已必须进行外部调用,可以在编程完成之后进行,一旦外部调用开始执行,合约状态不要再做更改。

太阳风暴(solar-storm)漏洞比可重入性(reentrancy)漏洞涉及面更广。

这意味着什么呢?

 

总结

 

太阳风暴(solar-storm)漏洞不单会对DAO合约产生影响,还会对以太坊的所有合约产生影响。这是以太坊编程语言Solidity的漏洞。

已经发布的以太坊合约也可能存在漏洞。开发者需测试其合约的性能,采取相应措施(转移资金、发布新合约等)。

开发者对其即将发布的合约的外部调用要相当小心。尽量避免外部调用,直到这一漏洞彻底修复。

 

下一步该怎么做?

 

重新检查所有已发布的智能合约。用Solidity编译器检测漏洞。这一漏洞目前尚未广而告之,因此应编写Solidity文档向其他人发出通知。

发文时比特币标准价格 买价:¥4744.57 卖价:¥4739.46
原文:https://blog.blockstack.org/solar-storm-a-serious-security-exploit-with-ethereum-not-just-the-dao-a03d797d98fa#.2sgz2059g
作者:Muneeb Ali
编译:Wendy
稿源(译):巴比特资讯(http://www.8btc.com/solar-storm-exploit-ethereum)
版权声明: by nc" sa 作者保留权利。文章为作者独立观点,不代表巴比特立场。

评论:5

您需要登录后才可以回复 登录|注册
    Author Image
    zxbball 165 天前

    以太从一开始就是荒唐的东西,那些坐庄的想骗小白,割韭菜,结果被以太团队给坑了,这个耳光打的啪啪响啊!

    +1
    +1
    我要点评
    _IRR_
    _IRR_ 165 天前

    连续利空,以太药丸……

    +1
    +1
    我要点评
    区块链之家
    区块链之家 165 天前

    这是要死的节奏

    +1
    +1
    我要点评
      Author Image
      天道 165 天前

      以太还有很长的路要走,不过潜力还是很大的。

      +1
      +1
      我要点评
    巴比特资讯
    巴比特资讯 165 天前

    【以太坊再现安全漏洞——太阳风暴“solar-storm”】以太坊智能合约脚本语言Solidity又现一处漏洞,它不仅会对DAO产生影响,还会对整个以太坊生态系统产生影响。http://t.cn/R5NdSTC

    +1
    +1
    我要点评