比特币的SegWit

1. 引言

SegWit为比特币上的一个软分叉,改变了比特币的交易格式。
SegWit,全称为Segregated Witness,隔离见证,由Bitcoin developer Pieter Wuille提出,通过隔离交易数据中的数字签名数据,旨在:

  • 解决交易延展性问题(即接收方可截获并修改发送者的交易ID,以便从发送者那获得更多的coins。一旦将数字签名从inputs中分离出来,则不道德的一方将无法在nullify是数字签名的情况下修改交易ID。):解决了交易延展性问题,为之后的layer2协议,如闪电网络、atomic swaps、MAST(Merkelized Abstract Syntax Trees)等做了铺垫。
  • 绕过某些协议限制(如增加区块容量,由1MB增加到将近4MB):通过send from a SegWit address才可利用所增加的空间。

所谓witness,是指:

  • transaction signatures

所谓Segregate是指separate分离。

一笔交易中的数据主要包含2部分:

  • 一个或多个input:input中有sender的public address。input中还包含签名,签名会占用交易中的大部分空间(约65%)。签名用于验证sender具有足够的资金的来完成支付。一旦每个节点都验证该交易是有效的,则会将该笔交易打包进去看,并添加到区块链中。
  • 一个或多个output:output中有receiver的public address。

SegWit是忽略交易inputs中的签名数据,将其移到交易末端的结构中。
SegWit将witness从inputs中分离了出来。该witness中包含了用于验证交易有效性的数据,但是这些数据并不用于确定交易的效果。此外,定义了一个新的weight参数,使得区块最多支持400万个weight units (WU)。Non-witness和pre-segwit witness bytes 重量为4WU,而每个字节的Segwit witness重量仅为1WU,因此使得在不分叉的情况下,使区块大于1MB。

在成功激活OP_CLTV和OP_CSV之后,SegWit是保障闪电网络安全部署的最后一个协议修改。

由于新的witness中包含了Script versioning,因此未来可为SegWit scripts 修改或引入新的opcodes。

在2016和2017年,由于政治原因,矿工利用BIP 9激活机制中的缺陷阻止了隔离见证的激活。
在技术层面,比特币的共识规则由大多数经济体而不是由矿工控制的,因此可通过创建一个用户激活的软分叉BIP 148,这样大多数经济体可绕过阻碍的矿工,自行激活隔离见证,从而打破僵局。这需要大多数经济体之间进行协调,但最终取得了成功,在2017年8月24日,在区块高度481,824 成功激活了SegWit。

SegWit激活后,由block weight limit替代了之前的block size limit,支持最大的区块大小为约4MB。

参考资料

[1] Bitcoin wiki——Segregated Witness
[2] What is SegWit?
[3] 2017年 Segregated Witness Activates On Bitcoin: This Is What To Expect

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值