如何禁止中間節點將資金存放在閃電網路中的路由支付中?
據我了解,Lightning 是通過利用六度分離理論來促進支付路由,從而與只有少數支付渠道的使用者一起擴展。我了解如何使用洋蔥路由來混淆付款的來源和目標。
我讀過聲稱中間的節點也不可能接收但不轉發付款。這似乎是通過一次執行所有付款躍點來實現的,或者根本不執行。
如何保證整個支付鏈一次性執行支付?
閃電網路使用一種稱為“散列時間鎖合約”(HTLC)的結構轉發付款,如果收款人知道給定雜湊的原像,則允許收款人贖回交易,或者允許付款人在給定超時後贖回交易。
因此,例如,如果我通過閃電以 2 美元的價格賣給你一些東西,我可能會說“我會告訴你當你付給我 2 美元時的 sha256 原像
1bc9852364a8aa073daedb3965716ab63d84570c645b091f535a3677010d9984
。你設置一個 HTLC,Alice 給他們 2 美元,當他們知道原像超時時50 小時,Alice 以 2 美元的價格與 Bob 建立了一個 HTLC,超時時間為 28 小時,Bob 以 2 美元的價格與我建立了 HTLC,超時時間為 4 小時。此時實際上沒有錢易手——如果我不洩露原像,每個人都會拿回他們的錢。如果我洩露原像(“密碼是 xyzzy”),我會從 Bob 那裡得到 2 美元;但 Alice 和你實際上還沒有付任何錢。但 Bob 知道原像,因此他可以向 Alice 索取 2 美元;然後 Alice 可以向您索取 2 美元。所以效果是,中間人永遠沒有選擇逃跑的選擇,他們只能在付了錢後逃跑,而不是從你那裡收錢:如果 Bob 收到了原像,但沒有從 Alice 那裡收錢28 小時期限到期,我會得到報酬,而愛麗絲和你會拿回你的錢。
這對 Bob 來說是非常愚蠢的,所以我們假設大多數像 Bob 這樣的人會避免做這樣的事情,實際上整個鏈條將立即被清除。