Segregated-Witness

你能分解一下哪些數據被編碼成 bech32 地址嗎?

  • June 24, 2021

你能分解一下哪些數據被編碼成 bech32 地址嗎?

例如 bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4

testnet、regtest、 signet上的 bech32 地址如何比較?

Bech32 地址在BIP 173中定義。

這張幻燈片摘自 Pieter Wuille在 2017 年 3 月在 SF Bitcoin Devs 上關於 bech32的演講。

bech32結構滑梯

不同的前綴

比特幣 wiki 上的地址前綴列表在這裡

  • bc代表比特幣(主網)
  • 測試網 bech32 地址開始tb
  • Signet(預設 Signet 和自定義 Signet)bech32 地址也開始tb(儘管使用了 Signet的早期迭代sb)。
  • Regtest bech32 地址以bcrt. 這在此處的 chainparams.cpp 中定義。關於為什麼 regtest 地址沒有與 testnet 和 signet 相同的前綴的討論在這裡

剩餘數據

  • 1只是一個分隔符,不代表任何特定數據
  • q是見證版本。這表示零,因為引入的第一個 SegWit 見證版本是 SegWit v0。Taproot 引入了 SegWit v1,p代表一個 (v1)。
  • w508d6qejxtdg4y5r3zarvary0c5xw7k是見證程序的雜湊。
  • v8f3t4是校驗和

如幻燈片所述,在 SegWit v0 下,主網 P2WPKH 地址為 42 個字元,主網 P2WSH 地址為 62 個字元。儘管 SegWit v1 地址(Taproot)與 v0 P2WSH 地址(62 個字元)的長度相同,但未來的見證版本最多可包含 74 個字元。SegWit v1 中定義的見證程序為 32 字節。

這裡有一個 bech32 展示解碼器站點。

請注意,SegWit v1(Taproot)地址將使用bech32m編碼而不是 bech32。

引用自:https://bitcoin.stackexchange.com/questions/100508