天天看點

比特币位址生成過程詳解1. 比特币位址編碼格式2. 比特币位址計算詳細過程

1. 比特币位址編碼格式

比特币位址采用base58 check格式編碼

Base 58 check編碼方法如下圖所示:

比特币位址生成過程詳解1. 比特币位址編碼格式2. 比特币位址計算詳細過程

2. 比特币位址計算詳細過程

比特币位址計算過程如下圖所示:

比特币位址生成過程詳解1. 比特币位址編碼格式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個比特币的位址,公鑰和壓縮公鑰都可以生成對應的比特币位址

參考文獻:《精通比特币(第二版)》