Bitcoin-Core
用於 Bech32 地址的版本前綴
我正在為不同類型的比特幣地址編譯版本前綴(十六進制) 和Base-58 結果前綴的表。
我在這裡遇到了內容:<https://en.bitcoin.it/wiki/List_of_address_prefixes>,其中不包含有關Decimal的資訊, Bech32 地址的前綴 Hex(我猜他們也稱為 SegWit 地址,對吧?)
所以,我在這裡查看了這張圖表: https ://en.bitcoin.it/w/images/en/4/48/Address_map.jpg但是,我不明白“ x03x03x00x02x03 ”的含義。
- 如果 x00 等於十六進制的 0x00,x80 等於十六進制的 0x80,我應該如何解釋 x03x03x00x02x03?
- Bech32 地址(bc1 地址)的版本前綴是什麼?
這些字節(x03x03x00x02x03 或更好地顯示為
0x0303000203
)是擴展的人類可讀部分。您可以在BIP-173上找到程式碼。def bech32_hrp_expand(s): return [ord(x) >> 5 for x in s] + [0] + [ord(x) & 31 for x in s]
然而問題在於,與 Base58 編碼不同,這些字節僅用於計算校驗和,而不是作為起始字節。在我看來,這使圖片具有誤導性。
Bech32 編碼與 Base58 編碼非常不同,因為沒有“版本前綴”。有一個 Hrp、一個見證版本、一個數據(雜湊)和一個校驗和。
Witness version | hash
是被編碼的數據並expanded_hrp | data
用於校驗和計算(|
是連接)。