Coinbase-Transaction

如何將 bc1 地址轉換為十六進制?用於幣基交易

  • February 23, 2021

我正在嘗試創建一個 coinbase 交易,以便我可以進行一些探勘。

我有一個 bech32 比特幣地址,如何將其轉換為十六進制,以便將其包含在 coinbase 交易數據中?

範例>bc1quukrk3u6cgpjhyqvehcj0ruyk8990dpev0zn6h

另外,地址的各個部分在哪裡?網路類型,校驗和。

我將如何處理其他地址類型?

提前致謝!

BIP173指定了從 Bech32 segwit 地址到 scriptPubKey 的轉換。您可能想使用一些參考軟體進行解碼(BIP 中有幾個連結)。如果您需要詳細資訊,大約是:

  • 將地址拆分為“人類可讀部分”和“數據部分”;地址中的最後一個“1”字元將兩者分開。

  • 使用 BIP 中的字元映射將數據部分從字元轉換為符號(0-31 範圍內的整數)。

  • 驗證校驗和(數據部分的最後 6 個字元)。我將參考 BIP 了解詳細資訊。

  • 數據部分的符號解釋如下:

    • 一個符號:見證版本(數字 0-16)
    • 可變數量的符號:見證程序
    • 最後 6 個符號:校驗和
  • 對數據大小和範圍執行各種健全性檢查,也在 BIP 中說明。

檢索到的資訊(見證版本和程序)可以轉換為 scriptPubKey,如 BIP141 中所指定。即OP_n(其中n是見證版本),然後是見證程序的推送。請注意,OP_0 是 0x00,而 OP_1-OP_16 是 0x51..0x60。

有一個名為BIP350的擬議修正案,它改進了高於 0 的見證版本的校驗和(目前未使用,但可能在啟動 Taproot (BIP340-342) 後開始使用。

這就是從地址到 scriptPubKeys 的轉換適用於所有交易輸出 FWIW 的方式。它與coinbases完全無關。

免責聲明:我是此答案中提到的所有 BIP 的合著者。

我假設您想以十六進製表示的 ASCII 數據(如 OP_RETURN 中的編碼文本)的形式將其發佈到 coinbase 交易中,以獲取某種信號/“吹牛的權利”。

您沒有提到您想使用的任何特定程式語言,所以我建議使用線上 ASCII 到 HEX 轉換器?喜歡這個?大多數程式語言也非常容易使用 ASCII 到 HEX 轉換器。

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