天天看點

比特币隔離見證位址詳細計算過程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