[75]隔离见证概念解析

隔离见证是比特币社区为了提高比特币系统交易性能而提出的折中方案。

#比特币系统交易性能的决定因素
比特币协议(采用隔离见证之前的版本)规定:
(1)1个区块的容量小于1MB(大于1M的区块不被其他节点接受)
(2)1个交易的容量大约是250Byte(待确认)。因此,1个区块最多能装载4194个(近似值)交易
(3)1个区块的平均出快时间是10分钟(近似值)
交易性能的计算方式:
交易性能=区块容量/交易容量/区块生成时间 (1)
7笔/秒=1MB/250B/(10*60)

从公示1可知,交易性能与区块容量成正比,与交易容量、区块生成时间成反比。
因此,提升性能的方法有三种:
(1)区块扩容。提升区块容量的上限。
(2)交易压缩。降低单个交易的容量。
(3)加速区块生成。降低区块生成间隔。

方法1评估:
正面:可行性高。
负面效果:区块增大将增加区块数据的传输延迟,提高分叉风险;区块增大将提升比特币账本的容量,增加普通用户维护比特币服务器的成本,导致区块链网络进一步向中心化发展。

方法2评估:
正面:对账本容量影响较小。
负面效果:实施难度大。交易中存储的参数都有各自的用途,很难进行容量压缩。

方法3评估:
正面:可行性高,以太坊将出块时间降低到15秒。
负面效果:将增加网络中出现分叉的可能性。

上述三种方法都能够提升比特币系统的性能,只需要所有用户统一升级程序(采用上述任一种方法),即可实现性能升级。然而,由于比特币社区是一个分布式松散组织,每一个比特币节点(运行比特币程序的服务器)都是独立个体,各自都有决策的权利。
由于上述三种方法各有利弊,比特币社区争论了很久也没有达成统一意见。如果此时一部分选择扩容(升级带有扩容功能的程序),一部分不选择(或者选择其他升级功能),就会导致区块链网咯出现“硬分叉”,产生较大的负面影响。事实上,比特币系统已经由于扩容过程产生过多次硬分叉,导致BCH等分叉代币的产生。

#隔离见证协议的意义

隔离见证协议,是在社区针对比特币系统性能提升方法无法达成统一的背景下,提出的一种“软分叉”解决方案,即,采取不同策略的用户仍然在同一个主链运行,升级用户按照新的方式处理账本数据,未升级用户按照老的方式处理账本数据。从而在不造成“硬分叉”的条件下,实现比特币系统性能提升的目的。

隔离见证协议的具体内容

旧系统:每笔交易包括(交易数据,签名数据)。
新系统:每笔交易包括(交易数据)+签名数据。

新系统中,签名数据和交易数据分开,因此轻节点可以只要“交易数据”,不要签名数据。这样能够减少存储空间,计算资源,以及便于新功能的开发。
隔离方法:见证数据放在交易末尾,用特殊标志位分割。未升级用户遇到标志位就跳过。

https://blog.csdn.net/sxjinmingjie/article/details/77746180
采用隔离见证机制后,比特币数据格式

如图所示,采用隔离见证以后,区块数据已经提升为4M了。升级用户看到的是4M(包括交易和签名);未升级用户看到的是1M(只包括交易,没有签名)。因此,隔离见证方案能够兼容未升级用户。

采取隔离见证机制后,如何生成交易数据

(1)已升级节点在生成交易时按照隔离见证格式生成交易数据;
(2)未升级节点在生成交易时按照原始格式生成交易数据;

采取隔离见证机制后,如何验证交易数据

(1)已升级节点能够正常验证所有交易(采用隔离验证的交易和没有采用隔离验证的交易)。
(2)未升级节点只能验证没有采用隔离验证的交易,对采用隔离验证的交易不能直接验证。

未升级节点无法验证交易的问题解决方案:
(1)大多数节点对不涉及自己的交易并不是很关心这个签名数据,可以不验证;
(2)少数节点需要验证时,可以向其他节点请求验证。