比特币的SegWit

Posted mutourend

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比特币的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 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

以上是关于比特币的SegWit的主要内容,如果未能解决你的问题,请参考以下文章

关于比特币的谜题(完结)

Bitfinex 推出比特币分裂代币BT2;韩国比特币交易所Bithumb上线Zcash;MtGox盗窃案嫌疑人或面临55年刑期

在中国想要投资比特币,该如何开始,怎么申请钱包?

比特币的近期走势

比特币是一种去中心化的加密数字货币

刘教链比特币原理1-2 比特币的特点和使用