在深入解釋layer2解決方案前,我們先來了解一下其背后的原理。
公鏈的基本力量在于加密經濟共識。
通過仔細調整激勵措施,并將其與軟件和密碼學結合,我們能夠通過網絡對系統內部達成共識。這也是中本聰白皮書中提到的重點,這點現在已經被應用到許多不同的公鏈中,包括
比特幣和
以太坊。
加密經濟共識給了我們一個確定性內核——除非發生像51%攻擊這樣極端事件,否則所有操作(包括支付,或者智能合約)都將按書寫程序執行。
Layer2背后的原理是,我們可以將這個確定性內核作為一個錨——在此基礎之上附加其他經濟機制。Layer2可以將公有鏈的效用擴展到鏈外,讓我們在鏈外互動成為可能,在需要的時候,這些互動仍然可以返回到主鏈。
這些layer都是建立在以太坊主鏈之上的,所以它并不能持續保證與鏈上操作同樣的安全性。但是仍然可以確保它們是最終地、安全地、實用地——尤其是只需要犧牲一點操作權限,就可以提高運作效率,降低手續費用。
加密經濟學的起源并不是中本聰的白皮書,但這同樣不是終點——這是我們正在嘗試應用的技術。不僅在核心協議的設計上,也體現在旨在擴展底層鏈功能的layer2的設計中。
通道狀態特點和限制
狀態通道(State channels)
狀態通道指的是“鏈下”處理交易和其他操作的一種技術。然而,發生在狀態通道內事物仍然保持著很高的安全性和終結性:如果出了什么問題,我們仍然可以選擇回到鏈上交易。
很多讀者對支付通道都很熟悉,這個同店已經出現了許多年,最近也在通過閃電網絡(lightning network)在比特幣上實施。狀態通道是支付通道更為普遍的形式——它們不僅可以處理支付,也可以處理
區塊鏈的“狀態更新”——就像智能合約的更改。狀態通道于2015年由Jeff Coleman率先提出。
通過一個案例我們可以更好理解狀態通道的工作方法。這依然是一個概念性的解釋,我們不會進入特定的技術細節。
比如說Alice和Bob正在玩三子棋游戲(tic tac toe),贏家可以獲得1ETH作為獎勵。最簡單的辦法,就是在以太坊上創建一個智能合約,將三子棋游戲的規則寫入智能合約內,并追蹤每一名玩家棋子的移動軌跡。每次玩家移動棋子時,就發送給合約一次。當一個玩家勝出時,合約將支付1ETH給勝出者。
這種做法雖然可行,但是弊端很明顯,效率低、速度慢。整個以太坊網絡都在為這個游戲運行,造成資源的浪費。玩家每移動一步棋,都要支付一筆費用,并且,他們還要等礦工完成驗證,才能進行下一步。
這時候,我們就可以設計一個系統,讓Alice和Bob的互動盡量在鏈下進行。Alice和Bob可以在鏈下更新狀態,并在需要的時候,回到鏈上交易。我們把這種系統稱之為“狀態通道”。
首先,我們在以太坊主鏈上創建一種智能合約作為“法官”,并將游戲規則寫入合約,并識別出Alice和Bob是本次游戲的兩個玩家。再給這個合約設置1ETH的獎勵。
隨后,Alice和Bob開始互動。Alice開始走第一步,簽名后發送給Bob,Bob也會簽名,并將自己簽名后的版本發回,自己保存一份副本。然后往復操作,每次他們都會更新自己的狀態。每次互動都會包含一次“nonce”,以便于按時間給每次互動排序。
至此,所有操作都不是在鏈上發生。Alice和Bob只是在互聯網中發生了交易,但是所有交易都可以上傳至合約——換句話說,它們依然是有效的以太坊交易。你可以理解成,這兩個人是在來回寫著區塊鏈認證的支票。事實上銀行內并沒有存款或者取款業務,但是每張支票都可以隨時存入。
如果Alice和Bob的游戲結束,比如說Alice贏了,他們可以上傳最終狀態(交易清單)并關閉通道。這樣,只用支付一次交易費用就可以了。合約可以確保“最終狀態”有雙方簽名,并等待一段時間,以確保結果可靠,最后把1ETH的獎金支付給Alice。
為什么需要這個等待時間?
假設Bob上傳的不是最終版本,而是他勝利那個版本。但是合約只會執行指令,無法知道哪一個是最終版本。這個時候,設置一段等待時間,可以讓Alice提供證據證明自己提供的是最終版本。
Alice提交雙方簽名的交易副本,合約通過的nonce確定Alice提交的才是最終版本,駁回Bob的請求。
特點和限制
狀態通道可以適用于很多應用程序,并對傳統的鏈上操作進行了許多升級。但是,在引入狀態通道之前,還必須考慮其他因素:
狀態通道依賴可用性。如果Alice在過程中斷網了(假設是由于Bob迫切想要獲得獎金,而破壞了Alice家的網),那么她可能無法及時提交狀態信息。但盡管如此,Alice可以付錢讓其他人保存她的交易狀態,并作為她的代表,維持數據的可用性。
如果用戶要進行許多次狀態更新,并且持續時間很長,那么這種狀態通道就特別適合。因為雖然在創建狀態通道時需要一筆費用,但是之后維護成本就會特別低。
狀態通道適用于那些擁有固定用戶的應用程序。因為合約必須知道通道內的所有實體(地址)。雖然可以對人員進行增加或者移除,但這都需要在合同上進行更改。
狀態通道具有很強的隱私屬性。因為所有操作都發生在“內部”通道中和參與者之間,而不會在鏈上公布,也不會記錄在鏈。只有交易的開始和結束狀態是公開的。
狀態通道具有即時的終結性。也就是說,一旦雙方對狀態簽名了,就可以認為是最終的。必要的話,也可以“強制”在鏈上執行。
在L4,我們正在構建一個Counterfactual:一個基于以太坊的狀態通道框架。我們通用的、模塊化的模板將允許開發人員在其應用程序中使用狀態通道,不需要自己去研究狀態通道。
另一個值得關注的狀態通道項目是Raiden,該項目的目標是建立一個支付渠道,使用與閃電網絡類似的模式。這意味著,不僅僅只能與特定人員開設通道,你還可以與一個較大的頻道網絡開設通道,使你可以與同一頻道內的所有成員交易,并無需手續費。
除了Counterfactual,Raiden之外,還有幾個基于以太坊的的應用程序。例如,Funfair為了它們的去中心化平臺建立的狀態通道(“Fate channels”),Spankchain為成年演員建立了單向支付通道(他們也為
ico創建狀態通道),Horizon Gamesis為他們的第一款以太坊游戲創建了狀態通道。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。