Address
如何將字元串編碼為比特幣地址?(不是一個大腦錢包,一個地址,就像一個虛榮地址)
我想知道是否可以將比特幣銷毀地址綁定到字元串。這個問題
OP_RETURN
與嵌入區塊鏈的方式或其他方式無關。這是我經歷的過程:
- 創建一個 21 字節的字元串 (aaaaaaaaaaaaaaaaaaaaa)
- 在此處將此字元串轉換為十六進制:http: //string-functions.com/string-hex.aspx。我得到:616161616161616161616161616161616161616161
- 在這裡取它的 SHA256 兩次:http ://extranet.cryptomathic.com/hashcalc/index 獲取前四個字節:7df8e299
- 現在我有一個十六進製字元串:7df8e299616161616161616161616161616161616161616161。我使用十六進制將其轉換為 base58 編碼器:https ://incoherency.co.uk/base58/
- 最後我得到了這個字元串:sgwP7Xqw3GWATXNF9TW3RyDG16vbzTgRHA。我將其插入比特幣地址檢查器:http: //lenschulwitz.com/base58。
- 我得到的錯誤是
Invalid Bitcoin address! Bad SHA-256 checksum!
我哪裡做錯了?
我有幾個錯誤。的第一個字節
aaaaaaaaaaaaaaaaaaaaa
應該是版本號,可以是00aaaaaaaaaaaaaaaaaaaa
。。雜湊附加到字元串的末尾,而不是開頭。
- 選擇版本號:
0
- 附加一個 20 字節的字元串 (
0aaaabbbbccccddddeeee
)- 將 21 字節字元串轉換為十六進制:
306161616162626262636363636464646465656565
- 使用與十六進制兼容的 SHA256(如上面的連結),將十六進製字元串從 3 散列兩次,然後取前 4 個字節。
27ac3662
(十六進制,2 個字母 = 1 個字節)- 將這 4 個字節附加到 21 字節十六進製字元串的 END 中:
30616161616262626263636363646464646565656527ac3662
- 使用編碼器將十六進制轉換為 base58
LU6rTvpr7C1AEpQLGwJP5xq7FBthTXAAqw
:.- 檢查上面的比特幣驗證器連結。應該工作。