Rollup 未來在以太坊的角色

買賣虛擬貨幣

以太坊擴容在社羣中的討論如火如荼,多個解決方案正在加緊開發,並有望在今年全部上線主網。在整個以太坊 Layer2 方案爆發的前夕,imToken 聯合 ETHPlanet、EthFans、ECN、上海前沿技術研討會和 HiBlock 等多家優秀的以太坊生態社羣與公司,共同策劃一場以太坊擴容主題系列活動。

4 月 23 日舉辦了第一場活動:Rollup - 以太坊 L2 擴容新正規化杭州線下 Meetup。

以下是本次 imToken 首席科學家 Chang-Wu 的分享:「Rollup 未來在以太坊的角色」 的文字版,由 imToken 整理。

演講整理

我先帶大家瞭解一下什麼是 Rollup,以及 Rollup 未來與 Eth2 路線圖又是一個什麼樣的關係。

首先,我們都知道現在以太坊網路的一個 block(區塊) ,它的計算單位是 gas limit(筆者注:每筆鏈上交易都會消耗 gas),每個區塊的 gas limit 都有上限,目前這個上限值已經被調整為 1500 萬,這 1500 萬就代表每個區塊可以包含的計算單元,也就是每個區塊裡所有交易累計消耗的 gas limit 不能超過 1500 萬 gas。

舉例來說,單純的 ETH 轉賬,每筆的 gas limit 是 21000。如果一個區塊中所有交易都是 ETH 轉賬,那麼單個區塊中最多可包含的交易筆數就是 1500w / 21000 = 714 筆。同時,目前以太坊出塊平均時間是 12 秒,那麼用 714 除以 12,我們就可以知道目前以太坊網路每秒可處理交易數的上限。

最近大家都看到了,現在的網路是非常擁擠的,尤其是在柏林升級前,區塊 gas limit 只有 1200 萬的時候。但即使是透過升級把 gas limit 提升到了 1500 萬,我們仍然看到每個區塊幾乎都是滿的,區塊空間利用率接近飽和。

也就是說這時候你想要放入更多的交易其實是很困難的。同時我們也注意到,因為一些 DeFi 專案的興起、需求等等,每當市場上有震盪的時候,手續費就會特別昂貴。過去一段時間,我相信大家也注意到在星火礦池維護的實時評估 gas 的網站上,有時甚至能看到 900、1000 Gwei 這樣非常昂貴的手續費的產生。

所以在這一現狀下我們認識到由於 DeFi 不停增長的需求,導致網路擁擠、每個區塊都是飽和的狀態、手續費昂貴。即便近期(在柏林升級中)提升了區塊的 gas limit,但仍不足以滿足鏈上的交易需求。

對此,我們越來越需要透過擴容來支撐以太坊網路整體的交易量。這就是我們今天想要和大家介紹的主題 - Rollup,中文叫做卷疊。透過引入 Rollup 技術方案,我們可以將以太坊網路的交易處理能力由當下 Eth2 上的 20 TPS(每秒可處理交易)提升至 4000 TPS(從理論上估計)。

那麼 Rollup 是什麼,以及它在 Eth2 路線圖中又會扮演什麼樣的角色呢?

我們都知道 Eth2 想要透過分片的方法來提升整體的交易量。具體而言,分片是透過將交易傳送到不同的 Eth2 分片去做執行,因為分片本身的設計允許不同的交易在不同分片上平行處理,以此從最底層的協議上進行最佳化,達到給網路整體擴容的目的。但是呢,我們也都知道,Eth2 的階段 0 是去年 12 月份剛上的,上面談到的分片實際運轉起來可能要等到階段 1.5 或階段 2。如果沒有過渡或者說妥協的方案出來,這中間將是漫長的等待期,而且期間網路將一如既往的擁堵。這也是為什麼 Rollup 二層網路解決方案在近期越來越受到歡迎和普及。

那接下來,我們開始介紹 Rollup,我會透過說明 Rollup 的每一個步驟來向大家解釋它是如何實現擴容的。

首先,下圖中間黑線上面代表 Layer1,下方代表 Layer2。Layer1 的主網就是現在 Eth2 的主鏈,Rollup 專案方會在這條主鏈上部署一個智慧合約。

使用者在這個合約中可以 deposit(存入)資產,存入後,Rollup 運營商或服務商就會在二層網路上把這些資產對映出來。關於具體的對映方式,我們可以把它想像成是以資料庫的方式,對映成一個儲存的格式,而這個格式可以表示每一個賬號現在有多少餘額。

透過這種方式將使用者在主網 Layer1 的存入資產與二層網路賬戶上的餘額進行對映。然後,使用者就可以在 Layer2 上進行轉賬、兌換等操作。那麼,當使用者們在 Layer2 發起大量交易時,由誰來對這些交易進行篩選、排序和打包呢?

在當前的 Rollup 二層網路方案中,這個角色一般由專案方來承擔,我們稱其為 sequencer(排序者)。sequencer 的角色,有點像是在打包這些交易,類似 Layer1 的礦工。但區別在於,sequencer 是先把交易整理好,然後才去做打包交易的動作。比如在二層網路中使用者 A 給使用者 B 轉 10 個 token,使用者 B 給使用者 C 轉 20 個 token,這些交易就會由 sequencer 來負責驗證處理,並且打包整理成最後使用者 A、B、C 的餘額應該各有多少。

但僅做到以上這些仍是不夠的,因為以太坊上一筆交易佔據的空間非常大。例如僅收款方的地址,就佔 20 個 bytes,ECDSA 簽名佔 64 bytes。對於以太坊區塊有限的空間來說,這些資料所佔用的空間較大,那麼我們是否有辦法壓縮這些資料呢?

方法是有的。現在以太坊上一個地址是 20 bytes,在二層網路上,我們可以透過編碼的方式進行壓縮。具體來講,Layer1 上的一個普通地址透過編碼可以從 20 bytes 壓縮到 3 bytes。同樣的,上面提到的 ECDSA 簽名資料和其他資料也可以進行壓縮。sequencer 的職責就是壓縮交易,並將壓縮後的資料放在 Data(以太坊交易的一個欄位)中同步到 Layer1 上。以上就是 Rollup 處理交易的過程說明。

到這一步,我們看到即使是在 Layer2 上,sequencer 最終同樣需要把所有交易打包後的資料上鍊。這裡有兩個問題需要回答:

為什麼要把資料放到鏈上?原因在於只有當資料上鍊時,資料才具備可用性,其他人就可以透過這些資料來驗證其中包含的交易是否真的成功。避免由於 sequencer 作惡(比如將一筆轉賬的收款地址替換為自己的地址)造成的資產損失。因此資料上鍊是必要的。

如何確保上鍊的資料是正確的(即如何保證資料的有效性)?這就要求 sequencer 要對資料進行驗證,一般是透過提交 Proof(證明)來確保上鍊資料正確。

在第二個問題上,目前的 Rollup 方案主要區別在於對資料和 Proof 的處理上。有的方案只把資料上鍊,但不對資料進行驗證,也就是缺乏 Proof,比如 Optimism(筆者注:他們透過欺詐性證明來保障鏈上資料有效)。有的方案則是將資料和對資料的 Proof 同時上鍊來保證資料的有效性,比如 zkRollup 透過零知識證明對資料進行驗證,並且把驗證得到的 Proof 和資料一起上鍊,以此確保對應資料在鏈上的有效性和資金的安全性。所以 zkRollup 是目前被大家公認為比較安全的方案。

整體來看 Rollup 方案,Layer1 上的智慧合約就像是城堡,其中的資金安全性依賴於 Layer1 自身的安全性。在 Layer1 上需要儲存各賬戶的狀態轉換資料,同時要把 Layer2 上交易壓縮後的資料同步到 Layer1 上,至於要不要做 Proof 則取決於具體的專案方的取捨。

Layer2 則負責執行交易,將本來在 Layer1 上處理的交易轉移到 Layer2 上。當前對資料正確性的驗證主要有兩種典型的方案:

Validity proof:即指類似於 zkRollup 的零知識證明方案。將資料和對資料的 Proof 同時上鍊。

Fraud proof:即指類似於 Optimism 的欺詐性證明方案。由於只將資料上鍊,所以 Optimism 需要使用者或專案方自身去監測 sequencer 是否如實地把交易資料同步到了 Layer1 上。如果監測到欺詐行為,那麼就可以透過提交欺詐性證明來保障資產安全。

最後,關於資料可用性,從形態上可以簡單分為兩個代表:zkRollup 和 Optimism。主要區別在於對哪些資料上鍊(on-chain) / 不上鍊(off-chain)方面的取捨。大部分方案都是把資料上鍊的,但是也有一些方案選擇對一部分資料不上鍊處理,這麼做的好處在於可以進一步提升擴容效能,而不用受區塊自身可存放資料容量大小的限制;另一個原因是,有些應用顧慮到隱私性或其他一些特性,並不希望所有資料都上鍊,因而做了取捨,對這部分在這次分享中我們不去詳細討論。

在資料上鍊 / 不上鍊取捨上有一個典型的例子:zkPorter,也就是未來的 zkSync 2.0。他們宣稱在 zkSync 2.0 中可以達到 24,000 TPS,這主要是透過默克爾樹實現的,在不同分支中分別存放 zkRollup 與 zkPorter。對於在意安全性的使用者來說,zkRollup 是一個更可靠的選擇;但在對安全性要求相對較低的應用中,則可以考慮使用部分資料不上鍊的 zkPorter(效率更高,處理能力更好)。zkSync 2.0 透過這種混合的方式實現有保障性的安全和效率的提升。

那麼為什麼說 Rollup 和 Eth2 的路線圖有關?其實前面有提到過,Eth2 分片上的交易執行暫時還無法立即到位,社羣可能還要在等一段時間。但是在 Phase1 和 Phase 1.5 間,當分片的資料庫成型時,其中的每個分片就好比是一個主網,這些分片的資料層就可以用來儲存 Rollup 的資料。

當未來有分片的時候,雖然我們不能在其上立即進行交易,但是我們可以透過把 Rollup 的資料存到這些分片中提前發揮分片的作用,達到進一步擴容的目標。

這部分就是我今天的分享,謝謝大家。

風險提示:本文內容均不構成任何形式的投資意見或建議。imToken 對本文所提及的第三方服務和產品不做任何保證和承諾,亦不承擔任何責任。數字資產投資有風險,請謹慎評估該等投資風險,諮詢相關專業人士後自行作出決定。

免責聲明:

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

推荐阅读