引言

最近一段時間,基於以太坊的 Layer2 產品可謂是層出不窮,市場表現極爲火熱。不知大家注意沒有,每個產品推出時都會介紹 「其產品是基於某種主流 Layer2 方案,具有何種優勢,可以給產品、某方面給用戶帶來更好體驗」 等類似的宣傳語句。有心的讀者或許會深思,這些方案到底是什麼方案呢?背後的原理究竟如何?是否存在劣勢?今天,ZKSwap 團隊就帶領大家縱覽 Layer2 全局,以技術爲基礎細分整個產品市場並深度剖析背後的技術原理。

Layer2 概覽

相信之前有諸多文章已經介紹,根據數據的存儲方式和交易有效性的證明方式的不同,Layer2 方案可以被劃分爲四大類,如下圖所示:

Layer2 剖析:Arbitrum 如何改進 Optimistic?Layer2 方案劃分

數據存在鏈上,即具有鏈上數據可用性的方案有:ZK-Rollup、Optimistic Rollup;
數據存在鏈下,即不具有鏈上數據可用性的方案有:Validium、Plasma;
用零知識證明來主動保證交易有效的方案有:ZK-Rollup、Validium;
用戶需提交欺詐證明來主動驗證交易有效的方案有:Optimistic、Plasma;

隨着 Layer2 技術的不斷髮展,Plasma 和 Validium 方案在市場上逐漸的失去了聲音。絕大部分產品都是基於其他兩種方案上實現的,因爲兩種方案的優缺點比較明顯,因此項目方會根據不同的考量來選擇不同的方案,下面我們將通過一張表格來呈現整個 Layer2 上的情況:
Layer2 剖析:Arbitrum 如何改進 Optimistic?Layer2 產品劃分

從表格中可以看出有有兩個被標記的方案:

由 Offchain Labs 研發的 ARU 擴展方案,和 ORU 方案一樣被歸類於 Optimistic Rollup 的範疇,但與 ORU 主要的不同之處在於欺詐證明的交互過程,這將在後續的技術剖析環節給與分析;

本篇主要剖析 ORU 和 ARU 的挑戰原理,以更好的呈現它們之間的主要差異。

Optimistic Rollup(ORU) -- Fraud Proof 欺詐證明

首先簡單介紹 ORU 協議裏的兩個概念:

CTC(Canonical Transaction Chain):存儲所有的交易信息,保證了數據可用性(更細節的描述可以參考鏈接 Optimistic Details)。

STC(State Commitment Chain):存儲了一系列的狀態根,和 CTC 裏的交易順序逐一對應(更細節的描述可以參考鏈接 Optimistic Details)。

兩者的關係如下圖所示:

Layer2 剖析:Arbitrum 如何改進 Optimistic?

S0 爲初始狀態根,圖中綠線表示:交易 Tx1 執行後,狀態根由 S0 => S1。這些操作都是由 sequencer 來執行,sequencer 在 ORU 協議裏扮演者重要角色,主要負責三件事情:

1. 接受來自用戶的交易;
2. 將這些交易 rollup,並添加到 CTC 上;
3. 計算每筆交易提交後的狀態根並添加到 STC 上;

假如 sequencer 作惡,提交了錯誤的狀態根(後續的狀態根自然也是無效的),如下圖所示,Verifier 如何驗證 sequencer 作惡呢?

Layer2 剖析:Arbitrum 如何改進 Optimistic?

Verifier 的挑戰過程主要分爲三個步驟:

1. 宣稱要挑戰的交易,並且提供在此交易執行前的狀態根;
2. 上傳 L2 上所有和該交易相關的狀態到 L1 (因爲挑戰的思想是在 L1 上重新執行 L2 上已經執行過的交易,並比較執行後的狀態);
3. 在 L1 重新執行挑戰的交易,計算新的狀態根,並判斷 sequencer 是否作惡;
如果 sequencer 確實作惡,那麼將罰沒其押金,並將其部分獎勵給 verifier。

Optimistic 具有的缺陷是:

1. 由於不是主動保證交易的有效性,因此 sequencer 提交的每一次狀態更新都要設置挑戰期,大概在一週左右,時間太長;
2. 用戶挑戰的成本很高,具體包括:(1) 發送所有和挑戰交易相關的數據到 L1;(2)在 L1 的 EVM 上執行該筆交易,並更新狀態根;

優點: 兼容 EVM。

Arbitrum Rollup(ARU) -- Fraud Proof

ARU 協議的設計和 ORU 大體相似,主要的區分在挑戰機制上。在 ORU 協議裏,sequencer 和 verifier 之間只有一次交互,即 sequencer 提交一次狀態轉換,verifier 去完成後續的挑戰。由於 sequencer 宣稱就是“初始狀態爲 Si,執行完交易 Txi 後,狀態根變爲 Si+1”。因此,在 L1 上不得不完整的執行整個交易。

ARU 的協議對以上過程進行了優化,實際上,在 L1 上執行交易的過程,其實就是在虛擬機上執行某些指令的過程;ARU 協議認爲,整個交易執行的過程中,狀態更新的失敗,必定是其中的某些指令執行的失敗,因此,只需要證明 sequencer 在執行某條指令時出現異常,那就可以證明 sequencer 作惡。具體的過程如下圖所示:

Layer2 剖析:Arbitrum 如何改進 Optimistic?

注:在 ARU 協議裏,Asserter 對應 ORU 協議裏的 sequencer,Challenger 對應 ORU 協議裏的 verifier。

據上所知:

1. Asserter 和 Challenger 間進行了多次的交互,交互次數和 n 成對數關係;
2. 把驗證整個交易的執行過程,簡化成了單純的驗證一條指令,大大的節省了驗證成本;
3. 同樣兼容 EVM;

當然,ARU 協議仍然有很多細節還未在本篇文章裏說明,本篇不打算過多介紹,內容已經很長,如果讀者想了解 ARU 更多細節,請參考 offchainlabs 的官網。

寫在最後

雖然以 Optimistic Rollup(ORU) 路線爲主的 Layer2 擴容方案逐漸的被市場上更多的產品所接受,但是未來的 Layer2 擴容終極方案仍然是兼容 EVM 的 zkRollup(ZRU)。目前的 Layer2 的產品市場上,對於 EVM 的兼容性比安全性和效率更受關注,當然完美的方案是兼容 EVM 的 zk rollup;在此之前,Layer2 擴容方案應該會在一段時間內在兼容性和安全性之間權衡選擇。這有利於 Layer2 擴容技術的發展,Offchain Labs 做了很好的榜樣;當然,ZKSwap 團隊也會持續研究探索,按照 ZKSwap 的路線圖,將在今年發佈兼容 EVM 的 ZK Rollup 版本,取得更好的可組合性和安全性,而不用像 optimistic 的解決方案,通過犧牲一定的安全性來實現與 EVM 的兼容。