1.概念介绍
隔离见证英文全名为Segregated Witness简写为Segwit。它是区块链扩容的一种方法,已经在莱特币以及比特币上成功实施。
目前区块链上每个区块内,不仅记录了每笔转账交易的具体信息,即在哪个时间点账户收到或转出多少数字货币,还包含了每笔交易的数字签名,用来验证该笔交易的合法性。
矿工在打包区块的时候需要用数字签名验证一一验证每笔交易,确认没有问题后才会将该笔交易记录在区块里。这样的话势必会造成每个区块大小过大,且每笔交易验证时间过长。
而对于普通用户来说他们只关心每个账户有多少资产,并不需要一一验证每笔交易,隔离见证就是把区块内的数字签名信息拿出去,让每个区块可以承载更多比交易,从而达到扩容的目的。
2.隔离见证工作原理
使用到隔离见证的交易输出称为隔离见证输出,但一个交易使用一个UTXO (UTXO是指关联比特币地址的比特币金额的集合,是一个包含数据和可执行代码的数据结构)。
必须提供一个见证,传统的UTXO在交易使用的时候UTXO锁定脚本要求见证数据在该交易输出部分以内联的方式被提供,但在隔离见证UTXO中指定的锁定脚本满足处于输入之外的见证数据。
3.隔离见证的优缺点
隔离见证的优点:
1、提高了交易确认的性能,因为单位时间内区块打包交易数增加了。
2、解决了延展性攻击(Malleability Attack)问题,因为隔离(剥离)了见证数据之后的交易被创建是无法变更的。
3、减少了个人转账手续费(Fee),由于隔离见证后,每笔交易剥离了见证数据,所以单笔交易的容量减少,手续费公式:Fee = 单笔交易容量 x 单位容量手续费定价。
4、使用的软分叉技术,区块间具有更好的兼容性。
5、减少了算法的计算复杂性,签名验证优化,在隔离见证之前,生成签名需要大量的hash操作,隔离见证升级签名函数,那么就减少了算法的计算复杂性。
隔离见证的缺点:
1、提高了对存储空间的要求,传播效率降低,可能会导致全网孤块率和空块率大幅上升。
2、对见证数据交易费用打1/4的折扣,但实际上见证数据更加难验证(验证签名消耗更多CPU时间)。
3、增加了技术负债,以软分叉形式实现的Segwit,带来了全新的交易格式和区块使区块的形式更加复杂,这种负面影响只能通过未来的升级消除,所以就是个负债。