同一實體控制閃電路徑的分離部分
給定閃電路徑
Alice → Bob → Carol → Dave → Emilee
(Alice 是發送者,Emilee 是接收者),假設 Dave 和 Bob 是同一個實體。通過從戴夫那裡提取資金給她自己,艾米莉向戴夫洩露了秘密 R。然後 Bob 也知道 R,因為 Bob 和 Dave 是同一個實體,並且從 Alice 那裡提取資金。
然後 Bob 將他和 Carol 之間的頻道狀態廣播到區塊鏈。戴夫隨後從卡羅爾那裡提取資金。
在這個過程中,卡羅爾沒有得到報酬。這是如何預防的?
原像
R
在整個路線中都是相同的,因此 Bob/Dave 會知道是什麼R
(來自lnd
Overview)。但是,如果 Bob 要為
Bob -> Carol
通道廣播他的承諾交易,它必須要麼是沒有 HTLC 提供的輸出的舊承諾,要麼是具有 HTLC 提供的輸出的目前承諾交易。在舊承諾交易的情況下,Carol 將能夠使用舊承諾交易的撤銷密鑰索取通道中的所有資金。在第二筆交易與提供的 HTLC 輸出的情況下,提供的 HTLC 輸出有一個超時,這會阻止 Bob 在一段時間內花費資金,比如兩天。到時候,卡羅爾就可以用原像贖回那些資金了
R
。為了讓 Bob/Dave 在
Carol -> Dave
頻道中從 Carol 那裡提取資金,他需要R
在 Carol 和 Dave 之間的 HTLC 超時之前給 Carol。此 HTLC 的超時將比 Bob 和 Carol 之間的 HTLC 更短(例如只有 1 天),因此當 Dave 讓 CarolR
提取他的資金時(或者R
如果他這樣做,則在 Dave 的廣播承諾交易中發布),然後 Carol 可以使用該R
從 Bob 提供的 HTLC 輸出中索取她的資金。如果 Dave 決定不從 Carol 那裡提取資金,Carol 會在超時後收回她的 HTLC 輸出,並且不會給 Dave 帶來任何損失。然後她沒有從 Bob 那裡得到任何錢,因此根本沒有損失任何錢。
如果 Dave 拒絕簽署新的承諾交易,Carol
Carol -> Dave
在超時過去後用提供的 HTLC 廣播她的承諾,並使用 HTLC-timeout 交易發布一個花費提供的 HTLC 輸出的交易。如果 Dave 嘗試使用 HTLC 來使用R
, Carol 就會知道R
並可以使用 said 來使用 Bob 提供的 HTLC 輸出R
。在這種情況下,Bob/Dave 實際上會賠錢,因為 Carol 的 HTLC-超時交易可以在 Dave 的 HTLC-Sucess 交易(R
包含鮑勃/戴夫。因此,這樣的計劃將導致卡羅爾有效地被排除在路線之外並且不會損失任何金錢。如果 Bob/Dave 很愚蠢,他們實際上可能會輸給 Carol。