閃電網路通道中的各方是否需要線上?
我正在考慮使用 LN 客戶端的移動設備上的使用者很少線上的場景。
假設 Alice 與 Bob 打開一個通道,他們進行 10 次 LN 交易。Alice 收到第 10 個後,她離線的時間超過了頻道的生命週期。
因此,如果頻道設置為持續 3 天,她將離線 5 天。
我的問題是,當 Alice 重新上線時,她如何知道 Bob 是否在第 10 次而不是更早的交易(這有利於 Bob)上送出了區塊鏈。
我知道如果愛麗絲線上,她可以自己檢查這種行為,並隨時送出第 10 次以獲取她的錢。但這裡的關鍵是,她的離線時間比頻道的生命週期還要長。
LN 中有解決方案嗎?因為坦率地說,大多數使用者不會有一個 24/7 線上的節點。而且,我不想相信第三方在正確的時間送出第 10 筆交易——如果他們不這樣做怎麼辦?誰說他們也會誠實行事,而不是從渠道送出更早的交易?
閃電網路由兩個節點之間的雙向支付通道組成。這意味著這些節點中的任何一個都應該能夠隨時初始化交易。這些交易要求雙方積極參與更新智能合約以保持通道活躍。如果一方沒有回應,他們實質上就違反了智能合約,並喪失了他們對通道中任何資金的要求。
不響應的客戶是任何打開渠道的人的責任。這意味著他們的比特幣可能會被捆綁在通道中,直到超時。比特幣通常被放在那裡要麼進行付款(現在已延遲),要麼作為其他人交易的中心賺取網路費用。無響應的節點意味著通道被浪費了。它類似於拒絕服務攻擊,只是它佔用的是比特幣而不是頻寬。
為了說明這是如何工作的,假設 Alice 和 Bob 各自向一個共享通道貢獻了 1BTC。整個通道現在總共有 2BTC,但每個方向都有一個上限。因為愛麗絲只投入了 1BTC,所以從愛麗絲流向鮑勃的最多是 1BTC。這對於從 Bob 到 Alice 的總交易是一樣的。
假設在通道的生命週期內,更多的錢從 Alice 流向了 Bob,所以如果現在關閉,Alice 將獲得 0.5BTC,Bob 將獲得 1.5BTC(為簡單起見不包括費用)。現在讓我們假設 Bob 突然下線,使頻道無用。
由於智能合約的運作方式,Alice 將擁有之前由 Bob 簽署的有效比特幣交易,並且可以關閉通道,讓 Alice 得到超過0.5BTC 的欠款。愛麗絲可以將這筆交易廣播到比特幣網路,並在超時後得到鮑勃的合法資金。唯一能阻止這種情況的是,Bob 將看到交易在網路上傳播,並且可以送出他擁有的最終交易(已經由 Alice 簽名)以在Alice 的交易有效*之前獲得全額付款。*如果 Bob 不注意,那麼 Alice 就可以偷走屬於他的東西。
懲罰無響應節點是閃電網路的一項功能,旨在保持其正常執行。讓頻道無人看管,Bob 對 Alice 造成了傷害。使這種行為在財務上造成災難性是使該系統首先執行的原因。