以太坊The DAO起源:The DAO入侵事件始末解读

以太坊The DAO起源:The DAO入侵事件始末解读

说起The Dao,就不得不回忆起Dao攻击事件。2015年7月30日,Vitalik Buterin和以太坊基金会创建了第一个基于区块链的图灵完备智能合约平台。这一天以太坊正式和公众见面。接着Sock.it设计了TheDao以太坊合约,并在2016年4月30日正式部署TheDao智能合约。2016年5月27日完成了当时全世界最大规模的众筹,一共筹集了惊人的1.5亿美元。2016年6月17日,TheDao被黑客攻击并盗取了大量的以太币(3,641,694 ETH)。这就是著名的Dao攻击。

说起The Dao,就不得不回忆起Dao攻击事件。

2015年7月30日,Vitalik Buterin和以太坊基金会创建了第一个基于区块链的图灵完备智能合约平台。这一天以太坊正式和公众见面。接着Sock.it设计了TheDao以太坊合约,并在2016年4月30日正式部署TheDao智能合约。2016年5月27日完成了当时全世界最大规模的众筹,一共筹集了惊人的1.5亿美元。

blob.png

2016年6月17日,TheDao被黑客攻击并盗取了大量的以太币(3,641,694 ETH)。这就是著名的Dao攻击。也正是因为这一次的攻击,对原以太坊伤害巨大,最后在百般无奈之下,为了挽救TheDao投资者的损失,最后决定硬分叉。在2016年7月20日,于区块高度1920000硬分叉成功。被废弃的原链就是现在的以太经典ETC。

一、什么是DAO?什么是the DAO?

很多人在讨论数字货币和区块链的时候,经常会将比特币、以太坊、或者某个项目称为DAO,而又听说有个叫DAO的众筹项目被黑客攻击,为什么有两个DAO?这两个DAO是一回事情吗?那么到底什么是DAO?

其实,这两个DAO是不一样的,前面说的DAO,是“分布式自治组织”(Distributed Autonomous Organization)的缩写,这是一种基于区块链的组织结构形式。而本文说的DAO仅仅是一个基于以太坊区块链的项目名称。为了区分这两个DAO,一般称第二个DAO为“the DAO”。

DAO,英文全称是Decentralized Autonomous Organization ,去中心化自治组织,是V神提出的一个概念。

这个去中心组织,依靠智能合约在区块链上运行,没有法律实体,我们可以把它理解成“去中心化的公司”。

The DAO则是区块链公司Slock.it发起的一个众筹项目。The DAO其实也可以理解为是一个去中心化运作的基金,任何人都可以往里面打钱,打钱后有了投票权,投给你喜欢的投资项目,进而享受收益。和以前的基金会不同,不需要配备会长、经理、秘书。所有会务都是通过区块链自动处理的。不同于人性的的不确定性,开源代码的运行结果是可预期的,具有确定性。很多人期望the DAO能够投石问路,开创一种新的社会组织形态。

Slock.it是一家将区块链与物联网相结合的公司。一开始,他们只是想利用以太坊来开发他们的“全民分享网络”。随着开发的深入,他们发现,去中心分享经济很有前景。他们在伦敦的Devcon1大会上演示了这个概念和愿景,出乎意料的是,这个项目反响热烈。

于是,就有了The DAO项目。

在The DAO项目中,代币的持有人拥有很大的权力,比如项目资金的用途需要代币持有人投票决定,相关的提议由智能合约支撑。

创始人们野心勃勃,他们想创建一个真正的“DAO”,一个真正去中心化自治组织。

二、the dao事件始末

2016年4月30日,The DAO项目开始众筹。项目代币DAO,众筹时间为期28天,代币价格大约是100个DAO兑换1至1.5个以太坊。The DAO项目总共筹到了超过1200万个以太坊,几乎占到了当时以太坊数量的14%,当时价值超过1.5亿美金,参与众筹的人数超过11000人。之后The DAO项目迅速被黑客盯上。

2016年6月17日,黑客利用The DAO代码里的一个递归漏洞,不停地从The DAO 资金池里分离资产;随后,黑客利用了The DAO的第二个漏洞,避免分离后的资产被销毁。如果是正常情况,The DAO的资产被分离之后,就会被销毁。但是,黑客在调用结束前,把盗来的The DAO资产转移到了其他账户,避免了被销毁。如此熟悉The DAO代码与机制的人,全世界或许不超过100个。黑客利用这两个漏洞,进行了两百多次攻击,总共盗走了360万的以太坊,超过了该项目筹集的以太坊总数目的三分之一。

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

The DAO项目筹集的以太数目差不多占到当时以太坊总量的14%,这个数量实在是太大了。如果The DAO出了什么事,整个以太坊网络都会遭殃,更不要说以太坊基金会也参与了The DAO项目。

万幸的是,也正是由于这些“不良”代码,黑客无法将这些以太坊提走。因为代码里规定,要过28天之后才能提现,这给了社区足够的时间研究对策。

2016年6月17日,以太坊创始人V神心急如焚,急匆匆在Reddit上发了一篇帖子“DAO遭到攻击,请交易平台暂停ETH/DAO的交易,充值以及提现,等待进一步的通知。新消息会尽快更新。”V神在公告中,解释了这次攻击的一些细节问题,同时提到已经提交了软分叉的建议,不过不会回滚,也不会撤销交易和区块。分叉,对于以太坊来说,可是一个艰难的抉择。

受此事件影响,以太坊价格第二天暴跌约30%。

与此同时,以太坊社区就分叉事宜进行了激烈的讨论,社区中已经有人坐不住了,不少人受够了这担惊受怕的日子,经过激烈的讨论(V神是支持硬分叉),最后,多数人还是同意了进行硬分叉。

2016年7月20日晚,以太坊硬分叉成功,分叉之后,形成了两条链,一条为原链(以太坊经典,ETC),一条为新的分叉链(ETH),各自代表不同的社区共识以及价值观。

ETC一方认为,发生的事就已经发生了,区块链的精神就是不可篡改,账本形成了就不应该去篡改,这是原则问题。

ETH一方则认为,这是盗窃,是违法行为,必须予以打击。

三、The DAO事件带来的启示

2017年,在一次采访中,V神回顾The DAO事件时,说:

“我觉得以太坊现在不错。有些人对于纯洁和道德十分看重,如果一次出错,那么以后就永远会出错。但我觉得,随着时间的推移,他们会发现,以太坊的治理会越来越稳定,项目在向前发展”

Slock.it的联合创始人兼首席技术官Christoph Jentzsch曾撰文回忆了The DAO事件,在文末,他总结了他们学到的教训:

1、智能合约的安全问题还需要通过实践来改进,这个领域还处于早期阶段。不用说,这个行业才刚刚起步,有太多的东西需要发展,事情得一步一步来。

2、对于未知事物要时刻保持警惕。现在已经有不少安全方面的工具可用,我们团队也知道很多攻击手段,问题就在于,编写The DAO代码的时候没人意识到这点。

3、以太坊的工具还不成熟。格式证明验证工具,在当时还没有开发出来。随着The DAO事件的出现,促进了这些安全工具的开发。

4、去中心化系统的治理和投票机制需要改进。提交意见来指导去中心化软件的工具还没有开发出来,而中心化的论坛,比如Reddit,并不适合去中心化系统。

5、逐步发布产品。The DAO在发布的时候应该更谨慎一些,逐步的推出。类似的项目在推出的时候保留部分的中心化,逐步去中心化。

6、复杂性最小化。The DAO的代码有663行,根据统计数据,每1000行代码就会有15-50个Bug,所以,智能合约代码要尽可能简单。

四、结语

The DAO事件影响之大,甚至惊动了美国SEC,虽然他们不是来调查是谁偷走了那些代币。不过,这也对之后的项目在进行代币众筹时的做法产生了不小的影响,项目方也会更注意法律风险。

The DAO项目目前已经失败了,但Slock.it公司还存在。2018年11月,Slock.it公司的CEO 还参加了柏林的一个活动。

至于DAO,“去中心化自治组织”这个理念能否活下去,还有待时间的检验。

最新专题NewTopic