Lightning-Network

單個 LN 通道中的多個未完成付款如何工作?

  • May 25, 2019

我想我了解 HTLC,至少如果它們在鏈上的話。我也對鏈下通道的外觀有一個基本的了解。

我理解如下。它是一個 2-of-2 的多重簽名交易輸出,它在鏈上並得到充分確認。在此交易上鍊之前,各方創建了另一筆尚未發布的交易。如果任何一方不合作為初始多重簽名提供簽名,則第二次交易是必要的。

第二筆交易根據通道的目前狀態向各方支付商定的最終餘額。該交易已準備好上鍊,已完全簽署,各方剛剛決定不發布它,因為他們可能想用不同的最終交易替換第二筆交易。

現在的問題是——當使用 HTLC 通過這個渠道進行支付時,它的輸入是什麼?是原始多重簽名的輸出嗎?如果是這樣,您將如何同時進行 2 個或更多 HTLC(即您在渠道上有足夠的流動性進行多次付款,但當有人想再次通過您付款時,完成目前付款需要時間)?

其他 HTLC 的輸入是什麼?究竟什麼時候完成交易花費在參與者數據庫中更新的初始多重簽名?

如果單次 HTLC 支付失敗,您是否需要關閉通道並將交易上鍊?

htlcs 只是承諾 tx 中的額外輸出,用於花費資金交易(如您所述)

所以假設 Alice 和 Bob 有一個容量為 0.1 BTC 的通道,其中 alice 擁有 0.03 BTC。

在鏈上,你有一個包含 0.1 BTC 的多重簽名錢包,而在鏈下,你有一個帶有兩個輸出的承諾 tx。

0.03 to alice
0.07 to Bob

假設 Bob 想向 Alice 支付 0.015 BTC 或想通過 Alice 轉發一個相同數量的 htlc,協商一個新的承諾 tx(舊承諾無效),它有 3 個輸出

0.03 to alice
0.055 to bob
0.015 htlc clsimable by Alice if she can show a preimage within a Timelock and afterwards by bob

現在,如果路由成功,活著提供原像並協商一個新狀態,其中 htlc 輸出被刪除但添加到切片平衡,導致

0.045 to alice
0.055 to bob

否則 htlc 將被刪除,但數量會添加到 bobs 輸出中。

為簡單起見,我省略了鏈上費用

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