阅读此文前,强烈建议先预习《分叉》这篇文章。
类比时刻:
我在2017年5月23日开设了《区块链生存训练》饭团,三个多月已经完成了65篇文章,使用简单的语言和类比介绍区块链的每一个基本概念,我模仿区块链的区块高度的思路,给每篇文章也弄了一个编号,这样就有了块0、块1、......,直到今天的”块66“。
写这些小块块文章通常要参考好几本权威书籍,消化到自己的肚子里,然后再搜索一堆网文,寻找恰当的类比,用自己的话表达出来,憋出一篇文章经常需要几个小时。然而最近要搞一件大事,写文章的精力慢慢有点不济,就寻找了几位区块链自媒体的朋友共同创作,当然内容仍要经过互相审核,绝对保证质量,我创办这个饭团的信条没变:
“每篇文章必给大家带来价值”
所以,前面66块文章全都是我自己撰写的,但在后面的这些天,将是我们这个创作团队给大家带来更高质量的内容,当然我的文章仍占一定比例。
我啰嗦了这么多,与软分叉有什么关系?现在进入类比的正题。
假设“块67”将由黄黎执笔完成,那么我的饭团将迎来一个软分叉的历史时刻。虽然呈现在大家面前的仍然是一篇一篇的小文章,但是作者将不是我一个人,而变成一个团队、一个集体。
要点一:软分叉其实并没有分叉
上面类比的意思就是,虽然每个块的作者发生了变化,但整个创作团队仍是共同维护一系列的文章,实际上并没有分叉。
在比特币里也是这样,软分叉只是区块的版本或协议发生了变化,但所有的区块仍在一条区块链上,实际上并没有分叉。
要点二:新区块欺骗旧软件
文章的作者发生了一点变化对于系统可能影响并不大,但”饭团APP“是有多个版本的。假设饭团1.0版本的程序员考虑不全,只允许阅读申龙斌团长的文章,其它嘉宾的文章虽然不报错,但却无法正常阅读。为此,饭团发布了2.0版本,修正了上述问题,所有文章都可以正常打开并阅读。
现在回到区块链的世界,用户进行比特币交易会安装不同版本的钱包软件,有人安装了0.8.1的旧版本软件,它知道有新区块67产生了,钱包软件不报错,但它并不理解区块67的内容,即使里面有几笔交易与他有关,他也一无所知,这时他的钱包软件中的余额信息很可能是错误的。
有人则安装了最新的0.14.1版本的钱包软件,所有区块(旧区块、新区块)的信息都可以正常解读,软件运行完美。
从这一点上来看,新区块实际上在欺骗旧版本的钱包软件,旧版本钱包软件不给用户任何警告或错误信息,看上去一切正常,但交易信息、余额信息可能是不完整,甚至是错误的。
要点三:协议升级的无奈之举
我的饭团引入更多的人共同创作,创作人有点变化,但“为大家带来价值”的共识是不变的。
比特币协议从2009年诞生,期间也发生了很多次变化,钱包软件要升级,但全世界的用户太多了,使用的钱包版本都不相同,不可能商量好一起升级。软件开发人员也不能让钱包软件崩溃,影响用户的使用。关键的是不能影响矿工的挖矿,那可以真金白银的苦力。
所以这些升级大多通过软分叉方案来渐进实施,区块链仍是一条,旧块与新块有所不同,而且一直共存,大家的共识是一样的:让比特币交易顺利进行。
现在我们给出软分叉的学术定义,你能看懂吗?
软分叉是指比特币交易的数据结构(这就是被广泛流传的“共识”)发生改变时,未升级的节点可以验证已经升级的节点生产出的区块,而且已经升级的节点也可以验证未升级的节点生产出的区块。
请对应我给出的类比仔细理解上面的定义。
小结:
--- END ---