Address

Loyce.com 地址列表中的這些長地址是什麼?

  • November 15, 2021

我正在嘗試了解比特幣地址編碼。我知道有三種(四種?)不同的地址編碼 P2PKH、P2SH、Bech32 和 Bech32m(Bech32m 只是在 XORing 時使用不同的常數)。它們都使用 Ripe160 (RIPEMD160?) 對公鑰進行編碼。我能夠使用一些庫來提取成熟的 160 編碼地址,該地址應該是 20 個字節,但是在這個帶有貨幣的地址列表中有一些更長的字元串:

來自loyce.com的比特幣地址

34xp4vRoCGJym3xR7yCVPFHoCNxv4Twseo
**bc1qgdjqv0av3q56jvd82tkdjpy7gdp9ut8tlqmgrpmv24sq90ecnvqqjwvw97**
1P5ZEDWTKTFGxQjZphgWPQUpe554WKDfHQ
37XuVSEpWW4trkfmvWzegTHQt7BdktSKUs
38UmuUqPCrFmQo4khkomQwZ4VbY2nZMJ67
3Kzh9qAqVWQhEsfQz7zEQL1EuSx5tyNLNS
1FeexV6bAHb8ybZjqQMjJrcCrHGW9sb6uF
3LYJfcfHPXYJreMsASk2jkn69LWEYKzexb
bc1qa5wkgaew2dkv56kfvj49j0av5nml45x9ek9hz6
1LdRcdxfbSnmCYYNdeYpUnztiYzVfBEQeC
1AC4fMwgY8j9onSbXEWeH6Zan8QGMSdmtA
1LruNZjwamWJXThX2Y8C2d47QqhAkkc5os
1NDyJtNTjmwk5xPNhjgAMu4HDHigtobu1s
3Gpex6g5FPmYWm26myFq7dW12ntd8zMcCY
bc1q5shngj24323nsrmxv99st02na6srekfctt30ch
385cR5DM96n1HvBDMzLHPYcw89fZAXULJP
3LQUu4v9z6KNch71j7kbj8GPeAGUo1FW6a
**bc1q5pucatprjrqltdp58f92mhqkfuvwpa43vhsjwpxlryude0plzyhqjkqazp**
...

它們以bc1表示 Bech32 開頭,對嗎?當使用像bech32-buffer這樣的東西解碼時,我得到 32 個字節。

在進行更多探勘時,還有這個scriptPubKey編碼。這就是這些長編碼嗎?你如何區分它們?我假設由於該站點列出了帶有貨幣的地址,我應該能夠從腳本中提取成熟的 160 地址,是否有任何推薦的解析器?

我發現另一篇文章建議進行模式匹配,並從 Bitcoin Core 中提取解析程式碼。我在這裡走向正確的道路嗎?

它們是編碼 P2WSH scriptPubKey 的 bech32 地址。映射到這些地址的腳本包含腳本的 SHA256,在使用輸出時將顯示該腳本。

它們都使用 Ripe160(RIPEMD160?)對公鑰進行編碼

不。地址不僅對公鑰進行編碼,也不一定對特定的雜湊進行編碼。它取決於地址類型,因為它取決於將要創建的腳本。

以 1 開頭的地址對公鑰的 SHA256 的 RIPEMD160 進行編碼,並創建 P2PKH 輸出腳本。

以 3 開頭的地址對腳本的 SHA256 的 RIPEMD160 進行編碼,並創建 P2SH 輸出腳本。

長度為 42 個字元的 bc1q 地址對公鑰的 SHA256 的 RIPEMD160 進行編碼,並創建 P2WPKH 輸出腳本。

長度為 62 個字元的 bc1q 地址對腳本的 SHA256 進行編碼並創建 P2WSH 輸出腳本。

長度為 62 個字元的 bc1p 地址對僅 X 的公鑰進行編碼並創建 P2TR(Taproot)輸出腳本。

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