1. 比特币位址編碼格式
比特币位址采用base58 check格式編碼
Base 58 check編碼方法如下圖所示:
2. 比特币位址計算詳細過程
比特币位址計算過程如下圖所示:
以普通公鑰位址計算過程為例:
1. 如未壓縮公鑰為:
04 5c0de3b9c8ab18dd04e3511243ec2952002dbfadc864b9628910169d9b9b00ec243bcefdd4347074d44bd7356d6a53c495737dd96295e2a9374bf5f02ebfc176
2. 經過sha256和 ripemd160 hash計算後結果為
09c6e71118d8f12bec6b5c61884b35677c0a0ae3
3. base58check編碼
3.1 添加字首0x00結果為0009c6e71118d8f12bec6b5c61884b35677c0a0ae3
3.2 計算double sha256 結果為2a021f87fa371ae2a63dd44112bf3175039e9a96613734309ca87fda7862a301
取前四位元組
3.3 字首+DATA+checksum為:
0009c6e71118d8f12bec6b5c61884b35677c0a0ae32a021f
3.4 base58 編碼結果為
Bitcoin Address (b58check) is:
1thMirt546nngXqyPEz532S8fLwbozud8
同樣可以用壓縮公鑰
025c0de3b9c8ab18dd04e3511243ec2952002dbfadc864b9628910169d9b9b00ec
生成一個壓縮公鑰對應的位址
Compressed Bitcoin Address (b58check) is:
14cxpo3MBCYYWCgF74SWTdcmxipnGUsPw3
是以一個私鑰可以生成2個比特币的位址,公鑰和壓縮公鑰都可以生成對應的比特币位址
參考文獻:《精通比特币(第二版)》