Bitcoin-Core

從閃電網路 (LND) 日誌轉換 NodeID 和 BitcoinKey

  • April 10, 2020

從 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 位)。

fullchannel_id也可用於將通道映射到比特幣交易,就像channel_idxortxid一樣output_index

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