State-Channels
準確地說,如何通過閃電網路中的 N 個躍點進行支付?
問題
Alice <--50--> Bob <--50--> Steve <--50--> Anna
在這裡,每個箭頭表示一個容量為
N
eth 的支付通道。什麼是用於在 Alice 和 Anna 之間進行 10 eth 支付的算法?請在每個步驟中包括各方應如何應對一方不遵守協議的可能性。我試過的
我已經閱讀了一些解釋,但我錯過了細節。在這種情況下,我認為,它會是這樣的:
- Anna 生成一個隨機秘密,將其雜湊發送給 Alice。
- 鑑於 Alice 的秘密,Alice 簽署將 10 eth 發送給 Bob。
- 鑑於安娜的秘密,鮑勃簽署了將 10 eth 發送給史蒂夫。
- 鑑於安娜的秘密,史蒂夫簽署了向安娜發送 10 eth 的信號。
- 安娜向史蒂夫透露了她的秘密。
- 史蒂夫向鮑勃透露了這一點。
- 鮑勃將其透露給愛麗絲。
- Alice 現在知道 Anna 收到了付款,其他人都知道他們的餘額是相等的。
但這很簡單,所以我不確定我是否真的做對了。特別是擔心其中一方是否會在任何時候為了個人利益而放棄協議。
讓我們明確一點,Alice 想向 Anna 支付 10 ETH。我們將使用與問題類似的方式和術語來回答。
- Alice 創建一個秘密,併計算 H=hash(secret)。
- Alice 創建一個“鎖定”交易,向 Bob 支付 10 ETH,該交易只能通過秘密“解鎖”。這可以是一個智能合約,如果合約接收到散列到 H 的輸入,則向 Bob 支付 10 ETH。也就是說,如果有人向合約提供秘密,它將散列到 H,因此 10 ETH 支付給 Bob。
- Bob 創建了一個類似的合約,如果合約接收到雜湊到 H 的輸入,它將向 Steve 支付 10 ETH。
- 史蒂夫創建了一個類似的合約,如果合約接收到散列到 H.
- 愛麗絲將秘密告訴了安娜。
- 安娜通過提供秘密從史蒂夫那裡解鎖了她的 10 ETH 付款。
- 史蒂夫現在有了秘密,可以解鎖並從鮑勃那裡得到他的付款。
- Bob 現在有了這個秘密,可以解鎖並從 Alice 那裡得到他的付款。
支付和狀態通道的“魔力”在於,安娜通過索取她的付款,她揭示了允許路徑中的其他所有人索取付款的秘密。
為了讓安娜從她與史蒂夫的頻道中獲得付款,她必須將秘密發佈到區塊鏈。一旦發布,史蒂夫和鮑勃就會看到這個秘密,然後可以使用它來要求他們的付款。Anna 不需要被激勵來分享系統工作的秘密,因為系統經過精心設計,因此要求付款需要透露秘密。
更多參考: https ://www.reddit.com/r/ethereum/comments/6fde8t/ethereum_payment_channels_in_50_lines_of_solidity