天天看点

比特币隔离见证地址详细计算过程1.隔离见证介绍2.隔离见证地址格式3. 计算示例

1.隔离见证介绍

隔离见证就是把脚本签名(scriptSig)信息从基本结构(base block) 里拿出来,放在一个新的数据结构当中。做验证工作的节点和矿工也会验证这个新的数据结构里的脚本签名,以确保交易是有效的。

当审核统计区块的容量不能超过1M的时候,透过隔离见证,独立出脚本签名,脚本签的大小便不会被计算在内。

以下图示以火车车厢运送货物,来清楚的表达隔离见证:

图中上半部分是未采用Segwit的一个区块,以火车的一节车厢作为比喻,而每一笔交易则是以黄色与蓝色的货物做为代表,分别是脚本签名(认证资料),以及交易的基本结构(包含交易地址和金额)

比特币隔离见证地址详细计算过程1.隔离见证介绍2.隔离见证地址格式3. 计算示例

参考https://baijiahao.baidu.com/s?id=1594112703194734226&wfr=spider&for=pc

2.隔离见证地址格式

隔离见证地址采用Bech32格式编码

https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki#Bech32

bech32格式

易于阅读部分:主链 “bc”, 测试链“tb”

数据部分:   

  • 1字节:见证版本
  • 2-40字节:BIP141定义的见证程序

当前状态见证版本为0, 20字节表示P2WPKH地址,32字节表示P2WSH地址

3. 计算示例

以P2WPKH地址为例

公钥为0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798

(1)计算HASH160(sha256+ripemd160)值

751e76e8199196d454941c45d1b3a323f1433bd6

(2)bech32编码

易读前缀“bc” + 版本 0 + HASH160值 bech32格式编码结果为

bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4