回顾:以太坊ETH硬分叉事件的前因后果463.com

463.com 1

项目背景

The
DAO项目是区块链物联网公司Slock.it发起的一个众筹项目。原本该公司只想采用DAO(去中心化自治)来运作自己的系统Universal
Sharing Network (USN)。后来发现这个机制也适合其他项目,因此决定创建The
DAO,意为“DAO之母”

Code is
Law,和传统软件开发中的迭代更新不同,为了保证代码的可信性,以太坊中的合约一旦部署就再没有修改的可能。我们当然不能期智能合约一旦发布就可以完美无瑕地运行下去,一行有缺陷的代码可能就会将整个合约推向万劫不复之地。

463.com,事件经过

由于智能合约上存在重大缺陷,当时区块链界最大的项目,The
DAO被攻击,具体经过如下:

6月15日左右此攻击合约被创立,6月17日攻击开始,Vitalik
Buterin得知攻击消息后立刻通知了中国社区

TheDAO监护人提议社区发送垃圾交易阻塞以太坊网络,以减缓DAO资产被转移的速度。

随后V神在以太坊官方博客发布[紧急状态更新:关于DAO的漏洞]公告。解释了被攻击的一些细节以及提出软分叉解决方案,不会有回滚。不会有交

易和区块被撤销。软分叉将从块高度1760000开始把任何与 The DAO和child
DAO相关的交易认做无效交易,以此阻止攻击者在27天之后提走被盗 

的以太币。这之后会有一次硬分叉将以太币找回。

上文发布后攻击暂停。

以太坊社区的Ethcore团队发布了支持软分叉的Parity客户端。

6月19日自称攻击者的人通过匿名访谈宣布会通过智能合约的形式奖励不支持软分叉的矿工100万以太币和100比特币,来对抗以太坊基金会提议的软分叉。

6月19日攻击又起,但只有少量DAO被分离。

6月22日白帽黑客开展罗宾汉行动将TheDAO资产转移到安全的子DAO中。

随后黑帽黑客(攻击者)开始攻击白帽黑客所创建的为安全转移TheDAO资产的智能合约。

7月20日晚,备受瞩目的以太坊区块链硬分叉已成功实施,中国的以太坊矿池BW.com成功挖得以太坊第192,000个区块,几秒钟过后,该矿池还

挖到了新区块链的首个区块。也预示着由未知黑客持有的价值约4000万美元的以太币,已被转移到了一个新的地址

(0xbf4ed7b27f1d666546e30d74d50d173d20bca754),从而“夺回”黑客所控制的DAO合约的币。从而形成两条链,一条为原链(ETC),一条

为新的分叉链(ETH),各自代表不同的社区共识以及价值观。

51%攻击绝不是天方夜谭。以比特币为例,随着金钱的腥味吸引了无数科技厂家入场,挖矿变成了职业玩家的战场,排名前三的矿场垄断了全网接近半的算力。在Crypto51的网站上,我们可以找到对各种数字货币发起51%攻击所需要的成本,对价值3.5亿美元的Bytecoin发动一个小时算力攻击,成本仅需要257美元,这些数字并没有想象中的遥不可及。

攻击方法

攻击者组合了2个漏洞攻击。攻击者利用的第一个漏洞是递归调用splitDAO函数。也就是说splitDAO函数被第一次合法调用后会非法的再次调用自己,然后不断重复这
个自己非法调用自己的过程。这样的递归调用可以使得攻击者的DAO资产在被清零之
前,数十次的从TheDAO的资产池里重复分离出来理应被清零的攻击者的DAO资产。
攻击者利用的第二个漏洞是DAO资产分离后避免从heDAO资产池中销毁。正常情况
下,攻击者的DAO资产被分离后,TheDAO资产池会销毁这部分DAO资产。但是攻击
者在递归调用结束前把自己的DAO资产转移到了其他账户,这样就可以避免这部分
DAO资产被销毁。在利用第一个漏洞进行攻击完后把安全转移走的DAO资产再转回原
账户。这样攻击者做到了只用2个同样的账户和同样DAO资产进行了200多次攻击。

密码!密码!

智能合约

一度充斥着“造富神话”的数字货币市场趋凉,以区块链技术为噱头的泡沫渐渐消逝,安全的问题也一步步凸显出来。安全是技术发展的根基,一行代码葬送一个项目的事情频频发生,向我们敲响了警钟。只有在安全问题上防微杜渐慎之又慎,被寄予厚望的区块链技术才能越走越远。

当我们谈论“区块链安全”的时候,我们到底在谈论什么?

来源:https://www.crypto51.app,

截图时间:2018/9/12 9:08

参考资料:

阻止51%攻击的最后一道防线,便是攻击成功很可能导致数字货币的价值归零,从长远角度看攻击者反而会蒙受巨大的损失。可是,Verge再三受到攻击,比特黄金也难以幸免,频频发生的51%攻击面前,最后一道防线显得疲弱无力。

但是,这并不意味着我们可以高枕无忧了。2014年底爆发了一批网络钱包失窃案件,究其原因,就是在随机数生成器的实现没有真正“随机”。如今,量子计算机的崛起带来了新的挑战,如果数千比特位量子计算机一旦问世,包括ECC在内的诸多算法都可能沦为虚设。

如果需要升级智能合约,就要把当前的智能合约进行快照,然后在部署新的智能合约之后把旧合约的快照转移到新合约,这个过程会影响用户对于项目的信心。在发现漏洞之时,究竟是壮士断腕部署新的合约,还是置之不理希望能一直隐瞒下去,是每一个项目开发者将会面临的两难选择。

责任编辑:

作者:黄玲丽

51%

密钥的安全性如何呢?以ECDSA算法为例,每一个密钥由256位01组成,要是随机猜测的话,猜对的概率只有1/115792089237316266660066408626602828282606886466848266086008062602462446642046,大概是1/1077。

不过在区块链中,仅仅有密钥是不够的,为了能够实现账户之间相互转账,还需要根据密钥生成公钥和钱包地址,上面所说的ECDSA就是从密钥生成公钥的算法。公钥,顾名思义,在向外转账时会被公开,那从公钥推理出私钥又有多难呢?

2016年6月,攻击者利用区块链业界此前最大的众筹项目TheDAO智能合约中splitDAO函数的一个漏洞,将资金从The
DAO项⽬的资产池中源源不断地分离出来,转移到自己的子DAO中,在短短的三个小时内,300多万以太币被转出The
DAO 资产池,以太坊也因为这件事故被迫分叉。

题图来自 Pixabay,基于 CC0 协议返回搜狐,查看更多

相关文章