学术 | 分叉史上的三次重大事件

Trias联合“北大软微-八分量协同创新实验室”定期举办技术沙龙。该实验室成立于2017年9月份,以可信计算、区块链等作为主要研究方向,致力于推动智能互联新时代下的人机互信问题的解决。

现在,我们会推出由实验室教授、博士生以及硕士生主笔撰写的系列文章。本期文章由北京大学的博士生辛武撰写。本文是上篇,旨在回顾重要的分叉事件,下篇会对分叉的类别和原理做出简要的介绍,务求让没有经验的小白也完全看得懂。

人们对分叉的态度总是莫衷一是,有的人拥护分叉,认为分叉是新事物替代旧事物的良性发展,有的人反对分叉,认为分叉是伤害共识的不利行为。

有的人因为分叉而名利双收,还有的人因为分叉争得面红耳赤,分叉究竟是好是坏,我们不做评价,这里简单介绍一下分叉史上的三次著名事件。

一、攻击者凭空创造出了1840亿个比特币

2010年8月15日,有人在比特币区块链的第74638块上发现了一条让人惊愕的交易,这笔交易里竟然出现了184,467,440,737.09551616个比特币,其中各有922亿个比特币被发送到两个比特币地址,如下图所示:

据技术人员分析,黑客是通过利用大整数溢出漏,绕过了系统的平衡检查,成功实现了这次攻击。

通过上面的交易截图我们可以看到,在2010年的8月矿工打包一个区块至少可获得50个比特币,其中50个比特币为币基交易,而剩下的则为其他用户在转账过程中产生的手续费。

该笔交易在向两个账户中分别转移92233720368.54275808个比特币,但是转出的账户上仅有的0.5个比特币,这笔交易怎么可能会被其他节点检测通过并打包至区块中呢?

问题在于,当时的比特币系统仅检测了转出的比特币总额是否小于未花费输出,而没有检测每一笔转出是否小于未花费输出,而这两笔交易加起来则发生了大数溢出漏洞,两笔交易加起来为一个负数。

那么我们用一个易于理解的表达式来看一下上面的交易:

50.51btc=币基交易+打包区块奖励

   =币基交易+(输入金额-总输出金额)

    =币基交易+(0.50btc-(92233720368.54275808+92233720368.54275808))

    =50btc+(0.50btc-(-0.010btc))

    =50.51btc

所幸的是,在发现这一异常现象后的不到半天的时间,比特币核心开发人员就开发完成了比特币补丁版本,并启动了分叉,在第74691块,带补丁版本的比特币块链终于追赶上并且超越了原有的出现漏洞的块链,最终是有惊无险地解决了这次比特币历史上最为重大的危机事件。

在这种场景下,分叉出来的链会被抛弃掉,之后会消失。在这个分叉过程中:所有矿工都不会承认多出来的1840亿个比特币。

二、以以太坊分拆事件为例

2016年6月,the DAO事件。DAO基于以太坊平台进行众筹,受到漏洞攻击,造成300多万以太币被盗(当时价值超过5000万美元)

the DAO是在以太坊上做了一个应用,以以太坊为基础的一个DAO代币,他们在十几天的时间内做了当时市值1.6亿美金的一个众筹,这个是目前人类有史以来P2P众筹里面最大的单笔众筹(单位时间之内),从经济规模上来讲也是最大的。

the DAO的失败或被盗:因为DAO的代码写的有问题,导致被盗了1000万个ETC,1000万个ETC其实黑客就只拿走了300万个,基金会又雇了一帮人把剩下的700万给抢回来了。

分拆的导火索就是这样,其实事情并不严重,但是基金会通过一个小范围内的投票,短时间内就决定了分叉;

他们实现的原理就是在新的钱包里面,把那几笔地址给冻结了,也就是说那个地址的币都提取不出来了,就都回滚回去了,当然这不是通过算力去回滚的。

这件事有一个戏剧性的结果,因为以太坊数据被人为篡改,造成了市面上的集体恐慌,不但冲击了以太坊,还大大影响了比特币。

明明以太坊城门失火,殃及比特币池鱼。本来当时比特币的信用评级实际上是4A(高于某些国家主权货币)。但是经这么一闹腾,它的信用评级直线下降。

在这种场景下,分叉出来的链会并没有被抛弃掉,之后也有消失,以太坊自此分叉为ETC和ETH。

三、以比特现金及其分叉为例

在讨论比特现金之前,我们需要先了解一下比特币的“扩容之争”。

大家都知道,在比特币中,区块的大小有1MB的上限,日常产生的区块大小为1-2KB左右。2009年比特币上线之初尚可以满足需求,但是随着区块链和数字货币的发展,比特币的交易数已经突破40万笔/天,在1MB区块大小的限制下,比特币7笔/秒的交易处理速度就太缓慢了,交易高峰期常常会导致比特币网络的拥堵,交易迟迟无法确认。

这个时候比特币社区中的各方势力都提出了各自的扩容方案,有名的方案有“隔离见证、闪电网络、雷电网络”等,但这些方案具有导致“中心化”、矿工收入无法保障的后果,于是有开发团队提出了“大区块”的扩容方案,其理念为:基于目前算法效率、网络带宽和计算机硬件配置的大幅提高,可以直接在链上扩容。

2017年8月1日,比特现金BCH上线,比特币BTC分叉开始。比特现金支持大区块,其区块大小的上限为8MB,如下图所示,其支持者以吴忌寒和澳本聪Craig Wright等为首。

2018年8月8日,Bitcoin ABC和比特大陆提出在11月15日的升级方案或扩容主张,即根据市场需求慢慢扩大区块容量;而澳本聪则主张将比特现金区块的大小一次性扩容为128MB,即Bitcoin SV。

ABC和比特大陆反对的是在11月15日的升级中就将比特现金的区块大小扩大到128M,其认为目前市场处于熊市,没有扩容的市场需求;BSV的128M扩容方案并不成熟,缺乏测试数据。

在缺乏市场需求、未经充分测试的情况下,贸然在11月15日的升级中扩容到128M既不必要,也有很大风险。

不过ABC和比特大陆表示在11月15日升级之后愿意开始测试128MB的扩容方案,如果测试通过后可在比特现金未来的升级进行部署。但是,澳本聪坚持在11月15日的升级中部署128MB的BSV,并宣称会利用算力攻击Bitcoin ABC,使得这场“扩容之争”被外界称为“算力大战”。

实际上,双方都主张扩容,ABC和比特大陆主张在充分测试、保障安全的前提下扩容,而澳本聪要求立即扩容,故此导致BCH分叉为BCH ABC和BCH SV,如下图所示:

猜你喜欢

转载自blog.csdn.net/triaslab/article/details/85321554