The DAO攻击历史

本文发布于2016年6月25日:作者David Siegel,可以让人对区块链系统更深的认识。

基础知识:

以太坊网络是一个运行以太坊区块链的计算机网络。区块链允许交换一定数量的token,也就是所谓的以太币。现在是仅次于比特币的加密货币。以太坊还允许编写和部署智能合约,它只是在网络计算机上执行的普通代码(当前超过6000台电脑),可以向它们发送以太币来执行这些合约。
DAO是一个分散自治的组织(Decentralized Autonomous Organization),它的目标是编写一个组织的规则和决策机构,消除对文件和人员治理的需求,建立一个分散控制的结构。
它的工作流程如下:
1.一组人员编写在组织上运行的智能合约(程序)
2.有一个初始资金募集期,人们通过购买代表所有权的token代币来将资金注入到DAO项目中,这就是所谓的众募,也就是ICO,为项目提供资金
3.ICO结束后,DAO项目开始运作
4.人们可以对DAO 项目给出提案以便如何使用这些资金,参与的成员享有投票权,通过投票来批准是否通过这些提案。

这里最重要的是不要将这些代币转换为股权,它更像是给参与者投票权而非所有权。在大多数情况下,DAO项目不会被人所独有,因为它仅仅是一个运行在以太网上的软件而已。

最原始的DAO项目就是比特币自己,是由它的核心团队和它的采矿网络通过共识来共同管理的,而其他的DAO项目都是基于以太坊平台发布的。

The DAO是其中一个DAO项目的名字,它是由德国初创公司Slock.it构思和编写的,这个项目构造一个智能锁,能够让人们在Airbnb的一个分散版本上去共享自己的东西(比如汽车,船,公寓等),类似于出租。
The DAO是在2016年4月30日发布的,由28天的募资窗口期。非常意外,The DAO非常受欢迎,在5月15日那天它的募资超过1亿美金,在募资截止日,资金已超过1.5亿美金超过11000名成员参与其中,因此The DAO也成为历史上最大的众募,募集的资金远远超出它的创始人预料。

但实际上技术还远远没有达到市场所预期的那样成熟,在ICO期,就有一些人提出对代码容易受到攻击的担忧。在ICO刚结束后,参与者还未对提案行使投票权,他们就开始讨论处理技术漏洞的问题,尤其是The DAO的创始者之一,Stephan Tual,在6月12日宣布在软件内发现一个递归调用的bug但是在The DAO内的资金不会有风险。
而在此期间,有超过50个项目提案等待The DAO的代币持有者来对它们进行投票。

这里要重申的是以太坊网络本身是没有这种bug的而且它一直都在很完美的运行,但是所有的联网系统都很容易遭受到各种不同的攻击。
而以太坊网络,它支撑着价值大概10亿美金的以太币,还没出现过被攻击同时它还在不断地执行许多智能合约。
写过智能合约的人都知道若在智能合约内转移大量的现金,则它必然会受到黑客的攻击。类似这种漏洞最近在一个叫做Maker DAO的系统内被发现,而由于这个DAO项目当时仍然还只处在测试中,所以它被迅速地修复了。大多数人认为在以太坊网络上不停的测试和证明智能合约是可以不断完善以太坊生态系统的安全的。

黑客:
不幸的是当程序员们正在努力修复各种各样的bug,一个匿名黑客利用这些bug开始偷取The DAO项目售卖代币所得到的以太币。到6月18日的一个礼拜六为止,该名黑客将超过360万的以太币转移到一个child DAO项目内,这个项目和The DAO有着一样的结构,同时以太币的价格也从20美元降到了13美元。
一些人尝试将The DAO项目从以太坊中分离出去,以避免更多的以太币被偷取,但是在如此短的时间内他们得不到足够多的将其分离的投票数,由于创始者们当时并未考虑到会有这么多钱,因此就将所有的比特币都存放在一个地址上,同时我们认为攻击者或许在听到关于分叉提议后也停止了攻击,但实际上,这种攻击或者其他类似的攻击,可能随时会发生。
智能合约是一种独立协议,它不受外部实体或司法管辖区的解释,代码本身就是合约所代表交易的最终仲裁者,当然这是一个最理想的状态(加密无政府主义)。
而在遭受攻击之前,一些国家的律师也提出担忧,表示The DAO已经超越了众筹授权且违反了证券法,若发生任何问题,它的创始者们可能会担责,还有一些律师认为The DAO的代币持有者也正在接受可能他们自己都不知道的责任,也就是The DAO存在法律的灰色地带。由于child DAO和它的父DAO有着相同的结构,限制和漏洞,所以这个新创建的child DAO内的以太币同样也存在28天的ICO冻结期。
实际上每个人都能够看到这个child DAO内的以太币,任何尝试将其兑现的操作都将触发警报和调查,也就是黑客可能永远都无法提现或消费里面的以太币。
还有一种可能就是攻击时黑客在以太网上就已经有大量的空头,他完全可以在以太币产出减半时将其兑现。攻击者可能已经兑现了而不再需要child DAO上的以太币。

以太坊基金可能会宣布此DAO项目内的以太币无效,这就是事情变得复杂的地方。

软分叉提议:
The DAO项目包含有大概总量15%的以太币,因此The DAO项目的失败对以太网和它的加密货币都产生负面影响。而且好多初创公司正在基于以太坊开发DAO项目或管理产品,而许多智能合约也存在类似的漏洞,同时使用智能合约构建复杂软件仍处于起步阶段,这些参与者都会很在意下一步可能会发生的bug。
所有人都在关注The DAO和以太坊基金会,期望有一个解决方案可以让生态系统的开发继续下去。

为了理解下面发生的事,先来了解一下区块链知识:一个节点网络将交易放入区块内,然后将区块放入一个链中,这个链就代表着发生的事件真相。若两个竞争交易几乎在同时发生,则网络会用选择一个拒绝另一个的方式来处理这种冲突,因此所有节点有着同样的分布式账本副本。

唯一重写历史的方法就是让全节点至少51%的节点同意,这种事在比特币和以太坊历史上还从未发生过,而分布式网络的目的就是让人没有这个能力做到这一点,6月17日,以太坊创始人Vitalik Buterin发布一个重要更新,表示针对The DAO的攻击,他给出了一个解决方案:

提出一个软分叉方案,不用回滚,交易或区块也不用反转,同时任何对账户0x7278d050619a624f84f51987149ddb439cdaadfba5966f7cfaea7ad44340a4ba发起的减少账户余额的call/callcode/delegatecall调用操作都宣布无效。

V神特别提到他不会重写任何区块,只是重新在经典以太坊代码内安装一个分支以避免从the DAO或它的孩子那里移出任何以太币。这很有效,这也是为这次事件做的一次性解决方案以便永久地将那些以太币封存在该地址中。

V神表示:
若矿工和矿池同意这条以太坊生态系统发展的新路径,则他们应该会如常恢复交易,等待软分叉代码并下载运行,The DAO代币的持有者和以太坊用户应该保持冷静,交易所在恢复交易ETH时也应该感到安全。

换句话说就是以太坊代码内置了一个黑名单以避免坏蛋获取他们声称的奖励。在资产冻结期间,V神召集大家讨论如何帮助The DAO代币持有者恢复他们的初始资产,而这种看似无害的剧情大反转提议,仍然必须被大多数以太网节点同意才能生效。

黑客的回应:
到目前为止也不知道黑客是男是女,而随后发生的事情很有趣,黑客给The DAO和以太坊社区发了公开信,声称他的奖励是合法的,同时威胁那些将宣布他工作无效的人,要对他们采取法律措施,一些人指出这封邮件内的加密签名可能是假的。

而从另外角度来看他说的也有道理,因为智能合约本身就是它自己的仲裁者,代码之外的任何东西都不能改变它的交易规则。

随后通过中介,黑客表示他会奖励那些不追随V神提议的软分叉的矿工,以阻止这种有组织的对他财产进行盗窃的行为,他表示:很快地,我们会有智能合约共享一百万个ETH和100个BTC, 来奖励那些反对V神提出的软分叉和挖矿交易的矿工。

这个系统是动态而且复杂的,也不能验证该信息是真正来自于黑客,所以不得不等待下一步会发生什么。

硬分叉提议:
而另一个硬分叉的提议更具有侵略性,它要求矿工彻底越过小偷,返回所有的之前交易过的以太币到The DAO代币账户中,这个过程The DAO代币持有者会自动兑换,从此彻底结束The DAO项目。
正如Stephan Tual在他的博客所说:
截至下午4点达成的共识是:在27小时内会部署一个软分叉,黑客将无法获取到藏进child DAO内的资金。接下来的硬分叉甚至会返还所有的以太币,包括The DAO的额外余额以及被偷的资金,都会还回到一个智能合约内,这个智能合约包含一个withdraw()函数,它可以让The DAO参与者提取他们的资金:感谢矿工们的支持,由于到目前为止什么都没有交易,所以也就什么都没有损失。

这种操作具备重写区块链执行的规则的效果,而这之前是认为不可能发生的,但是真的应该让这种规则放纵一次,以便将以太坊项目拉回正轨?而这样做后,Slock.it公司的人和大多数的The DAO代币持有者都会很感激。

对软分叉的回应:
从提议本身角度来看这是合理,这从对一个问题的一次修复来看,许多人并不这么认为。
可以看一下下面url内的讨论,总结起来就是网络的可靠性是神圣的。

https://blog.ethereum.org/2016/06/17/critical-update-re-dao-vulnerability/

有一个人这么说:
以太坊基金会在the DAO事件中的参与是一个错误, 以太坊应该是在其上开发的项目和实验的基础设施,而为了能让这些项目和实验开花结果,它们就需要一个坚强的基础且在面临挑战时具有完整性。而硬分叉的提议是一种妥协,同时破坏了完整性,并给出了一个信号就是像the DAO这样的项目为了它们自身的利益能够影响潜在的基础设施。对我来说,这种事情完全无法接受,并且背离了我进入以太坊的原则。


硬分叉是一个有效的选择,但它应该保留在需要对以太坊协议本身进行紧急修改的情况下,而不是针对运行在其上的项目来做硬分叉。

事实上以太坊基金会参与并促进The DAO项目,这已经是一个错误,它夺取了那些已经将以太坊作为自己项目基础设施的人的信任。这里希望他们能够纠正这个错误。


另外一个人声称:
在ETH第一天上线时我开发了一个错误的合约并损失了2K的ETH,我也能够要回来吗?谢谢!


最后我认为:

以太坊预期工作稳定时不应该去更新它。现实的一个投资者, 若你不了解你的投资,你需要老老实实承担未知风险,而任何其他的外部干预,都应该视为中央当局的救助,比如密码世界的对立方。在某些方面来说,这也就是为什么雷曼兄弟被允许失败的原因,因为交易就是
交易,若你躲在规则后面成为一个特殊玩家,所有其他的玩家也都会想要特殊对待。

太庞大以至于失败:
仅仅在雷曼兄弟一个月后,其他银行确实得到特殊对待,可以自己判断这是否是一个好办法,这与现在的情形很相似,The DAO项目不是一个孤岛。
从以太坊生态系统角度来看太大以至于失败这个说法,注意到有一些来自以太坊基金会的人是The DAO代币的持有者同时在The DAO项目中担任咨询职位。甚至其中一个以太坊创始者之一Gavin Wood,也在博客中支持分叉。

在这种角度下,一些大的项目可能需要以太坊基金会的拯救,可能再次要求矿工重写历史。

很明显地可以拿银行救助类比:为了获得丰厚的利润,银行能够承担巨大的风险,且当贸易损失时,纳税人将它们救了起来(除了可怜的雷曼兄弟之外),这种风险不对称通常被视为激励市场参与者的坏方法。

这是两个极端,但大多数人都陷入其中一个。

以上讨论的前提假设是我们处在一个理想的真空社会中,它是一个加密无政府空间,那里不需要法律去维护,而现实世界的法律能够保护人们在那投入的钱。

实际上,这里面的所有参与者都可能有法律诉求,而这些诉求在世界各地法院去解决的话,需要数年的事件才能完成。


谁承担风险?

即使创始者们非常小心地不去创造证券同时确保人们意识到风险,他们仍然可能要承担责任,假如The DAO代币持有人损失了他们查过1.5亿美金的大部分资产,这就有可能对创始者发起集体诉讼。

其他的DAO项目:
有些人已经利用了The DAO项目的智能合约来实现他们自己的DAO。而在硬分叉方案下,所有那些使用The DAO 1.0版智能合约的DAO项目的以太币都会被没收到退款账户,分配给The DAO 代币持有者。因此,The DAO 代币持有者将可能得到比他们之前所投入的多的以太币。这当然会让那些将钱投入到1.0版DAO的人愤怒。

The DAO代币持有者:
作为一个投资者,在没有公司的保护下,11000多个代币持有人可能会被视为基金合伙人,在那种情况下,黑客可以在本国辖区内起诉单个The DAO代币持有者,并声明他们是代表着夺取其合法财产的实体。

交易所:
在ICO结束不久,几家加密货币交易所就开始在DAO代币市场进行交易。

作为链的一部分,任何从交易所购买过DAO代币的人都可以起诉交易所出售有缺陷的投资,这可能会达到证券法违规的严重程度,或者他们仅仅只对在代币上的利润承担责任。鉴于几家交易所拥有大量现金,它们可能会成为首批目标。

以太坊基金会:

以太坊基金会在这里有很大的风险,他们希望网络坚如磐石以支撑价值数十亿美元的商业并成为未来的操作系统。但如今他们处在一个艰难的境地:若他们什么都不做,以太网络遭受的挫折可能需要数年时间才能恢复;若他们干预,则他们就设置了一个危险的先例,削弱了他们与其他独立节点网络建立的社会契约。

他们并未设计以太坊网络作为法官和陪审团,以防一方或多方受到伤害

矿工和节点:
6000多个完整以太坊节点可能会为他们投票的任何分叉负责。
若黑客因为智能合约的功能缺陷而获得这些以太币,那么他可能起诉任何试图从他那里拿走以太币的矿工,而且他已经威胁要这样做。若以太坊基金会去实现分叉提案,他还可能起诉以太坊基金会。
另一方面,The DAO代币持有者也可能会起诉不给分叉提案投票的节点,声称他们没有做正确的事情。另一方面,那些比较喜欢钱的节点,为了从黑客那里得到钱可能不会去支持分叉提案
这时政府完全有可能会介入并试图对以太坊系统的治理进行重大改革。

黑客:

黑客可能已经通过市场操纵获得了大笔资金,在许多司法管辖区这是非法的,他也可能还要缴纳巨额的税,显然去了解他的身份并将他剔除对社区而言有巨大的激励作用。

对于将这个人找出来已经有足够的信息了,这只是时间问题而已。


后果:

似乎到这个时间点The DAO项目会死掉,同时那些The DAO代币的持有者会从一些地方拿回他们以太币的一部分。保守地认为Slock.it那些人有一段时间肯定是忙得焦头烂额,他们不可能再获得资金了(他们自己也将相当多的钱投入到了The DAO),他们可能会和律师谈数月。
The DAO还遭受了另一个类似的攻击。

V神可能会提出基于以太坊的解决方案,但是这必须经过节点的投票确认,到目前为止还不清楚节点会选择哪一条方案。也有许多人说什么都不做可能是最坏的选择,它取决于你站在什么立场。


还有另一个小插曲:以太坊基金会正在转向一种新的共识机制,称为股权证明POS,在这种场景内,任何拥有所有以太币数量14%的人将对未来区块链拥有巨大的控制权。
实际上,V神已经要求DAO项目资金限额1000万美元左右,以帮助遏制意想不到的错误。


也有可能会有诉讼,可能会看到一塌糊涂,诉讼延续数年,亦或者会看到一个相当干净整洁的结局,以太坊继续同时黑客再也没出现。

 

文章来自:https://www.coindesk.com/understanding-dao-hack-journalists/

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值