Bitcoin-Core
從閃電網路 (LND) 日誌轉換 NodeID 和 BitcoinKey
從 LND 日誌中,我有這樣的事情(我更改了一些字元以保護隱私):
NodeID1: ([33]uint8) (len=33 cap=33) { 00000000 02 19 8b 61 42 18 89 24 74 fc 95 ed 64 c4 77 91 |.9.a@(.$t...d...| 00000010 e9 94 97 50 42 d0 bd 7e 95 91 b0 ec 41 28 ab ac |...PB..~....A(..| 00000020 e4 |.| } BitcoinKey1: ([33]uint8) (len=33 cap=33) { 00000000 02 63 a4 ca a4 63 8c 3c 43 fc 65 8a e5 7c b5 f8 |.c...c.<C.e..|..| 00000010 a7 8f f5 a4 d8 2e ad 0a 83 3a 17 e1 e8 1e c8 c8 |.........J......| 00000020 91 |.| }
獲取節點公鑰和比特幣地址的步驟是什麼?
我擔心已經回答了類似的問題,但我仍然無法回答我的問題。
您粘貼的值是節點公鑰和資金交易輸出公鑰。密鑰以壓縮形式編碼(0x02 | 0x03 後跟曲線上一個點的 32 字節 x 座標)。第一個字節指示 y 座標是正 (0x02) 還是負 (x03)。33 字節的公鑰是整個 BOLT 規範中使用的格式。BOLT 中的所有值都以網路字節序編碼。
其中任何一個都沒有“比特幣地址”,也不能直接轉換為地址。在比特幣中,資金交易使用 P2WSH 輸出,但該交易的贖回腳本直到交易完成(通道關閉)才會顯示。重建贖回腳本的唯一方法是,如果您知道該頻道的兩個資金公鑰。在這種情況下,兌換腳本很簡單
02 <pubkey1> <pubkey2> 02 OP_CHECKMULTISIG
,<pubkey1>
兩個公鑰中較小的一個在哪裡。閃電通道映射到比特幣交易的方式是通過它們的
short_channel_id
,它是 的三元組<block_height>x<tx_index>x<output_index>
,編碼為 64 位整數。(block_height 和 tx_index 各為 24 位, output_index 為 16 位)。full
channel_id
也可用於將通道映射到比特幣交易,就像channel_id
xortxid
一樣output_index
。