上面這張圖是雷電網路用於說明支付通道技術的,在上圖中,可以看到兩個交易參與者,一個是A,一個是B。所謂的餘額證明,就是說,A和B需要把主鏈上的代幣資產進行抵押鎖定,最終產生餘額證明。比如A擁有1000個PPT和2000個REP,B擁有各1000個PAY、GNT、SALT、POWR、KNC,在鏈外交易轉賬之前,兩者的這些代幣都被抵押凍結當作餘額證明。如果產生不了餘額,就無法進行餘額轉賬。餘額證明是由以太坊區塊鏈執行的有約束力的協議。透過數字簽名,確保交易雙方不能隨意退出價值轉移。另外,由於鏈外的交易中,只有交易雙方才能訪問存在支付通道的智慧合約中代幣,這意味著雷電網路餘額證明跟主鏈交易一樣具有約束力。
一旦主鏈代幣餘額被凍結,交易雙方產生餘額證明,雙方可立即透過支付通道進行鏈外轉賬交易,且不受次數限制。當雙方完成交易,可以把資產轉回主鏈,並在主鏈上進行登記餘額變化,不過鏈外的交易不會留下記錄,也就是說,交易了多少次,交易的數量等資訊,都不會向全網廣播,對於有隱私需求的使用者來說,也是一大利好。
2.支付通道網路
當然,Raiden最強的還是它的網路協議。由於開啟和關閉兩個對等點之間的支付通道,依然需要鏈上交易,在所有可能對等點之間建立通道變得不現實。雷電的解決方案是透過通道網路借道解決。如果透過連線雙方的通道網路至少存在一條路由,付款人和收款人間不一定需要直接的支付通道來解決交易。這個網路和它所關聯的路由及通道互鎖傳輸協議被稱雷電網路。這是雷電網路技術最有價值的部分。
下圖簡單解釋了透過中介來建立支付通道的交易解決方案示意圖:
如果A要轉賬給B,A和B有直接的支付通道,但是如果A要轉賬給D,A和D之間並沒有支付通道。怎麼辦?雷電網路會匹配網路中的參與者方,試圖找到中介來完成支付通道的建立,那麼,圖中B和E會充當中介,最終建立支付通道,實現A和D之間的轉賬交易。
此外,支付通道轉賬與主鏈交易不同,是不收取交易費用。不過,更大網路的中介,是要收一些小額費用,以提供它們的通道支援支付,這也產生了複雜的路由和競爭性的通道費用市場。而雷電網路協議則希望透過使用協議層功能和一些輔助服務促進這個市場。
雷電網路小額支付價值
任何以太坊區塊鏈上交易都必須付出成本,這依賴於交易需要的計算資源。也就是說,費用與實際交易金額無關,也跟是什麼代幣無關。這樣從價效比上看,主鏈適合大額度的價值轉賬,但對於小額微交易就不值了。如你花幾塊錢買瓶水,就不值得用以太坊主鏈進行交易。
而這些小額的交易就是雷電網路要解決的問題。轉賬不管是一次傳送,還是分割成幾千個更小的交易都毫無負擔。在雷電網路不管多小的交易都可以有效地傳送。
雷電網路的交易也非常及時,某種意義上,只要你收到鏈外雷電的轉賬,基本上可以確認完全屬於你。主鏈的價值轉移確認依賴於區塊時間,還有礦工需要花時間把你的交易從等待交易中撿起。這都需要耗費時間。
跟等待下面的區塊來確認交易不同,雷電網路轉賬可以快速傳送、接受、確認交易,就像發微信那麼快。
區塊鏈還有個固有的問題就是擴充套件性。雷電網路也要解決這個問題。不管使用者基數大小,目前區塊鏈的容量都是有限制的。雷電網路的容量隨著使用者數的擴張而線性擴充套件,這樣實現高效、去中心化轉賬網路。
雷電網路的不適合大額交易
當然雷電網路並非萬能,也有自己的弱點。對於使用者來說,有些情況使用雷電網路交易不如在以太坊主鏈上進行交易。
雷電網路有餘額證明,在整個支付通道生命週期間會把使用者的代幣鎖定在智慧合約上。如果從ATM取點零用錢,你肯定不願意把自己的較大金額在支付通道凍結。一旦你從ATM取錢,你不能將它用作其他事情,就像線上支付或電匯。
大額轉賬應該在主鏈上執行,這樣可以節省額外的通道生命週期管理成本,也可避免透過很多裝備不良的支付通道進行路由的需求。
雷電的工作原理
1.通道的生命週期
在支付通道的生命週期時間,代幣會被鎖定,確保代幣只能在通道中傳送和接收,直至交易通道關閉,這樣可以防止雙重支付給其他人。一旦一個渠道建立,參與者可以發起認證檢查。每個對等交易方無需檢視所有記錄,只需跟蹤最新部分。餘額證明包含了所有雷電網路轉賬中傳送給參與者的最終總額,由傳送人進行數字簽名。
當一方決定在區塊鏈上結算餘額,可以要求也可以支付未付餘額,交易者可以隨時透過向智慧合約提交供其選擇餘額證明關閉支付通道。另一方沒有關閉通道,必須提交餘額證明,如果沒有轉賬則無需操作。在雙方提交餘額證明後,就可提取存款。如果有一方沒有及時提交餘額證明,餘額會根據結束者的證明來確定餘額。
上圖是關於雷電網路支付通道整個生命週期的示意圖。
2.通道網路
支付通道的建立和結算必須在區塊鏈上執行。因此,為每個潛在目標建立新的通道顯然是不可行的。雷電則透過建立支付通道網路來解決這個問題,每個參與者透過支付通道網路都能彼此連線。
如圖,A想把加密代幣發給D。A必須先找到一條連線到D的網路通道。連線路徑的每個參與者需要合作讓A能順利把代幣轉到D。參與者透過支付轉發到下一個hop,這樣把通道租借給了A。加密雜湊鎖定防止所有這些中介轉賬被記入,直到D確認收到A的代幣。一旦A決定解鎖付款,她把鑰匙給到D。
因為通路上的每位參與者解鎖他們的收款都會有激勵,金鑰很自然透過通道傳回Alice。所有鎖定的轉賬都可以用Alice金鑰進行鏈上兌換。但是,參與者最好將鎖定的轉賬價值合併成標準餘額證明。包含鎖定轉賬價值的餘額證明和讓鎖本身無效都可以同步到通道狀態。這樣就完成了mutihop轉賬。
網路中的對等方不會把自己的通道免費被使用。畢竟,轉賬會帶來額外網路流量和支付通道的不平衡。因此,雷電網路的參與者因為租用通道而付出費用,費用還可以透過激勵來促使支付通道由不平衡向平衡發展。
隱私保護
在交易雙方均持有餘額證明的情況下,雙方可透過支付通道在鏈下進行無限制次數的轉賬。
僅有在完成鏈下交易,需要將資產轉回鏈上時,才會在以太坊主鏈上登記主鏈賬戶的餘額變化資訊,而這期間不管發生多少次交易在主鏈上是不會有記錄的。這個特點也可以實現一定程度上的隱私保護。
雷電網路的一些挑戰
雷電的支付通道網路技術還比較早期,兩年前才提出,從概念和實現都比較複雜。
1.可拓展的路由
如果沒有對所有通道和它們的可用性及容量有一個全球概覽,如何找到從傳送者到接收者的路徑是很難的。傳統的中心化的做法是讓所有的參與者向中央服務持續報告通道容量,並查詢獲得通路。這是目前比較高效的做法。而去中心化目前的做法不高效,比如採用暴力計算不斷試錯通道或向所有參與者廣播通道最新狀態。小世界網路是有效的路由模型,但要求節點間動態連線。雷電網路需要找到一個相對平衡的可行解決方案。
2.維持平衡網路
尋找路徑演算法不應提供任何路徑,理想情況下,還是可以減少或避免增加調解通路的不平衡。參與者用費用激勵找到最便宜的路徑,有助於網路平衡。
3.維持隱私的同時提供低延遲資訊傳遞
保持所有參與者端點的私密性也不容易。協調多點傳輸,參與者需要熱錢包。但不想暴露自己的端點。被動傳輸資訊的協議,比如whisper是必須的,但與此同時,也要考慮擴張到數百萬級的使用者。
4.輕客戶端
大多數使用者不會執行全節點,會有類似於使用者使用metamask來使用Dapps的方式,這要求協議可以有效支援弱連線。
5.支付通道
支付通道允許任何一方任何時間關閉通道。但是,兩方在一個通道結算期間需要同時線上。在大多數普通使用者場景下就很不穩定,人們可能線下多於線上。這裡需要一個去中心化的第三方代表離線方進行結算。
6.升級治理
讓數百萬使用者來投票決定協議升級方案不太現實。需要有效的治理機制,比如允許專家群代表投票決議。
7.對執行網路的激勵
需要對路徑尋找、監控和全節點服務來支撐整個執行網路。這些服務的提供者會被獎勵。但與此同時,協議核心不應該有任何費用。
結語
雷電網路透過解決如下幾個方面的瓶頸,試圖讓區塊鏈支付能夠真正進入大規模採用的階段,真正飛入尋常百姓家。首先是速度,可實現交易傳輸一秒內完成確認。其次是費用,把轉賬成本降低很多,讓小額微支付成為可能。再次是可擴充套件性,實現與參與者數量成線性比例增加。最後還有私密性和互操作性,讓個人轉賬在鏈下完成,記錄不會進入主鏈公開賬本,互操作性則是讓雷電網路可用於任何符合ERC20標準的代幣。
最終來說,如果雷電網路能夠解決這些問題,那麼,它將在區塊鏈的零售級的微支付和Iot支付中都有機會大規模商用,這就是它未來可能的價值所在。做到了這一點,它就有機會成為真正的去中心化的全球支付基礎設施。