TOR 上的閃電網路如何工作?
我有興趣詳細了解閃電網路如何在 Tor 上執行。lnd、c-lightning 等實現提供了一個擴展,允許使用 Lightning 執行 TOR。我想了解在實踐中如何使用 TOR 執行 Lightning。特別是我對以下情況感興趣:
- 我是發件人,但我在我的節點中啟用了 Tor。發送到 Tor 網路外的節點 R 是什麼樣子的?
2)我是接收節點,我不宣傳IP地址,而是洋蔥地址。我如何收到付款?
- 發送節點 S 是一個普通的 LN 節點,沒有任何 Tor 連接。作為發件人,我想向節點 R 發送付款,而我的 LN 節點找到了將付款發送到 R 的最佳路徑。這條路徑是否有可能在任何一跳都經過 Tor 或洋蔥節點,因為任何所選路徑中的節點恰好是洋蔥或可以訪問 Tor?如果是,那麼路由看起來如何?
在 TOR 上執行閃電節點與在普通 IP 連接上執行它沒有什麼不同。在這兩種情況下,發送付款、履行收款、發送錯誤消息等將以完全相同的方式發生。唯一的區別是,您發送給對等方的上述消息現在將通過 TOR 網路而不是直接 IP 包發生。
如果您只使用沒有任何公共 IP 地址的 TOR,那麼要將您的付款路由到僅使用公共 IP 地址的節點,您需要在到接收器的路徑中有一個節點,即 (1) 執行 TOR 和公共 IP 或(2) 或者執行公網IP並且可以使用socks5代理連接到TOR節點。如果您之間沒有此節點,您將無法發送付款。
當 Tor 服務啟動時,它會創建一個 socks5 代理,預設情況下位於地址 127.0.0.1:9050。如果使用該選項(或將其包含在配置文件中)啟動具有公共 IP 的節點,則
--proxy=127.0.0.1:9050
該節點將能夠連接到執行 TOR 的節點(如您的)。如果您正在執行 TOR並且有公共 IP 地址,那麼您可以通過 tor 服務 socks5 代理直接連接執行 tor 的節點或公共 IP 節點。
我是發件人,但我在我的節點中啟用了 TOR。發送到 TOR 網路外的節點 R 是什麼樣子的?
網路路由根據我上面提到的發生。但是,將付款發送到接收方的路徑計算發生在您的節點上,因此它不涉及您使用的網路路由。您將使用到接收方的路徑(您將用於發送付款的通道)建構洋蔥路由數據包,並嘗試
payment_hash
通過消息將此洋蔥和 發送給您的對等方update_add_htlc
。然後,此消息將在到達您的對等節點之前通過 TOR 節點,而不是直接到達您的對等節點。我是接收節點,我不公佈 IP 地址,而是公佈洋蔥地址。我如何收到付款?
您可以直接從執行 TOR 的節點接收付款。如果你想從只有公共 IP 的節點接收付款,那麼你需要在你的路徑中有一個節點設置了代理選項,以便它可以通過 socks5 代理連接到 TOR 節點。
發送者節點 S 是一個普通的 LN 節點,沒有任何 Tor 連接。作為發件人,我想向節點 R 發送付款,而我的 LN 節點找到了將付款發送到 R 的最佳路徑。這條路徑是否有可能在任何一跳都經過 Tor 或洋蔥節點,因為任何所選路徑中的節點恰好是洋蔥或可以訪問 Tor?如果是,那麼路由看起來如何?
假設您從 S 到 R 的路徑如下所示
S -> T -> U -> V -> R
:可能出現的案例數量:
**S 和 R 不執行 TOR:**這取決於
- 所有節點都可以在公共 IP 上,您的付款將通過。
- T 可以是執行公共 IP 和 TOR 的節點。它與您有一個公共 IP 通道,並且帶有 U 的 TOR 通道然後可以設置一個代理選項集,允許它具有帶有 T 的基於 TOR 的通道和帶有 U 的公共 IP 通道。V 是一個公共 IP 節點並且 U 路由付款以正常方式到V。
**R 執行 TOR:**中間的至少一個節點應該執行/理解 TOR
- T/U/V有公網IP,有TOR,可以和TOR節點和公網IP節點做頻道
- T/U/V 都是公共 IP 節點,但 V 有一個代理選項集,允許它與 R 建立基於 Tor 的通道連接。