SegWit(Segregated Witness 的缩写)即“隔离见证”,是改变数据存储方式的一种协议升级。它于 2017 年 5 月 10 日在莱特币网络上激活,并于 2017 年 8 月 23 日在比特币网络上激活。
开发者彼得·沃尔(Pieter Wiulle)于 2015 年 12 月举办的扩充比特币会议(Scaling Bitcoin conference)中首次提出了该想法。
很多人为这个期待已久的比特币扩充方案(bitcoin』s scaling problem)而欢呼。由于主协议上最大区块大小为 1 MB,限制了比特币每秒能处理的交易笔数为 7。这会限制比特币的增长潜力,并阻碍其成为一个有用的高体量的支付系统。
尽管 SegWit 升级使得比特币区块能够处理更多的交易笔数。但它初始的意图在于修复比特币代码中一个被称为“交易可塑性”(transaction malleability)的漏洞。该漏洞使得任何人都能修改交易 ID(以及哈希值),但不包含交易中的内容。尽管这于比特币而言,并非一个重要的问题,但它阻碍了比特币发展更复杂的功能,比如第二层协议(second-layer protocols)以及智能合约(smart contracts)。
隔离见证通过去除签名信息(或者也被称为“见证人”信息)并将其存储在基本交易块(base transaction block)之外,来修复了交易扩展性的问题。凭借该措施,可以在不影响交易 ID 的情况下更改签名和脚本(scripts)。
减肥
一个更重要的附带好处是,如果没有签名信息,交易的重量(transactions weigh)就会小得多。这意味着更多信息可以适用于比特币区块,而且比特币可以在不改变区块大小的情况下处理更大的吞吐量。
隔离见证引入了一个新的观念,称为“区块重量”(block weight)。这是有签名数据和没有签名数据的区块尺寸(block size)的混搭,其容量被设定在 4 MB,而基本交易区块的大小则保持 1 MB。这意味着隔离见证的升级能与先前的协议兼容,免去了硬分叉的需要。
所以,隔离见证并不增加区块容量的上限,但它的确使得上限 1 MB 的区块内可以处理更多数量的交易。4 MB 的容量包括隔离见证的数据,这严格来说并不是 1 MB 的基础交易区块的一部分。
更上一层楼
隔离见证促成的另一大进步是它支持第二层协议的发展,例如闪电网络(lightning network)。对扩展性问题的修复使得任何依赖未确认交易的功能,风险更低且更容易设计。
闪电网络将通过在链下(off-chain)进行频繁、小额交易,只在用户准备就绪时才在比特币区块链上发生交易,进一步提升比特币的交易容量。
隔离见证的激活也促进了其他功能的开发工作,比如默克尔抽象语法树(Merklized Abstract Syntax Trees, MAST)(它使得比特币能实现更复杂的智能合约)、 Schnorr 签名(另一个能提升交易容量的功能),以及 TumbleBit [一个匿名的顶层(top-layer)网络]。
并非所有人都乐见于此
并非所有比特币社区的人都赞同隔离见证是比特币上期待已久的扩充方案。有些人认为它只是“把路上罐头踢开”,充其量只是个暂时性的解决方案。
对隔离见证的抵制是比特币现金(BCH)发展的背后成因之一。比特币现金是比特币网络的一个分支,它是一种选择实现更大的区块大小上限,而非依赖于新的交易结构的比特币网络的分支。
我们在何处?
尽管隔离见证的升级有显而易见的好处,但其进度十分缓慢。在本文写作时,只有 14% 的交易使用新的格式。
主要原因是许多钱包尚未支持隔离见证。有些业内大厂如 Trezor 、 Ledger 、 Electrum 以及 Kraken 已经支持了隔离见证。Coinbase——以交易笔数计最大的钱包供应商——正致力于此,并预计能在 2018 年执行该升级。而最受欢迎的比特币全节点钱包 Bitcoin Core,预计将于 2018 年第一季度完成隔离见证的升级。
随着比特币主代码也进行友善隔离见证(SegWit - friendly)功能的调整,这可能会导致比特币的使用与额外功能试验的增加。Bitcoin Core 在其网站上保留了一份列表,列出了从事 SegWit 集成的企业和项目——在本文写作时,已经部署了 19 个实施,还有 90 个已经准备就绪。
随着更多钱包接受升级,使用隔离见证结构的交易百分比将增加,并且比特币费用应该随区块包含更多的交易数而下降。此外,闪电网络和类似的第二层协议的发展应该得到更多的推动,以扩大比特币的使用范围并提升其潜力。尽管这不太可能在一夜之间发生——但这种变化是重要的,并且向前迈出了一大步。(Nolan Bauerle)