Address

如何將字元串編碼為比特幣地址?(不是一個大腦錢包,一個地址,就像一個虛榮地址)

  • March 16, 2019

我想知道是否可以將比特幣銷毀地址綁定到字元串。這個問題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應該是版本號,可以是0 0aaaaaaaaaaaaaaaaaaaa。。雜湊附加到字元串的末尾,而不是開頭。

  1. 選擇版本號:0
  2. 附加一個 20 字節的字元串 ( 0aaaabbbbccccddddeeee)
  3. 將 21 字節字元串轉換為十六進制:306161616162626262636363636464646465656565
  4. 使用與十六進制兼容的 SHA256(如上面的連結),將十六進製字元串從 3 散列兩次,然後取前 4 個字節。27ac3662(十六進制,2 個字母 = 1 個字節)
  5. 將這 4 個字節附加到 21 字節十六進製字元串的 END 中: 30616161616262626263636363646464646565656527ac3662
  6. 使用編碼器將十六進制轉換為 base58 LU6rTvpr7C1AEpQLGwJP5xq7FBthTXAAqw:.
  7. 檢查上面的比特幣驗證器連結。應該工作。

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