隔离见证就是把脚本签名(scriptSig)信息从基本结构(base block) 里拿出来,放在一个新的数据结构当中。做验证工作的节点和矿工也会验证这个新的数据结构里的脚本签名,以确保交易是有效的。
当审核统计区块的容量不能超过1M的时候,透过隔离见证,独立出脚本签名,脚本签的大小便不会被计算在内。
以下图示以火车车厢运送货物,来清楚的表达隔离见证:
图中上半部分是未采用Segwit的一个区块,以火车的一节车厢作为比喻,而每一笔交易则是以黄色与蓝色的货物做为代表,分别是脚本签名(认证资料),以及交易的基本结构(包含交易地址和金额)
参考https://baijiahao.baidu.com/s?id=1594112703194734226&wfr=spider&for=pc
隔离见证地址采用Bech32格式编码
https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki#Bech32
bech32格式
易于阅读部分:主链 “bc”, 测试链“tb”
数据部分:
当前状态见证版本为0, 20字节表示P2WPKH地址,32字节表示P2WSH地址
以P2WPKH地址为例
公钥为0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798
(1)计算HASH160(sha256+ripemd160)值
751e76e8199196d454941c45d1b3a323f1433bd6
(2)bech32编码
易读前缀“bc” + 版本 0 + HASH160值 bech32格式编码结果为
bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4