State-Channels

準確地說,如何通過閃電網路中的 N 個躍點進行支付?

  • October 10, 2017

問題

Alice <--50--> Bob <--50--> Steve <--50--> Anna

在這裡,每個箭頭表示一個容量為Neth 的支付通道。什麼是用於在 Alice 和 Anna 之間進行 10 eth 支付的算法?請在每個步驟中包括各方應如何應對一方不遵守協議的可能性。

我試過的

我已經閱讀了一些解釋,但我錯過了細節。在這種情況下,我認為,它會是這樣的:

  1. Anna 生成一個隨機秘密,將其雜湊發送給 Alice。
  2. 鑑於 Alice 的秘密,Alice 簽署將 10 eth 發送給 Bob。
  3. 鑑於安娜的秘密,鮑勃簽署了將 10 eth 發送給史蒂夫。
  4. 鑑於安娜的秘密,史蒂夫簽署了向安娜發送 10 eth 的信號。
  5. 安娜向史蒂夫透露了她的秘密。
  6. 史蒂夫向鮑勃透露了這一點。
  7. 鮑勃將其透露給愛麗絲。
  8. Alice 現在知道 Anna 收到了付款,其他人都知道他們的餘額是相等的。

但這很簡單,所以我不確定我是否真的做對了。特別是擔心其中一方是否會在任何時候為了個人利益而放棄協議。

讓我們明確一點,Alice 想向 Anna 支付 10 ETH。我們將使用與問題類似的方式和術語來回答。

  1. Alice 創建一個秘密,併計算 H=hash(secret)。
  2. Alice 創建一個“鎖定”交易,向 Bob 支付 10 ETH,該交易只能通過秘密“解鎖”。這可以是一個智能合約,如果合約接收到散列到 H 的輸入,則向 Bob 支付 10 ETH。也就是說,如果有人向合約提供秘密,它將散列到 H,因此 10 ETH 支付給 Bob。
  3. Bob 創建了一個類似的合約,如果合約接收到雜湊到 H 的輸入,它將向 Steve 支付 10 ETH。
  4. 史蒂夫創建了一個類似的合約,如果合約接收到散列到 H.
  5. 愛麗絲將秘密告訴了安娜。
  6. 安娜通過提供秘密從史蒂夫那裡解鎖了她的 10 ETH 付款。
  7. 史蒂夫現在有了秘密,可以解鎖並從鮑勃那裡得到他的付款。
  8. Bob 現在有了這個秘密,可以解鎖並從 Alice 那裡得到他的付款。

支付和狀態通道的“魔力”在於,安娜通過索取她的付款,她揭示了允許路徑中的其他所有人索取付款的秘密。

為了讓安娜從她與史蒂夫的頻道中獲得付款,她必須將秘密發佈到區塊鏈。一旦發布,史蒂夫和鮑勃就會看到這個秘密,然後可以使用它來要求他們的付款。Anna 不需要被激勵來分享系統工作的秘密,因為系統經過精心設計,因此要求付款需要透露秘密。

更多參考: https ://www.reddit.com/r/ethereum/comments/6fde8t/ethereum_payment_channels_in_50_lines_of_solidity

引用自:https://ethereum.stackexchange.com/questions/28036