以太坊社区的分裂——The DAO项目分析

Ines ·
更新时间:2024-09-21
· 626 次阅读

文章目录一、The DAO是什么二、问题出在了哪里三、以太坊社区的分裂 一、The DAO是什么

DAO(Decentralized Autonomous Organi zation)是一个去中心化自治组织。所有的规章制度写在代码里,通过区块链的共识协议来维护规章制度的正常执行。

2016年5月出现了一个致力于众筹投资的“The DAO”项目,“The DAO”本质是运行在以太坊区上的一个智能合约,工作原理类似于众筹投资基金,但是资金来源于区块链上的众筹。通过发送以太币给该智能合约,然后换取代币,代币作为投票的权重,投票决定投资哪个项目。投资的收益也是按照合约中的制度来进行分配。

“The DAO”项目发起众筹后,以前从来没有这样的民主的投资基金,当时被称为伟大的尝试,受到了很大的关注度。1个月内就筹到了1.5亿的以太币,众筹的速度和规模前所未有。但是最终“The DAO”仅仅存活了3个月就结束了。

二、问题出在了哪里

投资理念相同的人可以通过拆分(split DAO)的方式,独立建立子基金(child DAO),投资者的代币也会被换成ETH转到子基金里。
单个投资者也可以成立子基金,然后将所有钱投票给自己,这是投资者取回收益的唯一途径。“The DAO”还规定只能在成立子基金的28天以后才能取回资金。

拆分子基金的理念本身没有错,但是在代码实现上出现了一些漏洞,如下所示:

function splitDAO( uint _proposalID, address _newCurator ) noEther onlyTokenholders returns (bool _success) { …… // Burn DAO Tokens Transfer(msg.sender, 0, balances[msg.sender]); withdrawRewardFor(msg.sender); // be nice, and get his rewards totalSupply -= balances[msg.sender]; balances[msg.sender] = 0; paidOut[msg.sender] = 0; return true; }

退款时,先执行withdrawRewardFor函数将币还给调用合约的人,然后将The DAO的总金额减少相应的数量,最后将调用者的账户清0。黑客就是利用了“没有先清0然后转账”的漏洞进行了重入攻击,转走了价值5000万美元的以太币,引起了以太坊社区极大的恐慌,去中心化的理论在现实面前不堪一击,这也引起了以太币价格的跳水。

三、以太坊社区的分裂

“The DAO”被攻击后,以太坊社区分成两派进行了激烈的讨论,一派认为应该回滚交易,利用成立子基金的28天锁定期,黑客暂时还不能将以太币取走,采取补救措施可以保障广大投资者的利益;另一派则认为不需要采取补救措施,黑客的行为并没有违反任何规则,仅是遵循了代码的规则,所以不应该回滚交易,回滚反而违反了区块链的不可篡改的特性。

以太坊的开发团队支持采取补救措施,主要是“The DAO”事件的影响太大,占以太币流通量很大一部分,不能将这么多的以太币集中在黑客手里。“The DAO”这个项目其实是“too big to fail”,所以还是要救的。

问题处理过程:

首先想到的思路是锁定黑客的账户,然后设法将以太币退回给投资者。 发布升级,只要跟The DAO相关的账户,不允许做任何交易。之后大部分矿工升级了该版本,等于增加了一条判断的规则,所以只会发生软分叉。
遗憾的是软件升级设计成判断的过程不需要汽油费,网络中出现了大量非法交易,进而浪费矿工的资源,矿工纷纷回退版本,于是软分叉的方案失败了。 软分叉失败后,只能提出硬分叉方案。通过软件升级,规定在第192万个区块,将The DAO上的资金强行转到新的智能合约账户,用于退钱给投资者。 硬分叉的方案在以太坊社区引起了激烈的辩论,反对派认为强行记账的方法是不可接受的,这违反了区块链去中心化的原则以及不可篡改特性。最后以太坊社区通过一个智能合约进行投票,投票结果显示大部分人支持硬分叉,结果也是大部分矿工升级了硬分叉版本,黑客最终没能获利。

经典以太坊(ETC)
但是当初反对硬分叉的人并没有改变立场,他们认为此次投票参与人不多,另外他们认为就算真的大部分人同意,也不能说明大部分人的策略是正确的。所以仍有一部分矿工继续在旧链上挖矿,但是算力只有原来的1/10,挖矿比较容易。一段时间后,一些交易所开始上市旧链上的以太币,称为经典以太坊(ETC)。

新旧两条链在这之后一直互相并存,同时也带来一些问题。因为分账之前是同一个账本,在其中一条链上的交易,放到另一条链同样是合法交易,后来两条链上都加入了chainID标识,解决了重放交易的问题。


作者:ice_fire_x



以太坊 dao

需要 登录 后方可回复, 如果你还没有账号请 注册新账号