【全纪录】震惊全球的The DAO黑客事件全程回顾
翻译:spring_zqy
记者所需了解的The DAO黑客事件
基本概念
以太坊网络是运行以太坊区块链的电脑网络。区块链能够让人们交换有价代币(即以太币),这一加密币目前的流行程度仅次于比特币。以太坊也允许人们在网络智能合约上编写输入项——在网络每台电脑中执行的通用代码(目前网络中有超狗6000台电脑)。之后人们通过发送以太币来运行程序。
DAO是去中心化自治组织。其目的是为组织规则以及决策机构编写代码,从而消除书面文件的需要,以及减少管理人员,从而创建出一个去中心化管理架构。
下面是其运作方式:
· 一组人来编写运行组织的智能合约(程序)
· 有初始融资阶段,在这一阶段人们添加资金来购买代币,来代表其所有权——这个过程叫做众销,或者首次代币发行(ICO)——为其提供所需资源。
· 当融资阶段结束后,DAO就开始运行。
· 之后人们就开始向DAO谏言献策该如何使用这笔钱,购买DAO的成员就有资格对这些提案进行投票。
有一点我们需要知道,很多人在关注“不将这些代币变成股票形式”这一问题——这种形式更像是人们为获得投票权而做出的贡献,而非所有权。在大多数案例中,DAO不是由某人所有的——它只是一个在以太坊网络运行的软件。最初的DAO 就是比特币,它由核心团队及矿工网络的共识进行控制。其他DAO都发布在以太坊平台。
“THE DAO”是一个特定DAO组织的名字,由德国初创公司Slock.it背后的团队构想创建而成——Slock.it是一家专注“智能锁”的公司,能够让人们在去中心化版本的Airbnb中交换事物(契合、船只和公寓等)。
The DAO项目于2016年4月30日开始,融资窗口开放了28天。
不知出于什么原因,反正The DAO项目就这么火起来了,截止5月15日这个项目筹得了超过一亿美元,而到整个融资期结束,共有超过11,000位热情的成员参与进来,筹得1.5亿美元,成为历史上最大的众筹项目。The DAO所集资的钱远远超过其创建者的预期。
可以说,他们的市场战略比他们职能的执行来的好,因为在众销期间,就有人担心其代码会很容易受到攻击。
众销阶段结束后,在开始资助提案项目前,大多数讨论都是围绕解决系统缺陷进行的。尤其是,THE DAO创始人之一Stephan
Tual于6月12日宣布,他们发现了软件中存在的“递归调用漏洞”问题,不过对DAO资金来说则不会出现风险。
当时,超过50个项目提案在等THE DAO代币持有者投票。
有一点需要重申,那就是以太坊网络之前没有出现过这种漏洞,并且整个期间一直运作良好。其实所有网络系统都有可能会遭到各种各样的攻击。而支撑价值超过10亿美元(根据市值计算)的以太币的以太坊网络还没有遇到过黑客攻击,而且它同时还在运行很多其他智能合约。
每个编写智能合约的人都知道,如果某系统可以转移大量现金,那么就有可能会遭到攻击。近期这一问题在另一个叫做Maker DAO的系统中被发现,不过很快就压了下来,因为DAO还在测试阶段。
很多人觉得,智能合约的测试与验证会是保证以太坊生态系统安全的一个重要部分。您可以在DecentralStation.com网站找到一些智能合约验证服务机构。
黑客攻击
不幸的是,在程序员修复这一漏洞及其他问题的期间,一个不知名的黑客开始利用这一途径收集THE DAO代币销售中所得的以太币。
6月18日,也就是周六,黑客成功挖到超过360万个以太币,并投入到一个DAO子组织中,这个组织和THE DAO有着同样的结构。当时以太币价格从20多美元直接跌破13美元。很多人都在尝试从THE DAO脱离出来,以防止以太币被盗,但是他们无法在短期内就获得所需票数。因为设计人员从来没想过会金额会这么大,所有以太币都存放在一个单一地址中(这一点太糟糕了),我们相信在听说分叉提案后(详情见下),黑客会主动停止攻击。实际上,这种或者其他相似的攻击,随时都有可能继续。
智能合约的目的是成为一种独立的协议——不受任何外界实体或辖区管制。它本身的代码就是最终交易执行的裁决者。不过当然,这也是一种理想的想法(即加密的无政府主义)。
甚至在攻击开始之前,很多律师也表示对THE DAO项目的担忧,认为THE DAO超出了众筹的极限,并且触碰到了几个国家关于证券的法律问题。律师也指出,其创建人要承担任何可能出现的责任,也有几个律师表示,THE DAO代币持有人也要担负部分责任,而这一点可能他们本身都没意识到。THE DAO处于法律和监管的灰色地带。
因为DAO子组织(以下简称“子DAO”)和其母体有着同样的结构、限制以及缺陷,所以这个新生组织中的以太币在28天内是取不出来的,因为28天是其初始融资期。
每个人都可以看到子DAO中的以太币——任何试图将其体现的行为都会引发警报及调查。也就是说,黑客也将永远无法取现或使用任何一个以太币。
很有可能攻击者在发动攻击时,拥有大量以太坊空头——在以太币数量减半后用来套现了。也就是说,黑客已经从中赚到了钱,所以也就无所谓子DAO里的以太币了。
以太坊基金会可能会做出一些举措,这样的话DAO中的以太币就有可能无效。这样事情就复杂化了。
软分叉提议
THE DAO持有近15%的以太币总数,因此THE DAO这次的问题对以太坊网络及其加密币都产生了负面影响。
需要注意的是,有数十家初创公司在研究DAO及其管理产品,而许多智能合约都有相似的缺陷,而利用智能合约来构建复杂的软件还处于初步阶段。对于接下来会发生的事情,每个人都会遇到风险。
现在所有人都在关注THE DAO及以太坊基金会,希望有一个解决方案,能够让这个生态系统回到之前的发展道路上。
为了了解下面提到的问题,你需要先了解下区块链的基础知识:节点网络将交易输入到区块上,然后各区块再连接成一个单一的链,来代表所发生事件的“真相”。如果有两笔竞争中的交易同时开始,那么网络就会选择一笔,拒绝另一笔,从而化解冲突,因此所有节点都有整个分布式账本的相同复件。
唯一“重写历史”的方法就是让超过51%的节点同意这个决定——之前比特币或以太坊都没出现过这个问题。去中心化网络的目标就是没有人有权做这个事情,不然的话网络本身就会变的不可信。
6月17日,以太坊基金会的Vitalik Buterin更新一项重要报告,他表示,DAO正在遭到攻击,不过他已经研究出了解决方案:
现在提出了软件分叉解决方案,(没有反转,即没有交易或区块能够“逆向操作”),通过这种软件分叉,任何调用代码或委托调用的交易——借助代码hash0x7278d050619a624f84f51987149ddb439cdaadfba5966f7cfaea7ad44340a4ba(也就是DAO和子DAO)来减少账户余额——都会视为无效……
Vitalik Buterin
Buterin特别表示了,他没有说要重写任何区块,他只是要给以太坊基层代码上一个“开关”,从而防止任何以太币从DAO及其子DAO中流出。
这种一次性修复方式(即“分叉”)非常有效,它能够使这次事件涉及到的所有以太币永久的封在这个地址中。
Buterin继续说道:
“矿工及矿池应该将交易恢复到常态,等待软分叉代码,准备好下载及运行,如果他们同意以太坊接下来的生态系统的话。而DAO代币持有人以及以太坊用户要齐心协力,保持冷静。交易所应该感到安全,在以太币恢复交易后。”
换句话说,以太坊代码会创建一份黑名单,来防止不法分子借此获利。在这种“冻结资产”的场景中,Buterin呼吁一起探讨,如果帮助DAO代币持有者来恢复他们最初从投资。
这个看似无害,且颇有“解围”意义的提议——这个也需要以太坊网络节点大部分人都接受才能奏效——已经引起了巨大的非议。
黑客给出了回应——不过真的是黑客吗?
我把攻击者当做一个孤独的男子,即使我根本不确定他是一个人还是很多人。
接下来要讲的事很有意思。THE DAO和以太坊社区的一封公开信中,(据说是)攻击者声称他的“奖励”是合法的的,并且如果有任何人想要无视他的工作的话,他都对采取法律手段来维护。也有人指出这个留言中的加密签名是无效的——可能是伪造的。
但是它表达的很明确,而且从某个角度来看,也引起了共鸣:智能合约的前提是,它们是自己的仲裁人,任何其他外部节点都不能“改变这一交易的规则”。
之后,攻击者通过一个中介表示,他会暂停这个有组织的对他财产的“盗窃”,他会奖励不支持这项软分叉提议的矿工(节点),他说:
“很快我们就会有一个智能合约来奖励矿工,奖励那些反对软分叉并进行挖矿的人。共计100万个以太币,以及100个比特币会分享给矿工。”
很明显,这是一个复杂的动态系统。
这些从“攻击人”那里发出的信息都没有进过验证,因此我们不得不静观其变。
硬分叉提议
还有一项提议也引起了争论——即要求矿工彻底解除盗窃并且归还THE DAO所有以太币,这样就能自动归还给代币持有人,从而结束THE DAO项目。
Stephan Tual
正如Stephan Tual在他的博客中写到的……
“当地时间下午四点,达到的共识是,如果27天都使用软分叉,那么攻击者就不能索回他塞到子DAO中的资金了。
而之后硬分叉甚至可以追回所有以太币,包括DAO的‘额外余额’以及被盗资金,归还到智能合约上。这个智能合约将包含一个简单函数:withdraw()。
这样每个人都有可能参与到DAO,以提取他们的资金:多亏有矿工的支持,因为目前还没有花掉一个币,也不会出现任何损失。”
这个可以达到重写区块链执行规则的效果,而这一点本来是不应该去做的。我们真的要暂时先转变这个规则,使以太坊项目重回轨道吗?
如果我们成功的话,Slock.it的人以及大部分DAO代币持有者会对我们表示感激的。
对软分叉的回应
就其自身来看,这个提议是合理的。这是针对一次性问题的一次性修复,但是很多人并不这么认为。
你可以在Reddit上看到各种回复,我试图对其进行了总结:
网络的可信度是神圣的。
Reddit上有个人说:
“以太坊基金会参与DAO项目就是个错误。因为我觉得以太坊应该挑选一些能够成功的项目以及实验来提供基础架构,而反过来它们要想成功,则需要一个强大的基础,而且要求坦诚得面对挑战。硬分叉提议的妥协,破坏了这种坦诚,而且意味着DAO项目会反过来影响它们自己的基础架构。就我而言,这是完全无法接受的,也违背了曾经吸引我的以太坊原则。”
硬分叉是一个有效选项,但是它是针对需要紧急整改以太坊协议本身的情况的,而非利用以太坊平台的其他项目。
以太坊基金会已经参与进来,而且推广了THE DAO项目,这整个事件就是个错误,它只会损害人们对以太坊作为其他项目基础架构的信任。
我希望他们能纠正这个错误。
也有其他人表示:
“在头几天我做了个坏决定,然后我损失了2万个以太币,能把这些以太币也还给我吗?先谢谢了!”
最后:
“以太坊一直按其目标在运作。我觉得既然现在管用,就不该去更新软件。你可以想象一下你的投资会遭遇的风险。如果你不清楚你的投资情况,那你就会遇到未知的风险。其他任何东西都会是中央权威机构的一种援助,和加密世界形成对照。相似的,这也就是为什么雷曼兄弟会失败——因为交易就是交易,如果你为了某些特定参与者该改变规则,那么其他参与者也会想要这种特殊待遇。”
项目太大,不能失败
雷曼兄弟事件发生一个月后,其他银行就得到了特殊待遇,你可以自己考量这是否是好事——这和我们现在的情况相似。THE DAO不是一个孤岛。
这个项目太大了,它不能出现问题,这是以太坊生态系统的观点之一。可能大家会注意到,以太坊基金会中也有几个人是DAO代币拥有者及THE DAO项目顾问。甚至是Gavin Wood——以太坊最初创始人之一,也在博客中支持这个分叉。
在他的观点中,很有可能其他大型项目也会需要救助,而以太坊基金会之前已经遇到过先例,可能需要再次要求矿工来重写历史。很明显这和银行救助非常相似:银行要承担大量风险来期待较大回报,而当这些交易出现问题时,纳税人就会“拯救”他们(除了可能的雷曼兄弟)。一般来说,这种风险的不对称性对激励市场参与者来说,不是好办法。
这是两个极端,但是大多数人都会倾向于其中的一个。法律专家都会如此,更别提纳税人了。
上述的讨论认为我们正处一个真空环境里,这是一个加密的无政府管制领域,在这里法律并不管用。但是人们却投入了真金白银,所以真正的法律能够并且也将应用到这一案例中。
事实上,这里所有参与方都可能有合法索赔权,只是要在全世界法院解决可能得花好几年。
谁会承担风险?
虽然他们谨慎地没有创造任何证券,并确保人们知道风险,他们还是可能会承担责任的。如果DAO代币持有者失去了它们的1.5亿美元的投资,可能会出现一个针对创始人的集体诉讼。
其他的DAO
一些人利用The DAO智能合约的代码丝毫不动地实现了另一些DAO。在硬分叉的情况下,每一个使用The DAO 1.0智能合约代码的任何DAO衍生品将会把它们的以太币查封到一个退款地址中,并在DAO代币持有者中分配。这样,DAO代币持有者可能会获得比他们所投入的以太币还多的以太币。这样,可能会惹怒那些在The
DAO 1.0代码的衍生品DAO里投入了钱的人。
代币持有者
作为投资者,在缺乏公司保护的情况下,所有的11000多个DAO代币持有者或许可以看成是这个基金的普通合伙人。如果在这种情况下,攻击者或许可以在DAO代币持有者各自的辖区里提取诉讼,声明他们代表了冻结攻击者合法资产的实体。
交易所
在初始的众筹阶段结束后不久,几个加密货币交易所开始交易DAO代币了。在这之中,任何从交易所购买了DAO代币的人可能会起诉交易所出售有缺陷的投资品的行为。这影响可能很大——违反证券法的层面,或简单地对他们从这些代币中赚取的利润承担责任。
考虑到一些交易所有不少的现金,这些交易所可能会成为第一个目标。
以太坊基金会
以太坊基金会在这里是利害攸关的。它们希望网络很结实,能够支持数十亿美元的商业,成为“未来的操作系统”。不过现在他们面临了难打的难题:如果他们什么都不做,以太坊将会受到一个可能需要数年才能恢复的打击;如果他们干预了,他们就会设下一个危险的先例,即破坏了他们与由独立节点组成的网络所设定的社会合约。
他们并没有将以太坊网络设计成一方或多方利益受损时充当法官和陪审团的角色。
矿工和节点
6000多个以太坊节点或许会对它们投票的任何分叉承担相应的责任。
如果攻击者可以被视为在智能合约“特性”的结果下获得了他的以太币,那么他可以(也已经威胁要)对任何想要夺走他认为是合法权益的矿工提起诉讼。如果以太坊基金会书写了执行该分叉的软件,那么他也可以向以太坊基金会提起诉讼。
另一方面,DAO代币持有者也可以起诉那些不对分叉投赞成票的节点,声称它们没有在做正确的事情。另一方面,那些运行节点的人喜欢钱,他们可能会从“攻击者”手上得到钱从而不进行分叉。政府的介入是完全有可能的,也有可能给以太坊系统的治理机制带来重大的改变。
攻击者
这个攻击者或许已经通过操纵市场获得了一笔不小的钱——这在很多辖区都是非法的。他同时也会有税务方面的责任。查出他的身份并让他曝光显然是满足社区的需要的。
现在可能已经有足够的信息能让人们查出他的身份——只是什么时候的问题。
余波
现在看来,The DAO将会死去,而DAO代币持有者将会得到他们所投入的以太币的0-100%之间的某个数字。
现在可以认为Slock.it的人已经忙活了一段时间了,他们或许没法资助自己的项目了(有人告诉我他们已经投入了自己的一些钱到The DAO里),另外他们这几个月间一直在与律师接触。
Vitalik可以提出一个基于以太坊的解决方案,但节点必须自己做决定。现在还不清楚这些节点会选择什么做法。很多人称“什么都不做或许是最坏的选项”。这取决于你的立场如何。无论怎么做,可能都会有后遗症。
这还有另一个麻烦事:以太坊基金会正在设计PoS(股权证明)的新型共识机制,在那个场景中,任何拥有14%的以太币的人将会对区块链的发展有着重大的控制权。
实际上,Vitalik已经让各个项目设定1000万美元左右的限额,以控制未知错误所带来的影响。
看样子很可能会有法律诉讼了。我们或许能看到一个很混乱的场景,会有持续数年之间的诉讼。或者,我们可以看到一个较简单和快速的结局——以太坊继续发展,而“攻击者”不再出现在人们的视野中。
不过我会压上5个以太币的赌注,觉得攻击者会在1到2个月内被找到。即时智能合约的字面和精神是“智能合约管理一切”,而法律的规则不适用——在这个例子中,大部分人会希望看到交易被回撤。我猜我们将可能看到不同的法律规则被用在这里。
我尝试从事实从发,现在我将提供一个简单的选项:若攻击者简单地购买一堆以太币并同意与The DAO的团队一起合作向所有的代币持有者返还这些钱然后彻底地将The DAO退役。
这样的话,攻击者将会得到一些钱,提出了他的观点,不需要涉及律师,我们也会吸取到交换,以太坊基金会也可以开始规划一个更安全、更有生命力的未来。
总结
我认为我们可以将这次的事情当成是以太坊公有区块链的新纪元的标志。
虽然“准备、发射、瞄准”的敏捷方法通常适用于新软件的开发中,但当涉及到1.5亿美元时,这样的做法就可能很危险了。
以太坊的宣传点是一个通用的计算平台,也是为计算和社会而设的新型去中心化模式的先驱。我们将会看到——或许比我们希望的更早——这些事情在现实世界中如何执行。
关注本公众号后,进入公众号
回复关键词可以查阅资料,以下是部分关键词
回复 BitFury ,查看《BitFury技术白皮书》
回复 申万1 ,查看《申银万国券商发布区块链研究报告》
回复 德勤银行业 ,查看《德勤金融服务中心报告》
回复 英国报告 ,查看英国政府权威报告中文版《分布式账本技术:超越区块链》
回复 论文11 ,查看论文《可扩展的去中心区块链》
回复 欧洲央行 ,查看联合国报告《欧元体系的愿景——欧洲金融市场基础设施的未》
回复 联合国报告 ,查看联合国报告《数字货币和区块链技术在构建社会和可信金融之间扮演的角色》
回复 用户特性 ,查看普林斯顿大学首本比特币教科书初稿《比特币用户的特性(Characteristics of Bitcoin Users)》
回复 普林斯顿 ,查看普林斯顿大学首本比特币教科书初稿《比特币和数字货币技术(Bitcoin and Cryptocurrency Technologies)》
回复 IMF,查看国际货币基金组织报告《Virtual Currencies and Beyond: Initial Considerations》
回复 DTCC ,查看美国存管信托清算公司报告《DTCC: 拥抱分布式》
回复 广发 ,查看报告《科技前沿报告:区块链:正快速走进公众和政策视野》
回复 川财1 ,查看报告《川财证券:区块链技术调研报告之一:具有颠覆所有行业的可能性》
回复 川财2 ,查看报告《川财证券:区块链技术调研报告之二:区块链技术进化论-区块链技术的国内实践和展望》
回复 桑坦德 ,查看桑坦德银行报告《The Fintech 2.0 Paper: rebooting financial services》
回复 拜占庭 ,查看《拜占庭将军问题详解》
回复 论文1 ,查看论文《比特币闪电网络:可扩展的离线即时支付》
回复 论文2 ,查看论文《比特币骨干协议》
回复 论文3 ,查看论文《数字货币是否应该进入Barbados央行国际储备货币组合中》
回复 帮助 ,查看本公众号全部关键词列表