以太坊重要擴容方案: Optimistic Rollup現狀報告(中)

買賣虛擬貨幣
本文是《以太坊重要擴容方案: Optimistic Rollup現狀報告》的第二部分,第一部分請點選《以太坊重要擴容方案: Optimistic Rollup現狀報告(上)》查閱。作者:Daniel Goldman(丹尼爾·戈德曼)自由軟體工程師、技術顧問、作家譯者:Emma、Snow Lu校對:Samuel完整的 EVM: Layer 2虛擬機器為了使 Layer 2 智慧合約計算保持無需信任,必須有一個備用方案,即以某種形式在 Layer 1執行這種計算。由此可見,ORU 支援完整的 EVM,Layer 2 需要自己的虛擬機器,該虛擬機器可在 EVM 基本層中執行,為此高效能的建立實現並非易事。簡而言之,EVM 的設計初衷並非旨在自身執行。您可以從 EIP 中瞭解到其中的一些挑戰,它也討論了修改 EVM 以直接合並此功能的可能性,以及 Kelvin Fitcher 在 Plamsa 中對這一問題的概述。
因此,所有五個完整的 EVM 專案都為 Layer 2 執行建立了自己的 EVM 修正版本。為了確保欺詐證明的可靠性和可預測性,VMs 的執行必須是確定性的;即,在證明時必須能夠準確再現最初發現欺詐的情況。 因此,非確定性操作必須完全修改或刪除,例如,檢查區塊高度,難度和時間戳。同樣,用於合約建立或銷燬的操作碼也需要刪除,因為這種邏輯是特殊的。因此,在部署到 ORU 鏈之前,ORU 上 Layer 1 的合約可能需要對 Solidity 程式碼進行一些小的修改。欺詐證明  所有完整的 EVM ORUs 在如何促進欺詐證明方面都具有一些基本的共性:定期排序並提交 ORU 鏈的狀態,計算操作的雜湊值也是如此,包括執行狀態轉換。(在所有實踐中,生成和驗證state-root的提交責任都落在了運營商身上,而不是使用者身上)。欺詐證明在某種程度上使用了這些資料來表明,所提交的步驟實際上並未正確地將初始狀態轉換為最終狀態。 完整的 EVM 實踐中主要區別在於它們處理這些欺詐證明的互動程度。 ORU 本質上必須包含足夠的呼叫資料,這樣可以立刻發現欺詐行為,並最終得到主鏈的共識。但是,執行此欺詐證明的過程因構造而異。在單輪(有時,會被令人困惑地稱之為“非互動式”)欺詐證明方案中,欺詐總是可以在單筆交易中證明,也可以在單方的多筆交易中證明。這樣做的好處是可以立即“解決爭議”,沒有麻煩的載體,因此不需要欺詐證明人的保證金,而且操作簡單。在多輪欺詐證明中,欺詐是顯而易見的,但是欺詐證明者和區塊生產者之間需要幾個互動步驟。這樣做的好處是 Gas 成本更低(在某些情況下更低),鏈上資料成本也可能更低。· 單輪欺詐證明
Nutberry,Optimism 和 Celer 的 ORU 都支援單輪欺詐證明。這就要求每筆交易都必須提交到序列化的後狀態根(post-state root)。在 Optimism 的模型中,Celer 也直接受到影響,如果檢測到欺詐,欺詐證明者會發布交易的初始狀態和最終狀態的時間(slot),並讓主鏈完全執行交易。(此流程與用於驗證以太坊區塊的無狀態客戶 stateless client 模型非常相似)。理想情況下,交易只需要最少的狀態時間(slot)即可證明欺詐。但是原則上,交易可能需要讀取大量狀態資料。如果欺詐證明需要大量資料和/或計算,很難將其放在主鏈區塊上,那麼 Optimism 可將證明拆分為多個交易(請注意,這些交易仍由欺詐證明者提交。因此,從某種意義上來說,此額外步驟不符合“互動”的條件。)Nutberry 的方法與此類似,但使用“門控計算(gated computing)”模型執行合約。智慧合約被修補以包含檢查點(checkpoint)。 在此模型中,交易會提交多個更細化的中間狀態根,可能需要更多資料,但在較小的資料塊中執行欺詐證明。· 多輪欺詐證明  證明者需要與欺詐證明者之間進行多個步驟的互動才能決定多輪欺詐證明是否屬實。按照 ORU 的定義,關鍵是要釋出足夠的資料,讓任何一個誠實的參與者或觀察者都可以從一開始就確定哪一方在說真話,從而預測了質疑期的結果。在 Interstate One 的例子中,交易包含狀態根,且釋出時提交 Merkle 根至對應執行的步驟,而不是提交至步驟本身。 從某種意義上說,這種提交是一種二級“optimistic”的假設。 只有驗證者提出問題時,操作員才會將 EVM 訊息棧(stack)張貼在呼叫資料中,驗證者可以使用該資訊簡要證明欺詐。 在最壞的情況下,此過程總共進行3輪,並且要求呼叫資料與所涉及的交易中的步驟數量成線性關係(與單輪欺詐證明相比,在所有情況下都需要線性資料)。在互動性增強方面最先進的是 Offchain Labs 的 Arbitrum Rollup,可以最大程度地減少鏈上的足跡。 使用 Arbitrum,只有區塊,而非交易,需要提交狀態根。 與 Interstate 一樣,這些也包括了提交雜湊值的計算。 如果雙方提出了相互矛盾的主張,則他們將進入爭端;在該爭端中,他們會互動式地找出無效執行的單個計算步驟(如果欺詐,原則上必須至少存在一個無效步驟)。
他們透過在棧(stack)中進行有效的二進位制搜尋直到欺詐已隔離:即,欺詐證明者透過棧(stack),在中途的一個點請求狀態雜湊,然後將棧(stack)二等分並重復已知無效的一半。 此過程將不斷重複,直到只剩下一個無效的操作,然後在鏈上執行該操作。 因此,在最壞的情況下,此過程需要(n)個日誌步驟(其中n是運算元),並且需要最少的 Layer 1 計算。這種方法的一個令人驚訝的特性是,儘管爭議正在進行,但無需暫停系統的其餘部分。使用者和區塊生產者可以繼續照常進行交易。可以將“爭議”視為可能性樹中的分枝。誠實的使用者可以驗證且確定哪一方是誠實的,並在此基礎上繼續發展,瞭解爭端最終將以何種方式解決。因此,爭議的持續時間不會讓系統的其餘部分延遲。有關更多資訊,請參見 How Arbitrum Rollup Works。應用特定的 RollupsORU 專案支援更受限制的功能,同時尋求圍繞更特定的案例進行最佳化:通證支付、去中心化交易、私人支付和大規模遷移。這四個協議都各不相同,也將分別進行探討。· Fuel (“區塊鏈上的比特幣”)Fuel 正在實施以支付為中心的、基於UTXO的ORU側鏈,其資料模型類似於比特幣。 這種設計需要平衡智慧合約的一些功能,以利於實現簡便性以及更便宜的驗證和欺詐證明。 實際上,關於 Fuel 與完整 EVM ORU 的權衡,許多想法與比特幣與和以太坊的權衡相似。
與比特幣一樣,Fuel 鏈的狀態被隱式定義為所有未花費的交易輸出的集合;不需要狀態根序列化。 支援簡潔欺詐證明的模型與Greg Maxwell在2014年Greg Maxwell in 2014 最初為比特幣提出的模型相似(並在2019年由John Adler單獨再次發現and independently rediscovered by John Adler in 2019); 交易與比特幣交易非常相似,但是包含一個額外的資料區,用於指定每個輸入的處理位置。 有了這個資料區,就可以在一個回合中用一個或兩個包含證明(inclusion proofs)來證明所有欺詐案件(雙重支付攻擊,虛假投入等)。 除了低成本的欺詐證明之外,UTXO模型還有望實現更高效能的驗證-更好的狀態訪問模式和並行空間(與同步完成的驗證EVM執行相比)。Fuel 將使用一種模型來支援 ERC20 和 ERC721 傳輸,該模型可以反映比特幣彩色硬幣提案(colored coins proposal for Bitcoin)。 它還支援某些特殊的交易型別,包括 HTLCs 的原子互換。 該計劃最終支援一種更強大的無狀態謂語指令碼語言,其功能類似於比特幣指令碼。 (有關更多資訊,請參見此處)。· ANON 的 ZK-Optimistic-Rollup(“區塊鏈上的 ZCash”)另一個獨特的 ORU 專案是 ANON 的 ZK-Optistic-Rollup,它支援E RC-20 和 ERC-721 支付交易,並具有與 ZCash 隱私地址相同的隱私保證。該設計與 ZCash 本身有很多共同點(有關ZCash primer,請參見此處);資金索賠採用 UTXO 式的“簽發”形式;支付產生的新簽發和建立的“廢止通知(nullifier)”,記錄該簽發是用於防止未來重複支出。交易也包括 ZK-SNARK,可證明其滿足所有有效性條件,且沒有向觀察者實際透露任何細節。為了維護簡潔的欺詐證明,ZK-ORU 擁有 ZCash 中沒有的功能:廢止通知儲存在 Sparse Merkle 樹中,並隨每個新的 ORU 塊進行更新。這樣可以輕鬆證明成員資格(已提交的)和非成員資格(未提交的)。與所有其他 ORU 一樣,計算被樂觀地延遲了,包括 SNARKS 本身的驗證。所有的欺詐情況,包括無效的 SNARK,只需一步就能證明。注意,生成 SNARK 的重任落在使用者身上;ANON 預計一個客戶會花費10-30秒生成 SNARK。
(還要注意,儘管名稱和組成部分相似,但 ZK-Optimistic-Rollup 實際上與 ZK-Rollup 有所不同,後者不一定提供隱私保護,不使用欺詐證明,並且使用運營商生成的 SNARK 證明其有效性。歡迎使用加密貨幣。)· WCL 的 ORU Hub該 ORU 操作旨在成為 rollup 鏈之間的批交易標準,是讓使用者自願將其資金遷移到升級合約的一種手段。該操作本身是一條簡單的,僅基於帳戶支付的鏈,與 Fuel 一樣,它提供廉價的欺詐證明和資料驗證。這種構造的主要目的是建立一種標準架構,以便能夠直接在不同鏈之間進行轉移,即,不必從一條鏈中取出款後再重新存到到另一條鏈上。這可以透過支援批次存款和建立單向鏈間的交叉連線實現。 只要目的鏈上的驗證者發現出發鏈上的欺詐行為,就可以將付款視為最終付款,而不會產生任何額外的延遲。這與圍繞 ETH 2.0 交叉分片通訊的研究 ETH 2.0 cross shard communication 邏輯相類似。雖然主要的計劃用例是可升級性,但此機制潛在的其他用例是在單獨的、不同的、實時 rollup 鏈之間遷移,我們需要對此進行更多研究。關於 rollup 鏈間遷移的精確協議,以及需要確認的規範鏈,更多詳細資訊尚未公開,日後會在此處附上鍊接。· IDEX 2.0
IDEX 的獨特之處在於,他們將 ORU 作為已經投入生產的專案的最佳擴容版本,IDEX 合約當前已在主網執行,IDEX 合約使用的狀態模組(state)比任何以太坊其他應用程式都要多。IDEX 2.0 的 rollup 鏈支援登記訂單式去中心化交易功能,並且圍繞此特定用例構建而成。 該鏈負責執行訂單,維護使用者餘額,允許設定發生其他功能,例如更高階的訂單型別,自動交易引擎等。IDEX 的 ORU 中的驗證者必須有 IDEX 通證。驗證者提交收據證明已釋出的區塊,並根據他們在有效區塊上的簽名和有效欺詐證明的簽發而受到獎勵和/或懲罰(如果他們選擇接受全部的“風險”驗證)。獎勵是使用一部分的交易費用和自己的通證支付的(加密經濟學模型的分析不在本文範圍內;有關更多資訊,請參閱 IDEX 2.0白皮書 DEX 2.0 whitepaper)。在協議中,區塊生產者僅上傳區塊的 Merkle 根作為初始投入,僅在質疑時將區塊內容釋出到呼叫資料中。由於無法在鏈上保證 rollup 區塊資料的可用性,因此,這並不完全符合上述 “Optimistic Rollup” 的定義; 實際上,他們將其稱為 “最佳化的 Optimizied Rollup Optimized Optimistic Rollup”。 一旦釋出呼叫資料後,就可以透過一兩個附加步驟來證明欺詐行為。下面將討論此方法對信任/安全的影響。

免責聲明:

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

推荐阅读

;