目录 |
硬分叉指的是区块链发生永久性分歧,在新共识规则发布后,部分没有升级的节点无法验证已经升级的节点生产的区块,通常硬分叉就会发生。代码出现一个硬分叉,会改变挖矿算法的难度级别。[1]
任何系统都存在“升级”,区块链也一样。在中心化系统中升级软件十分简单,你只需要在应用商店点击“升级”即可。但是在区块链这样的去中心化系统中,“升级”并不是那么简单。
因为没有中心化机构,比特币等数字资产的每次代码升级都需要获得社区的一致认可,如果社区无法达成一致,区块链就很可能形成“分叉”。
比如2013年3月,比特币客户端版本号为0.8的新版本和旧版本之间的冲突就引起了比特币网络的分叉,使用0.7等旧版本的矿工和比特币商家拒绝接受新计算出来的块链。在强迫大型矿池返回0.7旧版本后,分叉重新合并,问题才得到解决。
在区块链领域中,以太坊是一个知名的底层应用公链项目。它能够支持DApp在其上面进行创建和运行,就如同手机上的安卓或iOS系统能够支持APP运行一样。在2016年,以太坊曾因为the DAO事件而进行了硬分叉。
The DAO就是以太坊上的一个DApp,是Decentralized Autonomous Organization(分布式自治组织)的简称。那时这个项目在以太坊上进行中众筹时,在短短的28天内就筹集了1150万以太币,在当时价值1.49亿美元,成为有史以来最大的众筹项目。
这个获得众多人看好的自治组织,由德国的以太坊创业公司Slock.it编写源代码,其职能被设计成为一个类似于投资基金的组织,可以由社区成员投票,授权给社区为以太坊项目提供资金。
整个社区正如其名,完全由社区成员自治,并且通过代码编写出的智能合约来进行。社区通过代币DAO Token来进行投票和投资,并且可以创建child DAO(子DAO,即通过调用DAO智能合约中的split函数,创建出来的小型DAO智能合约。创建成功后,原来DAO智能合约中的代币被销毁,以太币将被转移到新建的小型DAO智能合约上),DAO Token则可以用以太币兑换来得到。
众筹结束后,the DAO项目团队正在讨论资助提案项目前的系统缺陷。在6月12日,创始人之一的Stephan Tual宣布,他们发现了软件中的一个“递归调用splitDAO函数”漏洞,正着手解决,但the DAO中的资金并不会有风险。
6月15日,the DAO上的漏洞尚未修复完成,发起攻击的合约就被创立了,令所有人都措手不及。17日,攻击正式开始。以太坊创始人Vitalik Buterin立刻通知了中国社区,DAO遭到黑客的攻击,通过DAO上“递归调用”的漏洞,不断从the DAO 中分离出资产并建立自己的child DAO,将这些以太币转移到里面。根据当时以太币的价格,可以得出被黑客转移的以太币价值近6千万美元。
为了挽回这一局势,Buterine当机立断,发布了《紧急状态更新:关于the DAO的漏洞》的文章,解释了当时the DAO被攻击的细节,以及一个关于分叉解决方案提议。首先进行软分叉,就是修改以太坊区块链上的共识协议,使得新生成的区块获得所有节点的认同。
这是一个有效的提议,一经软分叉,所有被盗的币都将“冻结”在那个地址上。从区块高度1760000开始,所有关于the DAO以及child DAO的交易都将无效,以此来阻止黑客将以太币提出。然后,再进行一次硬分叉将这些以太币找回。
软分叉的提案一出,攻击暂时停止。但在19日,黑客却宣称若有反对这个软分叉提案的矿工,将获得100万以太币以及100个比特币奖励。在当天,攻击又起,不过被分离出去的DAO非常少。
6月22日,黑客又开始了行动。有白帽黑客将the DAO的资产转移到了一个安全的子DAO中,但其后就有黑帽黑客,也就是这次攻击的发起者,对这一子DAO的智能合约进行了攻击。
为了拿回被盗的币,以太坊最终还是进行了分叉。7月20日,备受瞩目的以太坊硬分叉完成,中国的一个矿池成功地从这条新主链上挖到了第一个区块。而由黑客转移的,其中有价值4千万美元的以太币被成功地转移到了新的地址,也就是说,经过分叉回滚,黑客盗走的the DAO以太币,被成功“召唤”回来。
这一次分叉,无疑是力挽狂澜的壮举。然而,以太坊的分叉并没有得到所有矿工的同意,所有以太坊最终形成了两条链,一条是原来的链ETC(以太经典),一条为新分叉出的链ETH,即现在的以太坊。这两条链分别代表了不同的社区共识和价值观。
同时,这一次分叉也引发了区块链业内对以太坊的一系列争议和思考。虽然硬分叉夺回了被盗走的币,但也暴露出了这样一个问题:区块链的分叉,以及将被盗的币回滚的措施,违背了区块链不可篡改的特性。
而这一点,也正是ETC和ETH社区的矛盾之处,支持ETC的人认为,不能因为一个应用就这样改变以太坊。
很多人认为,这一次分叉永久地改变了以太坊的价值方向,甚至还影响到了整个区块链行业:区块链的不可篡改和可延续性,究竟孰轻孰重?同时,这次分叉也带来了其他负面影响——很多项目后来也通过硬分叉对区块链进行升级和优化,甚至分裂出新币。
此外,以太坊硬分叉是以多数人的投票而通过的,其中Vitalik Buterin作为核心人物起到了一定的导向作用,而反对的少数人的投票显得很无力,这很微妙地显露出了此次分叉中的一种中心化意识。
总是,the DAO的一个漏洞,导致了历史上的第一次也是最具影响力的分叉。The DAO从成功到失败的历程,也启发了很多人对于智能合约的思考。