隔离见证(SegWit)

来自非小号百科

隔离见证(Segregated Witness,简称 SegWit)是比特币交易格式中一次软分叉更改的名称。

正式名称为“隔离见证(共识层)”,对应的比特币改进提案编号为 BIP141[1]。其声明的目的是防止非故意的比特币交易延展性问题,允许可选的数据传输,并通过软分叉绕过某些协议限制(如区块大小限制)[2]。隔离见证于2017年8月24日正式激活。

此外,隔离见证还旨在缓解区块链大小限制问题,该问题会降低比特币的交易速度。它通过将交易拆分为两个部分来实现这一目标:从原始部分中移除解锁签名(“见证”数据),并将其作为一个单独的结构附加在末尾。原始部分仍然包含发送者和接收者的数据,而新的“见证”结构则包含脚本和签名。原始数据部分会按照正常大小计算,而“见证”部分实际上将按其实际大小的四分之一来计算。

发展历程[编辑 | 编辑源代码]

区块大小限制[编辑 | 编辑源代码]

比特币是一种加密货币,通过密码学技术来确保交易安全。由区块头加上一系列比特币交易组成的集合,经过工作量证明保护并记录在一组计算机网络上,这被称为“区块”。所有区块通过对前一个区块进行加密哈希并将其输出存储在下一个区块中按顺序连接在一起,从而形成区块链[3]

每个区块包含有关比特币发送方和接收方(即交易)的信息,以及批准每笔交易的签名。最初,区块的大小没有限制。然而,这使得恶意行为者可以伪造非常大的“区块”数据作为一种拒绝服务攻击(DoS 攻击)。这些伪造区块会被检测到,但检测过程需要很长时间,从而减缓整个系统的运行速度。因此,引入了 1 MB 的区块大小限制。

扩展性和延展性[编辑 | 编辑源代码]

当前的比特币区块链设计被认为存在两个缺点。

扩展性[编辑 | 编辑源代码]

主条目:比特币可扩展性问题

新的区块以平均十分钟的随机间隔添加到区块链中(这是由工作量证明机制设计所导致的延迟)。再加上区块大小的限制,这限制了在特定时间内可以处理的交易数量。一些网站通过使用“链下支付”来绕过这个问题,这种方式进行交易而不将其记录到区块链中,但这涉及关于信任和交易最终性的各种权衡[4]

另一些人则提出了对比特币的更改建议,这些更改将以向后不兼容的方式改革区块格式。例如,FlexTrans(灵活交易)通过改变交易描述的方式为“标签”系统,从而使交易变得更小,允许每个区块容纳更多的交易。然而,这种方式与未升级的系统不兼容。

延展性[编辑 | 编辑源代码]

主条目:比特币交易延展性问题

一笔交易使用来自之前交易的未使用输出(即未花费交易输出,UTXO)。这形成了一条由交易标识符链接的相关交易链。然而,有人可以在不使比特币交易无效的情况下更改(变异)未确认的交易,从而改变交易的标识符。这会导致子交易失效(即交易之间的链接被破坏)[5]

隔离见证作为解决方案[编辑 | 编辑源代码]

被称为“见证”的签名数据将从 Merkle 树中记录比特币发送方和接收方的数据中分离出来。见证数据被移到交易的末尾,每个字节仅计为“一个单位”的四分之一。

此外,通过将签名与交易数据的其他部分分开序列化,隔离见证还解决了签名延展性问题,从而使交易 ID 不再具有延展性。

激活[编辑 | 编辑源代码]

SegWit 升级的激活窗口从2016年11月15日 UTC 午夜开始,一直到2017年11月15日 UTC 午夜结束。

只有在至少 95% 的矿工在2016 个区块的目标调整周期内表示准备好接受升级时,SegWit 才会被激活。

2017年8月9日,达成了一个里程碑,当时区块 477,792 到 479,807 之间的 100% 矿工表示支持 SegWit,这意味着 SegWit 升级已经“锁定”,并将在大约两周后,目标调整周期开始时完全激活。

隔离见证(SegWit)随后于2017年8月24日在区块高度 481,824 激活。SegWit 激活后的下一周,比特币价格上涨了近 50%。2017年7月21日,比特币交易价格为 2,748 美元,比 7月14日的 1,835 美元上涨了 52%。

SegWit 通过两种方式缓解了扩展性问题:

  1. SegWit 解决了交易延展性问题,从而使得闪电网络得以实现。闪电网络是一个由微支付通道组成的覆盖网络,假设通过支持几乎无限数量的即时、低费用的“链下”交易来解决扩展性问题。
  2. 最初,大多数比特币交易并未能使用此升级。

在 10月的第一周,使用 SegWit 的网络交易比例从 7% 上升到 10%,显示出使用率的增长。

一个主要由中国矿工组成的小团体,对比特币提出的 SegWit 改进计划不满,推动了一个分裂的替代计划,最终创造了比特币现金(Bitcoin Cash)[6]

截至2018年2月,使用 SegWit 的交易已超过 30%。

SegWit2x[编辑 | 编辑源代码]

隔离见证(SegWit,BIP141)不应与 SegWit2x(SegWit2Mb)混淆。2017年5月,数字货币集团(Digital Currency Group,注意与麻省理工学院媒体实验室的数字货币计划(Digital Currency Initiative)不同)宣布提出了一个提案,称为 SegWit2x(“纽约协议”)。该提案提出在比特币总哈希率达到 80% 的阈值时激活隔离见证,并通过比特位 4 信号;并在六个月内激活 2 MB 的区块大小限制,前提是比特币总哈希率支持超过 80%。

截至2017年中,尽管 SegWit2x 提案获得了超过 90% 哈希率的支持,但该提案具有争议,因为该项目的工作仅限于一个仅限邀请的开发者小组。2017年7月中旬,矿工支持在2017年8月1日的用户激活软分叉(UASF)之前实现协议中的 SegWit 部分,从而试图避免比特币网络发生硬分叉的风险。

2017年11月8日,SegWit2x 的开发者宣布,由于缺乏共识,原定于2017年11月16日左右进行的硬分叉计划已被取消[7]

参考链接[编辑 | 编辑源代码]