以太坊的混合二層擴容協議曙光

買賣虛擬貨幣
目前的二層擴容的方法--基本是Plasma和狀態通道。正從理論走向實踐,但與此同時,將這些技術視為以太坊成熟的擴容解決方案時所面臨的內在挑戰也顯而易見了。可以說以太坊之所以成功,很大程度上是因為它具有友好的開發體驗:開發者編寫一個程式,釋出該程式之後,任何人都可以與它進行互動。另一方面還依賴了狀態通道的設計或Plasma應用程式依賴於許多關於激勵和特定於應用程式的開發。狀態通道在特定的用例中表現得非常好,比如同一個雙方之間的重複付款和兩個玩家之間的遊戲(在celer中成功實現)之間的互動,但是要有更廣泛的使用還是具有一定的挑戰性。特別是Plasma Cash可以很好地進行交易支付,但是要普遍化使用也帶來了不少的挑戰:即使實施去中心化交易所也需要客戶儲存更多的歷史資料,並且在Plasma上推廣以太坊式智慧合約似乎非常困難。

但與此同時,一個被遺忘的“半二層(semi-layer-2)”協議類別又重新出現了,該協議在擴充套件方面對使用者來說不會有太大的收益,但是該協議更容易普及和更加安全模型。2014年,一篇被遺忘已久的部落格文章提出了“影子鏈(shadow chains)”的概念,即區塊資料在鏈上釋出,但區塊在預設情況下不會被驗證的架構。相反區塊是暫時接受的,只有在一段時間(如2周)後才能最終確定。在這兩週內,一個暫時接受的區塊可以被質疑;只有這樣該區塊才被驗證,如果該區塊被證明是無效的,那麼該區塊之後的鏈將被回滾,區塊釋出者的抵押將受到懲罰。智慧合約並不需要跟蹤系統的整個狀態,它只跟蹤根狀態,使用者自己可以透過處理自始至終提交給鏈的資料來計算狀態。最近的提案ZK Rollup透過使用ZK-SNARK來驗證區塊的有效性,從而在沒有挑戰期的情況下完成了相同的工作。

在鏈上釋出的zk rollup包的解析。數百個影響zk rollup系統狀態(即帳戶餘額)的“內部事務”被壓縮到一個包中,該包中包含每個指定狀態轉換的內部事務約10個位元組,外加一個約100-300位元組的snark,證明轉換都是有效的。

在這兩種情況下,主鏈用於驗證資料可用性,但不(直接)驗證區塊有效性或執行任何重要計算,除非提出質疑。因此該技術並沒有帶來巨大可擴充套件性的增益,因為鏈上資料開銷最終會帶來瓶頸,但它卻是非常重要的。資料比計算便宜,而且有很多方法可以非常顯著地壓縮事務資料,特別是因為事務中的大多數資料是簽名,並且許多簽名可以透過多種形式的聚合壓縮為一個簽名。ZK Rollup承諾將每筆交易壓縮到僅約10個位元組,從而實現500tx / 秒的速度,比以太坊本身增加30倍。簽名不需要包括在內,因為它們的有效性由零知識證明來驗證。使用BLS聚合簽名可以在影子鏈中實現類似的吞吐量。即將推出的伊斯坦布林硬分叉將把資料的gas成本從每位元組68降低到每位元組16,將這些技術的吞吐量再提高4倍(即每秒超過2000個事務)。

那麼,zk/optimistic rollup(樂觀彙總)之類的資料鏈上技術與plasma之類的資料鏈外技術相比有什麼好處呢?首先不需要半信任的操作者。在zk rollup中,由於有效性是透過加密證明來驗證的,因此包提交程式實際上不可能是惡意的(根據設定,惡意提交程式可能會導致系統暫停幾秒鐘,但這是可能造成的最大危害)。在(optimistic rollup)樂觀彙總中,惡意提交者可以釋出惡意區塊,但下一個提交者將在釋出自己的區塊之前立即對該區塊提出質疑。在zk和(optimistic rollup)樂觀彙總中,鏈上釋出的資料足夠讓任何人來計算完整的內部狀態,只需按順序處理所有提交的增量,並且沒有“資料預扣攻擊”可以奪走此屬性。因此成為一名操作者是完全沒有許可權的,所需要的只要一筆用於反垃圾郵件目的的保證金(如10 ETH)。

其次,樂觀彙總(optimistic rollup)特別容易推廣;樂觀彙總(optimistic rollup)系統中的狀態轉移函式可以是在單個區塊的gas限內計算得到的任何資料(包括提供驗證該轉移所需的部分狀態的merkle分支)。zk rollup在理論上是可以用同樣的方式進行推廣的,但在實踐中,要使ZK-SNARKs超越普通計算(例如EVM執行)非常困難。第三,樂觀彙總(optimistic rollup)更容易為其構建客戶端,因為對第二層網路基礎設施的需求較少;只需掃描區塊鏈就可以完成更多工作。

但這些優勢從何而來?答案在於一個技術性很強的問題,即資料可用性問題。基本上有兩種方法可以嘗試在第二層系統中作弊。第一是向區塊鏈釋出無效資料。第二種方法是完全不釋出資料(例如在Plasma中將新Plasma區塊的根雜湊釋出到主鏈,但不向任何人透露該區塊的內容)。已釋出但無效的資料很容易處理,因為一旦資料在鏈上釋出,就有多種方法可以明確地判斷它是否有效,而無效的提交則明確地無效,因此提交者可能會受到重罰。另一方面,不可用的資料更難處理,因為即使在受到質疑時可以檢測到不可用性,但也無法可靠地確定是誰的釋出的錯誤資料,尤其是如果預設情況下保留資料,並且只有在某些驗證機制試圖驗證其可用性時才按需顯示資料。這在“漁夫困境”中得到了說明,它顯示了挑戰響應遊戲如何無法區分惡意提交者和惡意挑戰者:

漁夫的困境。如果您僅在時間T3開始檢視特定的資料,你就會在案例1或案例2中混淆,因此也不知道誰是惡意使用者。

Plasma和通道都透過將問題推給使用者來解決漁民的困境:如果您作為使用者決定與您互動的另一個使用者(通道中的交易對手、Plasma鏈中的操作員)沒有向您釋出他們應該釋出的資料,則您有責任選擇退出並移至其他交易對手/操作員。作為使用者您擁有以前的所有資料以及您簽署的所有交易有關的資料,這一事實使您可以向鏈中證明您在第2層協議中擁有哪些資產,從而安全地將其從交易中退出系統。你證明了一個(先前同意的)操作的存在,將資產交付給你,沒有其他人能夠證明你已把資產傳送給別人的操作,所以你可以撤回屬於你的資產。

該技術非常優雅。然而它依賴於一個關鍵的假設:每個狀態物件都有一個邏輯“所有者”,未經所有者同意,物件的狀態不能更改。這對於基於utxo的支付(但不是基於賬戶的支付,你可以在未經他人同意的情況下向上修改他人的餘額;),甚至可以讓它為分散式交易所工作,但這種“所有權”屬性遠非普遍性。有些應用程式(如Uniswap)沒有自然所有者,甚至在那些有所有者的應用程式中,通常有多個使用者可以合法地對物件進行編輯。沒有辦法允許任意第三方退出資產而不引入拒絕服務(DoS)攻擊的可能性,恰恰是因為無法證明發行人或提交人是否有過錯。

Plasma和通道還存在其他特殊問題。通道不允許非該通道的使用者進行脫鏈交易(引數:假設存在一種在通道內部可以向任意新使用者傳送1美元的方式,那麼該技術可以與向系統中資金不足的使用者傳送1美金,已經違反了其安全保證)Plasma要求使用者儲存大量的歷史資料,當不同的資產可以交織在一起時,歷史資料就會變得更大。

因為鏈上計算鏈下二層技術不存在資料可用性問題,所以它們沒有這些弱點。zk和optimistic rollup非常小心地將足夠多的資料放在鏈上,以允許使用者計算第二層系統的完整狀態,確保如果任何參與者消失,一個新的參與者可以輕鬆地代替他們。他們唯一的問題是驗證計算而不在鏈上進行計算,這是一個容易得多的問題。ZK rollup中每個事務約10個位元組,透過使用BLS聚合來聚集簽名,在樂觀彙總(optimistic rollup)中可以實現類似級別的可擴充套件性。從理論上講,伊斯坦布林之後的2000多個交易每秒最多可以進行約500筆交易。

但是如果您想要更大的可擴充套件性怎麼辦?然後鏈上資料第二層協議和鏈外資料第而層協議之間有很大的中間地帶,許多混合方法為您提供了這兩種協議的一些好處。舉個簡單的例子你可以透過釋出鏈上哪些訂單與哪些訂單相匹配(每個訂單少於4個位元組)的對映來防止在Plasma Cash上實現的去中心化交易所中的歷史儲存爆炸:

左:如果Plasma cash使用者擁有1枚代幣,則需要儲存歷史資料。中:Plasma cash使用者需要儲存的歷史資料,如果他們擁有1枚代幣,該代幣已透過原子交換與另一枚代幣交換。右:如果訂單匹配在鏈上釋出,Plasma cash使用者需要儲存的歷史資料。

即使在去中心化交易所環境之外,也可以透過使Plasma鏈定期在鏈上釋出某些按使用者資料來減少使用者需要在Plasma中儲存的歷史記錄量。還可以想象一個平臺,在某些狀態確實具有邏輯“所有者”的情況下,其工作方式與Plasma類似,而在沒有狀態的情況下,其工作方式與ZK或樂觀彙總(optimistic rollup)類似。Plasma開發人員已經開始著手進行此類最佳化。

因此第二層可擴充套件性解決方案的開發人員有一個很好的理由,至少在某些時候更願意在鏈上釋出每個使用者的資料:它大大提高了開發的易用性、通用性和安全性,並減少了每個使用者的負載(例如不需要使用者儲存歷史資料)。這樣做的效率損失也被誇大了:即使在完全的外鏈二層架構中,使用者可以在不同的使用者之間的存放、撤回和轉移將是不可避免的且頻繁發生的,因此無論在哪種情況下都會有大量的每個使用者的鏈資料。混合路由為在準二層架構中相對快速地部署完全通用的以太坊式智慧合約開啟了大門。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;