隔离见证是什麽? 为什麽我们必须尽快实行?

2016-01-07 16:48 来源:巴比特资讯 阅读:4141
作者jl2012,是来自香港的比特币技术爱好者,亦是三份有关隔离见证的比特币改善方案 (BIP) 的草拟者。

segregated-witness

作者jl2012,是来自香港的比特币技术爱好者,亦是三份有关隔离见证的比特币改善方案 (BIP) 的草拟者。

每一个比特币交易,其实可以分为两部份。第一部份是说明结馀的进出,第二部份是用来证明这个交易的合法性 (主要是签署)。第一部份可称为「交易状态」,第二部份就是所谓的「见证」(witness)。如果你只关心每个账户的结馀,其实交易状态资料就已经足够。只有部份人(主要是矿工)才有必要取得交易见证。

中本聪设计比特币系统时,并没有把两部份资料分开处理,导致交易ID的计算混合了交易状态和见证。因为见证本身包括签署,而签署不可能对其自身进行签署,因此见证是可以由任何人在没有交易双方同意下可以改变的,造成所谓交易可变性 (malleability)。在交易发出後,确认前的交易ID可以被任意更改,因此基於未确认交易的交易是绝对不安全的。在2014年就曾有人利用这漏洞大规模攻击比特币网络,然而这问题一直至今没有解决。

比特币核心开发员Pieter Wuille 在2015年12月於香港提出的隔离见证 (Segregated Witness,以下简称SW) 软分叉非常巧妙地彻底解决了这个问题。SW用户在交易时,会把比特币传送到有别於传统的地址。当要使用这些比特币的时候,其签署 (即见证)并不会记录为交易ID的一部份,而是另外处理。也就是说,交易ID完全是由交易状态 (即结馀的进出) 决定,不受见证部份影响。这做法有几个重要的结果:

1. 可以用软分叉增加最大区块容量:

因为旧有节点根本看不到这些被隔离的见证,即使真实的区块已超过1MB,它们仍会以为没有超过限制而会接受区块。在整场有关区块容量的辩论中,最大的难点就是硬分叉。SW可以提供约2MB的有效区块空间而没有任何硬分叉风险。

2.

从此以後,只有发出交易的人才可以改变交易ID,没有任何第三方可以做到。如果是多重签名交易,就只有多名签署人同意才能改变交易ID。这可以保证一连串的未确认交易的有效性,是双向支付通道或闪电网络所必须的功能。有了双向支付通道或闪电网络,二人或多人之间就可以实际上进行无限次交易,而无需把大量零碎交易放在区块链,大为减低区块空间压力。

3. 轻量钱包可以变得更轻量,因为它们无需再接收见证数据。

4.
可以大幅改善签署结构。在区块链上,曾经有一个超过5000个输入的交易,因为签署设计缺憾,需要半分钟才能完成检查。在建议中的SW软分叉会把这个问题解决掉。

而在该次软分叉完成後,核心开发者们已有计划进一步完善整个系统的可用性和安全性:

1.
全节点可以为轻量钱包提供很简洁的证明,以检查交易是否合法。以後的节点就不再局限於完全验证和完全不验证,而是可以按个人的资源作部份验证,也就是说一台手机也可以参与保障系统安全。这可以大为降低系统对全节点的依赖,即使以後区块容量提升了,我们仍能保持安全。

2. 将会推出全新的交易脚本语言,例如可以把数以千计的不同脚本通过MAST技术压缩至只有32字节;亦可以把不同签署合并检查,令检查交易的速度再以倍数上升。

事後孔明地说,其实比特币一开始就应该是要隔离见证。以上的计划,是核心开发者们在过去数年对系统的了解日增而得到的成果。SW的测试网已在2015年12月开始运作,本人也有参与第一手测试,对2016年4月推出的目标感到乐观。实行SW将是比特币技术的一大飞跃,希望中国币圈的各位能多加关注和支持。

在另一篇文章,本人会再解释硬分叉和软分叉的利弊。

参考:

四份有关隔离见证的比特币改善方案:
1. 隔离见证软分叉

https://github.com/CodeShark/bips/blob/segwit/bip-codeshark-jl2012-segwit.mediawiki

2. 隔离见证通信层

https://github.com/CodeShark/bips/blob/segwit_peer_services/bip-codeshark-segwit-peer-services.mediawiki

3. 隔离见证交易地址

https://github.com/jl2012/bips/blob/segwit-address/bip-segwitaddress.mediawiki

4. 隔离见证签署检查

https://github.com/jl2012/bips/blob/segwit-checksig/bip-segwit-checksig.mediawiki

系统扩展常见问题解答:

https://bitcoin.org/zh_CN/bitcoin-core/capacity-increases-faq

需要30秒检查的交易:

https://blockchain.info/tx/bb41a757f405890fb0f5856228e23b715702d714d59bf2b1feb70d8b2b4e3e08


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

点击阅读全文