币久网-虚拟货币交易,BTC比特币价格,数字资产交易

币久网

中本聪为什么在买卖数据结构和区块数据结构中添加一个版本号

第0章 引言

复杂性带来的就是不安全。

更恐怖的是,当隔离见证被激活时,假如出现那些问题,大家是没任什么地方理预案的,在这么复杂的代码面前甚至是没可处置的方法的。至少核心开发组到目前都没提这一回事。这是很不负责任的。

这里有一个短视频,是比特币 Classic开发者Tom Zander谈BTC协议升级。Tom从传统软件行业的做法聊起,讲到BTC协议升级的简单方法。特别评价了隔离见证的事。

让大家来看视频结束这篇文章吧。我添加了中文字幕。

everything should be made as simple as possible but no simpler——爱因斯坦。

你知晓HTML5这个5表示什么意义吗?答案这是一个版本号,HTML叫超文本标记语言,一共经历过2.0、3.2、4.0、4.01和5等版本。

BTC的编码也有一个版本号,现在还是版本1,和中本聪开发时是一样的。

大家又要搬出BTC区块数据结构和买卖数据结构了。请看图。

这个图就是BTC的买卖数据结构,图中红色加粗的字段就是和HTML5里的5类似的标识买卖版本的代号。

从中本聪开发到目前,这个买卖版本号一直没变过,但区块版本号是经过几次变化的。(作者注:区块版本号是有变化过的,现在是vision 5)

这两个版本号就是用来标识参照的规则的。这和HTML5是一样的,HTML也是用一个字段来标识传播数据参照的规则。

由于是软件,一定需要进化和添加新功能。BTC到目前为止,一共快8年了,买卖和区块的数据结构其实变了不少,有了不少次软分叉,也有过硬分叉。但从来没修改过版本号。

整个区块链的买卖的版本号都是相同的,那就意味着,在软件层面上它们觉得大伙是一样的。假如大家对买卖规则进行较大的修改,需要修改版本号吗?

软件行业的通用做法是要修改的。就像HTML如此,由于如此意味着在全网明确规则改变了,假如你修改了数据结构,但不告诉以前的区块和买卖,那就需要更复杂的设计以蒙混过关。

不一样的版本的数据结构,就需要不一样的代码进行分析。当大家的开发者决定大幅度修改买卖时,明智的做法就是修改版本号,以明确这次代码升级的规则是变化的。然后升级在BTC互联网激活时,BTC互联网就需要冻结分析旧版本号的软件,需要他们升级到最新的代码,才能分析新区块和新买卖数据结构。如此的升级方法是明确的,大伙目的一致的,而不是需要新旧软件相互欺骗。如此的升级方法也叫硬分叉。

中本聪遗留下这个版本号的设计,这意味着中本聪是想通过硬分叉来升级软件。但大家的Core dev,核心开发组却违背了中本聪的设计想,而且是违背了软件行业通用的设计规格。他们每一次修改代码都用软分叉。

软分叉就是不去修改买卖的版本号,但却修改买卖的数据结构。由于版本号没修改,所以旧节点软件也会试图去分析修改过买卖。为了达成旧节点也可以分析修改过的数据结构,整个修改就很复杂。这种复杂性带来的是技术债务。

隔离见证软分叉就是大幅度修改了BTC买卖数据结构和区块数据结构。直接将买卖数据结构中的解锁脚本那个字段给移出了买卖数据结构,同时也要移出区块数据结构。

这么大幅度的修改,买卖版本号却不去修改,这就意味着隔离见证不计划告诉旧节点说它修改过区块和买卖,而是一种隐藏修改代码的策略叫旧节点默认这是可以分析的代码。当然实质操作起来的复杂性是很恐怖的。去查阅隔离见证的文档,他对BTC买卖和区块数据结构一共做出了11项修改。

这有多恐怖呢?

中本聪在2008年发表了BTC白皮书论文,然后在2009年初就完成了比特币第一个版本软件的开发,并且发布在互联网开挖出了创世块。看着整个过程开发没超越一年。而且大家还都觉得中本聪是一个人在开发。

但隔离见证呢?从2021年12月在香港扩容大会由Peter Wuille提出的隔离见证策略,到目前已经是2021年十月份了。隔离见证开发快一年了。但还没结束。要知晓Core dev核心开发组的开发力量,无论是人力、物力和财力都远远超越当时中本聪孤军奋战。可他们在中本聪开发的BTC基础上做一个修改,花的工期要超越中本聪开发整个BTC项目了。

可见隔离见证的复杂性有多么恐怖。

此文出于传递更多信息之目的,并不意味着同意其看法或证实其描述。本网站所提供的信息,只供参考之用。

我们的缺点麻烦您能提出,谢谢支持!