欢迎登录贵币网

记住密码
找回密码

[区块链]回顾史上最大智能合约漏洞事件——The DAO事件

金色财经 30天前
本文面对这样的一个场景,主要是描述该场景中提到的攻击事件代码,围绕攻击的前因后果。项目进行的始末,最终通过剖析整个事件,达到历史经验借鉴,为未来利用智能合约时铭记安全意识的最终目的。


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


项目运作特点: 
A)通过智能合约来主导以太币资金的分发利用。 
B)参与众筹人按照出资金额(比特币等),获得相应DAO代币,即内部token,具有审查及投票表决权利。 
C)投资议案由全体代币持有人投票,每个代币一票。 
D)项目收益按照一定规则回馈代币持有人。


项目修复尝试和失败流程: 
A)智能合约代码不严谨,导致交易资金出现很大的漏洞。 
B)后面为了解决修复智能合约,进行软分叉的尝试。最后失败的因素还是在一方面在于人们接受了去中心化理念后因为为了修复bug而导致变更不允许发生的变更,即理念冲突。第二方面在于,修复方案也和以太坊平台设计思路冲突,即该合约思路没问题但未收取gas。而通过软分叉升级可能会导致攻击者零成本利用软分叉来攻击整个体系。因而软分叉方案全部失败。 
C)最后采用了硬分叉。虽然已经导致了以太坊直接撕裂成了ETH和ETC(旧版),但最后还是没能解决问题,因为会存在重放攻击。新链上的交易广播到旧链上,交易依然能够成功,因而造成使用混乱。 
D)合约升级后依然还是存在漏洞,虽然封堵了withdrawalFor的漏洞,但是整个机制中依然存在问题。其原因还是在于检测员总是习惯一次检测一个功能,并假定调用安全子例程将会安全的如预期的操作。而很少系统性的测试并假定容易被攻击的可能性。


项目总结及经验分享: 
A)智能合约不合理,导致最后失败归根结底还是在于人们对新生事物的第一次尝试。并不是说如果合约代码没有技术漏洞后,就会一帆风顺。也有可能就算没有技术漏洞,也可能出现其他的落地时的漏洞。


B)让人们看到了硬分叉后能给我们带来其他更多的问题,比如重放问题。交易混乱。


C)同时也让人们看到了分布式自治组织目前的局限性。包括法律认可程度,技术不成熟度,金融资产和法律,道德上如何良好衔接,以及完全的自治是否能够实现,如何良好的导入必要时期的人工介入。比如The DAO事件发生后,能够应急的人工干预机制。


D)无论是技术创新,还是商业模式创新,对于安全的考虑,永远是必要且不能忽略的。
--------------------- 


声明:贵币网发布此文为传递更多信息,不代表赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。本文版权归原作者所有,如有侵权请及时联系我们。
0
表情
全部评论60
  • 成为第一个评论的人

  • 比特币
  • 莱特币
  • 以太币
  • BTC
  • -.--
  • ----.--
  • LTC
  • -.--
  • ----.--
  • ETH
  • -.--
  • ----.--

    贵币内参

    《区块链内参》第54期

    更新时间:2018-12-03 21:38

    反复折腾最易冷,冬眠反而易逢春。

    贵币网倾力打造,由资深从业者、研究员、分析师撰写的研究简报、行业情报及内幕,每日晚22点出刊。