Lightning-Network

閃電網路資金交易清算

  • December 11, 2021

我試圖了解閃電網路上一個通道的資金交易。我想知道資金交易的輸入是什麼樣的。它是否需要 In_{Alice}(tx_{id}, tx_{index},redeem_script) 和 In_{Bob}(tx_{id}, tx_{index},redeem_script) 作為交易的輸入,還是您只看到第一個來自多重簽名的承諾交易(如 Ca1、C1b),並確保它們有效,然後將資金非同步送出到多重簽名地址?[0] 只是將輸出格式顯示為多重簽名。

[0] <https://github.com/lightningnetwork/lightning-rfc/blob/master/03-transactions.md>

資金 tx 的輸入只是能夠花費 Bob 或 alice 控制的一些 UTXO 的輸入。理論上我們可以從 Bob 和 Alice 那裡得到輸入,但我相信這還沒有實現。

工作流程如下。例如,alice 決定通過創建資金交易來打開一個通道。資金 tx 的輸出是 2-2 多簽 P2SH,因此在廣播資金 tx 之前,將創建 2 個承諾 tx。一個給愛麗絲,一個給鮑勃(以便能夠在 auf 惡意行為的情況下歸咎於責任) 只有當送出的 tx 被成功簽署時,資金 tx 才會被廣播到比特幣網路,並且只有當它有足夠的確認時,通道才會變得可操作。

資金交易的輸入沒有指定,因為沒有必要這樣做。這是因為只有一方可以資助通道(向另一個 LN 節點發送“open_channel”消息的一方)。

例如:

讓我們假設 Alice 想和 Bob 創建一個頻道。在這種情況下,Alice 是該頻道的唯一資助者。因此,她創建了一個資金交易,其中包含一個或多個輸入(引用她的 UTXO),總和為 1 BTC。她還創建了第一個承諾交易,該交易退還了她的 1 BTC(她可以廣播此交易以防 Bob 不再合作)。這意味著,第二個承諾交易實際上是 Alice 可以用來支付給 Bob 的第一筆交易。請注意,Bob 無法通過第二次承諾交易向 Alice 支付任何費用,因為只有 Alice 資助了該通道並且尚未向 Bob 支付任何費用。現在如果 Bob 想要支付 1.5 BTC 給 Alice 怎麼辦?好吧,他可以簡單地(嘗試)通過向 Alice 發送“open_channel”消息來打開另一個頻道。如果 Alice 接受請求,

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