比特币网络节点能互相独立工作并达成一致的基础是什么?

论坛 期权论坛 期权     
BSVOfficial   2020-3-28 03:34   1989   0
本文于2019年1月5日首发于aaron67.cc
作者:周全
原文:比特币共识的升级


共识规则决定了什么样的交易和区块是有效的,是比特币网络中的节点能互相独立工作并达成一致的基础。
长期来看,为了演进比特币系统,添加新特性,修复 bug,共识规则并不总是一成不变的。
与传统的软件升级不同,比特币没有官方机构,其软件的升级,需要协调和考虑多数系统参与者的意见。
这篇文章,介绍升级共识规则的两种方式,软分叉(Soft fork)和硬分叉(Hard fork)。
兼容性在开始之前,先介绍两个软件开发中的概念,向后兼容(Backward Compatibility)和向前兼容(Forward Compatibility)。这里的“前”和“后”,是根据英语的习惯描述的,以现在的软件为基准:
  • “后”(Backward)指的是向后退,是过去
  • “前”(Forward)指的是向前进,是未来
Office Word 2007 可以打开 Office Word 2003 创建的 doc 文档,是向后兼容。Office Word 2007 可以打开 Office Word 2010 创建的 docx 文档,是向前兼容。一般来说,软件做到向后兼容,比做到向前兼容要容易。软分叉软分叉的意思是,比特币协议发生了一些变化,但旧节点却不能发现这个变化,从而继续接受新节点用新协议挖出的区块。
新版本软件产生的交易或区块,可以被旧版本软件验证通过并接受,反过来也成立。
旧节点将会在他们不能完全理解的新区块上继续添加区块。
软分叉不是真正的分叉,如果有节点没有升级软件,软分叉后的区块链看起来就像下面的样子。


软分叉很好理解,就像你使用 Office Word 2007 和 Office Word 2010 一样。
  • 你能用 Word 2007 打开和编辑 Word 2010 创建的 docx 文档,反过来也一样
  • 但你不能在 Word 2007 中使用 Word 2010 提供的新功能,就像软分叉后,旧版本软件无法知道新的共识规则一样
还记得
  1. CLTV
复制代码
时间锁么,由 BIP-65 通过软分叉激活。
新版本软件因为知道新的共识规则,会在验证交易时验证时间锁是否已经释放,但运行旧版本软件的节点并不会这样做。
这正是软分叉被诟病的地方,软分叉放松了验证


一家公司里有一些审计人员,还有一些交易员。交易员想开展一项当前不被公司认可的新业务,审计人员会拒绝这种新交易。有一天,某个机智的交易员想出了一个方法,“我要做一些衍生品合约交易,但会在交易记录上写成买入土地。当你们看到的时候,就在脑子中把土地替换为衍生品合约,一切照常,审计人员不会发现的”。
这里的审计人员就是拥有算力的全节点(运行着旧版本软件),而交易员的行为就是软分叉。
硬分叉硬分叉会带来区块链的永久分叉。新版本软件产生的交易或区块,旧版本软件无法识别或验证通过,就像你使用 Word 2003 无法打开 Word 2007 创建的 docx 文档一样。对某次硬分叉升级,如果绝大多数人都同意(都会使用新版本的软件),硬分叉后的区块链形如下图。



因为不存在分歧,所以旧链不会被继续延长(没有算力支持),硬分叉后仍只有一条链。
但如果双方矛盾不可调和且都有算力支持,硬分叉后便会有两条链存活下来。

  • 因为区块大小的争论无法调和,Bitcoin Cash(BCH)从 Bitcoin(BTC)的区块高度 478558 硬分叉诞生
  • 因为发展理念的不同,Bitcoin SV(BSV)从 Bitcoin Cash(BCH)的区块高度 556767 硬分叉诞生
总结软分叉和硬分叉是改变共识的两种方法,它们都是“向后兼容”的,否则新版本的软件将“不认识”过去的区块,无法从头验证整个区块链。
软分叉还是“向前兼容”的,旧版本软件会接受新版本软件产生的区块,只是不能完全“理解”而已,这在某种程度上放宽了共识的验证。
硬分叉不是“向前兼容”的,没有分歧的硬分叉升级不会产生两条链(不会产生新的币)
一个自由的社区,会在发展过程中不可避免的产生分歧。当分歧实在无法调和时,相较于陷入无尽的争吵和诋毁,停滞不前,通过硬分叉分道扬镳(获得算力支持并存活下来)可能是更好的选择。毕竟,各自按路线图好好发展,构建完整生态赢得更多用户才是最重要的,虽然这样的硬分叉会带来社区的割裂和短暂的混乱,但这是自由的代价。
请注意,在本系列文章中一般使用 Bitcoin 来指代协议,使用“比特币”来泛指 Bitcoin(BTC)、Bitcoin Cash(BCH)和 Bitcoin SV(BSV)这些不同版本的比特币(同一协议的不同实现)。
参考
  • 精通比特币(第二版)译文 原文
  • 有关共识和分叉 -硬分叉和软分叉有什么区别?(Mike Hearn)
  • On consensus and forks



  
Bitcoin SV is BitcoinBSV官网:BitcoinSV.com比特币协会官网:BitcoinAssociation.net
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:93
帖子:4
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP