比特幣閃電私鑰是什麼樣的?
我知道比特幣私鑰以 5 開頭……但是閃電比特幣私鑰是什麼樣的?假設我想把它列印成紙錢包。
橢圓曲線私鑰只是介於
1
和n
(的順序)之間的標量整數值G
。這些可以通過任何方式編碼,但通常它們僅表示為 256 位整數,具有平台使用的任何字節序。如果解釋為字節數組,則它只是一個 32 字節序列。比特幣的 WIF(錢包導入格式)採用 32 字節序列,前置一個版本字節,然後採用雙 SHA256 生成校驗和。校驗和的前 4 個字節被附加到版本和私鑰字節中,形成一個總共 37 個字節的序列。然後對其進行 Base58Check 編碼,以生成您熟悉的私鑰的文本表示。它們都以 5 開頭的原因是版本字節。
在任何閃電規範中都沒有關於私鑰的儲存或導入/導出格式的規範,由實施者決定如何儲存它們,或者如何導出它們,如果有的話。如果需要,您可以使用相同的 WIF 格式,因為閃電網路使用與比特幣相同的曲線進行簽名和密鑰交換。
私鑰在 Lightning 中有兩種不同的用途。閃電節點本身有一個固定的私鑰,用於辨識節點(通過其各自的公鑰),並簽署消息以證明它們確實來自該節點。它還用於在連接到對等點時執行經過身份驗證的密鑰交換,以防止中間人攻擊。
Lightning 中使用的其他私鑰是比特幣錢包的條目,用於簽署有關通道狀態的交易,這是標準的比特幣交易輸出。
但是,僅知道特定通道的私鑰不足以從該通道消費,因為它們是 2-of-2 的多重簽名輸出,並且雙方都需要簽署交易才能使用它。因此,除了您自己的通道私鑰之外,您還需要了解支出交易和另一方對該交易的簽名。
僅單獨導出這些私鑰顯然沒有多大用處 - 您需要一個更詳細的格式,其中包含所有必要的部分,以至少重建通道的目前狀態。在實踐中,你也應該記錄所有之前的頻道狀態,這樣如果對方試圖廣播一個過期的頻道狀態,你就可以建構一個公正的交易,除非你把這個角色委託給瞭望塔,誰應該有記錄。