谈谈比特币分叉

比特币现金(BCC)暴涨之际,比特币分叉这个术语也开始在越来越多的报道中出现。究竟数字加密货币为何要分叉?硬分叉和软分叉到底有什么区别?这需要从软件开发的特性讲起。

图片发自简书App

先讲一个历史事件,在2010年的时候,有一个黑客利用比特币的一个漏洞,刷出一笔包含了1844亿个比特币的交易。他利用的漏洞是比特币只定义了输出总金额不能大于输入总金额,但是没有限制面值不能为负。这样黑客可以让输出中包含一个很大的负值比特币,那其他剩下输出的比特币总额就能大大超过输入总额。这个事情被开发人员在半天内及时发现并发布了补丁,使得这笔交易的输出变为无效。事后看这是个很低级的漏洞,但是如果没有黑客利用,可能大家也不会注意到这个漏洞。越是常识性的东西越是不容易想到要去加上这条限制。

在中本聪提出比特币这种去中心化的数字加密货币的实现思想之后,由一群程序员开发代码,从软件上实现了比特币。任何大型的软件都或多或少会有漏洞(bug),由于人的疏忽,流程上的缺失或者时间紧迫下的赶工,都可能导致漏洞。即使假设一个软件消灭了所有漏洞,它也有自己的局限性。同一个软件只有10个人用和有100万个人用,体验是很不一样的,其考量因素也会不一样,因而设计思路也是不一样的。任何软件设计都需要找到合适的平衡点,在时间与空间之间取舍,在效率与安全之间取舍,因此并不存在完美的普适性的软件。

比特币在开发之时,那几个程序员根本就想不到比特币能够得到现在这样广泛的关注和参与。当时的代码实现中有很多影响软件吞吐量的限制被写死,比如一个区块的大小为1M,一笔交易大小至少要有250个字节,按平均10分钟挖出一个区块来算,每秒钟只能处理7个交易,而像visa这样的信用卡组织高峰时每秒钟可以处理上万笔交易。在当时所能预见的情形下,这些限制都是合理的。但是比特币的发展超出了任何人的想象,尤其是频繁的交易使得最初设计的比特币软件已经难于应付,出现了区块拥堵的现象。

需要解决这个问题,就需要对软件升级。比特币依靠去中心化的节点达成共识来保证交易安全性,而对比特币升级实质是对达成共识的规则进行修改,由于比特币去中心化的特性,系统在同时存在新旧软件的情况下,新旧节点就可能无法达成共识,这就会导致区块链分叉。

分叉可分为硬分叉和软分叉。所谓硬分叉,是指对软件进行修改之后,跑着旧软件的节点不认可新软件的节点挖出来的区块。也就是说新软件下达成共识的规则超出了旧软件限定的规则,例如增加一种新的加密方式,旧的节点就无法验证,自然会拒绝新区块。而软分叉是指新软件达成共识的规则依旧能遵循旧软件的规则,也就是说新软件只能把规则改得更严格,这样它达成共识的规则就包含在旧规则之中,例如原来的规则有一条是要求交易输出的比特币之和不大于交易输入的比特币之和,现在修改规则之后可以规定,在满足上述条件的情况下,还要求输出结果中的比特币按面值从小到大排列(先不管这个规则的合理性),那么按这个新规则挖出来的区块肯定是满足旧规则的要求,新的区块能被所有旧节点承认,而旧节点挖出来的区块就可能不满足新规则,会被新节点拒绝。

软分叉适合小修小补,利用一些预留字段等方法,来达到不伤筋动骨的效果,比如比特币的交易数据结构里有些字段一开始是没有用到的,后来想要增加一层验证,就可以用这个字段去存储需要验证的数据,但是这样的字段是有限的,你用光了再想要增加新的验证就没办法了。此外由于软件漏洞,历史上几次软分叉最后都引起了硬分叉,及时发布新补丁后才消除了硬分叉。

硬分叉导致的是永久性分叉,因为新节点挖出来的区块不被旧节点承认,新旧节点会沿着两条分叉的主链发展。软分叉导致的是临时性分叉,因为新节点挖出的区块会被旧节点承认,但旧节点挖出的区块可能不被新节点承认。软分叉的风险是旧节点挖矿可能是徒劳无功的,因为它挖出来的矿不被新节点承认。而新区块被新老节点都承认,因此传播速度会更快,最终最长的链连接的会是新节点挖出的区块。

至于比特币解决区块拥堵的问题的具体方案,不同的利益方(主要是矿池和核心开发团队,另外还有交易所和用户)提出了不同的方案,主要分为扩容和隔离,在此不作展开。

所以比特币的分叉本质上是因为软件升级需要对正确区块的共识进行修改,导致新旧节点对达成共识的规则不一致而引起的。因为软件不可能是一蹴而就或者说是完美的,所以将来势必还会需要升级,需要分叉。至于选择硬分叉还是软分叉,不同的利益集团会有自己的想法,最终结果也难以预料。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容

  • 什么是硬分叉,什么是软分叉,什么是共识? 第0章 引言 比特币是一套软件,对软件代码进行修改升级就经常会涉及到两个...
    凡的数据库阅读 708评论 0 4
  • 中医外治方法内容较多,我们诊室开展项目达25种,平时治疗根据病人病情的不同阶段有选择的加减,今天在杭州开会,大家都...
    中医科青藤子阅读 556评论 0 0
  • 2017-03-08 晴朗热 工作晚上 排 【早上】10:15 苹果香蕉 【午餐】12:30 饭➕菜 【下午茶】1...
    carmenMP阅读 207评论 0 0
  • 【本文内容主要整理自Sawbones,一个戏说医学史上各种不靠谱疗法的播客。笔者整理的过程中也有参考一些资料添油加...
    WangWeiwei阅读 3,772评论 7 7
  • 任何事情都做不到绝对的清楚明朗,那就至少留空气清晰吧。 大雨 ,哗啦啦的下下来。在风的作用下,渺小的很难垂直落下...
    蔚蓝海岸LEMON阅读 249评论 0 0