萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

文章作者:Preethi Kasireddy

文章翻譯:Block unicorn

原標題:《規範的以太坊匯總解讀》

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

區塊鏈無法擴展 ” 你可能已經聽過一百萬次了。幾年前,這感覺像是對該行業的真正威脅。如果我們甚至不能每秒處理 15 筆交易,我們如何為沒有銀行賬戶的人提供銀行服務?

但大問題推動了創新,區塊鏈的可擴展性是一個大問題。它很快引起了工程師和科學家的注意,直至今天,我們對區塊鏈可以擴展越來越有信心。事實上,當前的大多數爭論都關注哪種可擴展性解決方案將獲勝。

這就是為什麼在這篇文章中,我將分解一些在過去五年中探索過的以太坊可擴展性解決方案——並解釋這些解決方案如何成為可能成為贏家的墊腳石:匯總

面對 “ 可擴展性三難 ”

如果不提到著名的 “ 可擴展性三難困境 ”,我們就無法談論可擴展性。該術語由Vitalik(V神)創造,用於解釋區塊鏈旨在擁有的三個屬性:可擴展性、去中心化和安全性。很明顯,到目前為止,我們可以實現其中兩個屬性。但是要同時獲得這三個是非常非常困難的。

在我們理解為什麼之前,讓我們把我們的條款弄清楚。

1. 可擴展性只是意味着區塊鏈可以處理大量事務,以每秒事務數 (TPS) 衡量。

2. 去中心化意味着區塊鏈由世界各地的許多“去信任”節點運行——而不是由一小群集中的“受信任”節點運行。

3. 安全性意味着即使網絡中一定百分比的節點是惡意的,區塊鏈也能抵抗攻擊。理想情況下,它應該能夠處理多達 50% 的惡意節點。

Vitalik 創建了一個簡單的三角形,每條邊代表三個屬性之一。三角形的每一邊代表能夠實現 3 個屬性中的 2 個的不同類型的區塊鏈解決方案。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

去中心化和安全

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

三角形的底部是傳統的區塊鏈,如比特幣和以太坊 1.0(一層)。

這些類型的區塊鏈是:

  • 去中心化:是的。因為世界上任何人都可以選擇成為挖礦節點。全世界有成千上萬的礦工參與保護比特幣和以太坊網絡的安全。也無需授權自己為礦工;這是完全不信任的。
  • 安全:是的。因為網絡中的每個節點都保留了區塊鏈的副本並驗證每筆交易。此外,工作量證明旨在處理高達 50% 的惡意節點。
  • 可擴展性:不能。憑藉其安全性,網絡中的每個節點都保留一份區塊鏈副本並驗證每筆交易。雖然安全,但效率低下,導致延遲和吞吐量非常低。對於比特幣,每秒大約 7 筆交易,對於以太坊,每秒大約 15 筆交易。

安全且可擴展

三角形右邊是典型的高TPS鏈,比如幣安智能鏈。他們使用一種稱為“ Proof-of-stake-authority ” 的共識算法,其中 “ 選舉 ” 了 21 個節點來生成新塊。每 24 小時,2月15號更名為BNBChiin,從21個節點擴展到41個節點。將選出一組新的 41 個節點來在 24 小時內生成新塊。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?
  • 安全:是的。每個 “ 選舉 ” 節點被授權,因此我們控制系統中的對手。
  • 可擴展:可以。由於少量的選舉節點在任何時候都會產生新的塊,因此我們可以獲得更高的事務吞吐量和更低的延遲,這意味着與每個節點都必須驗證每個事務相比,交互費用更低。
  • 去中心化 : 不夠去中心化。 由於只有 41 個選舉產生的驗證者,它比傳統的區塊鏈去中心化要少得多。此外,每個 “ 選舉 ” 節點被授權,因此我們將信任介紹到系統中,使其減少分散。

可擴展和去中心化

三角形的左側是多鏈生態系統,例如 Cosmos、Polkadot 和 Avalanche。這些系統有許多獨立的區塊鏈網絡,它們都作為更大區塊鏈網絡的一部分進行通信。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?
  • 可擴展:是的。由於我們不再需要將所有狀態存儲在單個區塊鏈上,因此我們可以將狀態拆分到許多獨立的區塊鏈中,從而實現比傳統區塊鏈更高的可擴展性。
  • 去中心化:看情況而定。生態系統中的每個區塊鏈都有一組驗證區塊鏈的節點。生態系統中的一些鏈會有很多驗證者(例如需要去中心化的穩定幣鏈),而另一些鏈可能很少甚至只有一個(例如不需要太多去中心化的企業鏈)。因此,去中心化的程度取決於我們所指的生態系統中的哪條鏈。
  • 安全:不太安全。如果生態系統中有一條鏈受到攻擊,那麼它可能會對系統的其餘部分產生連鎖反應。例如,如果鏈 B 受到攻擊,而鏈 A、C 和 D 都依賴它,那麼其他鏈也會受到影響。

如您所見,在擴展區塊鏈方面有許多不同的嘗試,但它幾乎總是以這三個屬性之一為代價。Vitalik 和以太坊社區一直不願意做出這種妥協,他們的目標是獲得所有三個。

在我們了解這如何可能之前,了解另一件事很重要:第 1 層擴展與第 2 層擴展。

了解第 1 層和第 2 層擴展

在最高級別,第 1 層擴展是指擴展核心區塊鏈本身。相比之下,第 2 層擴展是指將交易從主區塊鏈層移到可以與主鏈通信的單獨層中。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

以太坊希望同時使用第 1 層和第 2 層解決方案來解決可擴展性的三難困境,分片是以太坊的第 1 層解決方案,而匯總是以太坊的第 2 層解決方案。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

以太坊最早的二層解決方案

但是匯總和分片必須等待片刻。首先,我們應該記錄以太坊過去探索的第 2 層擴展解決方案,然後最終得出匯總,即以太坊的 “ 聖杯 ” 。畢竟,這就是工程的工作方式——我們提出想法、測試它們並進行迭代,直到找到可行的解決方案。

狀態通道

狀態通道已經存在了很長時間,所以它們並不是什麼新鮮事。以下是它們如何工作的快速說明。假設我們有兩個人,愛麗絲和鮑勃,他們想互相交易。愛麗絲每次發推文都會向鮑勃支付 1 美元。但是由於 Bob每天發很多推文,使用以太坊進行交易會太慢而且太貴。

相反,他們使用 “ 狀態通道 ” :

  • 愛麗絲在以太坊的智能合約中投入了 500 美元。
  • 每當 愛麗絲 想給 鮑勃 1 美元時,她都會簽署一條消息,表明她想給 鮑勃 多少錢。她一直在簽署消息,直到 鮑勃 準備好 “ 兌現 ” 他的資金。
  • 鮑勃 提交一條新消息,表明他已準備好關閉狀態通道。以太坊上的智能合約驗證愛麗絲和鮑勃的簽名,向鮑勃支付應付金額,並將其餘款項返還給愛麗絲。
萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

請注意,只有第一步和最後一步需要我們在區塊鏈上進行交易,在這些步驟之間,愛麗絲 和 鮑勃 可以向對方發送無限數量的簽名消息,指示付款。

在這種情況下,以太坊區塊鏈僅用作結算層來處理一次性付款的最終交易,這減輕了底層區塊鏈的負擔。

重點是:通過開闢一個在區塊鏈之外進行交易的渠道,我們在保持低成本的同時大幅提高了交易容量和速度。這是可能的,因為:

  • 首先,大部分交易都發生在鏈下,這意味着付款可以即時處理,因為兩方之間的鏈下更新不需要額外的時間來處理和驗證區塊鏈網絡。
  • 其次,支付產生的費用較低,因為我們只需要在打開和關閉狀態通道時進行鏈上交易。這意味着大多數交易都是在鏈下進行的,費用要低得多。

那麼,為什麼這不是最終的解決方案呢?好吧,狀態通道可以做的事情是有限制的。

例如,我們不能使用狀態通道與不屬於狀態通道的人進行交易,我們也僅限於狀態通道中可能的狀態更新類型。像 Uniswap 這樣的複雜應用程序不能在狀態通道中使用,因為當我們在 Uniswap 上交換兩個代幣時,智能合約會自動執行一系列中間步驟來進行交換,這些步驟沒有授權用戶在每個步驟上簽字。

狀態通道的另一個缺點是它們要求我們鎖定流動性以實例化通道並防止惡意交易對手可能永遠不會真正支付承諾資金的情況。這對於單一渠道來說可能沒問題,但是當我們試圖通過狀態渠道網絡進行支付時,鎖定在中間渠道中的流動性使其相當“資本效率低下”。

最後,狀態通道需要可以定期監視網絡的人(或將此責任委託給其他人)。這確保了您的資金安全,這又增加了一層複雜性和低效率。

總而言之,狀態通道適用於兩方需要在一段時間內快速、廉價地進行交易的用例(例如商家和客戶)。但鑒於它們有限的用例和資本效率低下,我們並不認為狀態通道是以太坊的最終擴展解決方案。

側鏈

側鏈也已經存在很長時間了,而且很容易理解。簡而言之,側鏈是與主區塊鏈 “ 掛鈎 ” 的獨立區塊鏈。

當我們將一個區塊鏈“掛鈎”到另一個區塊鏈時,這意味着我們可以在兩個區塊鏈之間移動資產。“單向”掛鈎是我們將資產從主區塊鏈移動到側鏈的地方,而不是其他方式。這是通過將主區塊鏈上的代幣發送到不可使用的地址來“燒掉”代幣,然後在側鏈上 “ 鑄造 ” 等價的代幣來實現的。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

那麼,“ 雙向掛鈎 ” 是我們可以將資產移入和移出主區塊鏈和側鏈的時候。這需要在主鏈上 “ 鎖定 ” 我們的代幣,然後在側鏈上 “ 鑄造 ” 等量的代幣。當我們想要轉換回原始代幣時,我們會 “ 燒掉 ” 側鏈上的代幣,然後解鎖主鏈上的代幣。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

因此,側鏈是當我們創建一個與主區塊鏈雙向掛鈎的新區塊鏈時。當我們想要更快交易時,我們可以將我們的資金從主鏈轉移到側鏈並在那裡進行交易。完成後,我們將資金轉移回主鏈。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

比特幣側鏈的一個例子是Liquid Network。Liquid Network 與比特幣掛鈎,允許更快、更便宜的比特幣支付。另一個流行的例子是Polygon,它是與以太坊掛鈎的側鏈。

當用戶想要更快交易時,他們可以鎖定一些 ETH 並在 Polygon 側鏈上創建等量的 Matic 代幣。在 Polygon 側鏈上,他們可以享受更快、更便宜的交易。當他們完成交易后,他們可以將他們的 Matic 代幣轉換回 ETH。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

注意:從技術上講,Matic 不是側鏈,因為它會定期將側鏈的狀態提交給以太坊。因此,他們喜歡稱自己為 “ 提交鏈 ”。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

總體而言,側鏈是可擴展的,因為它們通常通過使用允許可擴展性的不同共識算法在去中心化和/或安全性方面進行權衡。

對於以太坊網絡上的大量擁塞,側鏈是一個很好的權宜之計,但以太坊也不認為這是最終的可擴展性解決方案。隨着您繼續閱讀,原因將變得清晰:)

Plasma

Plasma 是另一個 “ 第 2 層 ” 解決方案,可以讓我們將交易移出基礎層。在我們進入 Plasma 之前,重要的是要注意,隨着時間的推移,Plasma 已經進行了多次迭代,每一次都有自己的權衡取捨。您可以查看Plasma世界地圖,其中列出了人們為解決Plasma帶來的挑戰而嘗試創建的許多不同類型的設計,有很多!

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

當然,為了這篇文章的目的,我必須概括 Plasma 的概念,而不是過多地關注個別的實現。如果您想深入挖掘,請務必查看世界地圖。

那麼,什麼是Plasma?Plasma 本質上是一系列在主區塊鏈之外運行的智能合約(或 “ Plasma鏈 ” )。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

Plasma 鏈就像一棵樹的樹枝,以太坊是主幹,每條 Plasma 鏈都是一個分支,每個分支都被視為具有自己的區塊鏈歷史和計算的區塊鏈。

“ 根區塊鏈 ”(即以太坊區塊鏈)使用稱為 “ 欺詐證明 ” 的東西來強制 Plasma 鏈中狀態的有效性。欺詐證明是我們提供某些數據的一種機制,任何人都可以使用數學證明來確定數據是否無效。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

每個 Plasma 區塊鏈不需要將交易數據發布到根鏈上。相反,每個 Plasma 鏈都有一個 “ 操作員 ”。這可能是一個中心化的參與者,一個代表多個人的多重簽名,甚至是一個參與成為運營商的委員會。Plasma 鏈的運營商提交 Plasma 鏈上發生的轉移的 Merkle 根。

注意:如果您不知道 Merkle(默克爾樹)樹的工作原理,那麼我強烈建議您在繼續之前閱讀此解釋器。在高層次上,Merkle 樹讓我們可以獲取一個大型數據集(例如,一個塊中的交易)並生成一個代表整個數據集的單個根哈希。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

稍後,我們可以很容易地證明來自大數據集的一條數據(即,來自一個事務塊的單個事務)存在於該數據集中,只需提供通往該數據的分支。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

如果有人試圖證明欺詐交易的存在,那麼哈希值將不匹配,我們會立即知道。

好的,回到 Plasma。

每個 Plasma 鏈都在提交發生在其上的轉移的 Merkle 根。當用戶稍後試圖將他們的資產從 Plasma 鏈移回根鏈時,用戶可以提交將資產發送給他們的最新交易的 Merkle 分支(最近的交易足以讓我們知道當前餘額在等Plasma上)。這開始了一個挑戰期,任何人都可以嘗試證明用戶的 Merkle 分支是欺詐性的。如果 Merkle 分支存在欺詐,則可以提交欺詐證明。

由於根區塊鏈僅跟蹤 Merkle 根,因此與那些發生在主鏈上的交易相比,它必須處理的數據要少得多。這顯著減少了存儲在根區塊鏈上的數據量,並使我們能夠擴展根鏈。

此外,如果某個特定的 Plasma 鏈受到惡意攻擊,人們可以從腐敗的子鏈中 “ 大規模退出 ”。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?
萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

等Plasma 比狀態通道更有利,因為您可以將資產發送給任何人,而使用狀態通道,您只能與狀態通道中的人進行交易。此外,等Plasma相對於側鏈的好處是等離子鏈由以太坊保護。

兩者(Plasma 與側鏈)的根本區別在於側鏈有自己的安全模型。他們有自己的共識機制和一組單獨的節點來驗證狀態。即使側鏈受到攻擊,主鏈也不會發生任何事情,反之亦然。如果側鏈發生攻擊,主鏈無法保護用戶。

另一方面,等Plasma具有依賴的安全模型,每個 Plasma 鏈都可以使用自己的機制來驗證交易,但它仍然使用以太坊區塊鏈作為最終的真相仲裁者。在拜占庭攻擊的情況下,等離子鏈用戶可以退出到以太坊。

但是 Plasma 有幾個缺點,使其成為一個平淡無奇的可擴展性解決方案。

首先,當用戶想要將他們的資產從 Plasma 合約轉移到以太坊主區塊鏈時,他們需要等待 7 天。這足以讓人們驗證提款交易不是欺詐性的。如果是,他們可以使用 Plasma 鏈上的 Merkle 樹構建欺詐證明。

其次,每個 Plasma 鏈都需要一個運營商將 Merkle 根承諾發布到主鏈。這需要我們依靠第三方來準確地將 Merkle 根承諾發布到鏈上。不幸的是,運營商可以執行所謂的“ 數據可用性攻擊 ”,他們出於惡意原因拒絕將某些交易發布到主鏈上。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

在這種情況下,運營商可以說服網絡接受無效塊,而無法證明無效塊。這可以防止其他用戶知道區塊鏈的準確狀態。這也阻止了人們創建區塊或交易,因為他們缺乏構建證明的信息。與欺詐不同,數據可用性攻擊並不是唯一可歸因的。我們無法知道攻擊正在發生。

運營商也可以通過更明確的方式進行惡意操作,例如通過提交欺詐性交易。在這種情況下,人們可以“大規模退出,” 如上所述。但事實證明,這些在實踐中實施起來要困難得多。如果很多用戶想要大規模退出,可能會導致主鏈擁堵,用戶可能無法及時退出,導致資金損失。

第三,Plasma 要求交易資產的所有者在場。這確保了 Plasma 鏈的安全,因為它有效地使未經所有者同意無法進行交易(例如將 ERC 20 代幣發送到批准的地址)。Plasma 最適合簡單的轉賬,但隨着交易變得越來越複雜,設計空間變得不規則。

出於上述原因,Polygon 和 OMG 網絡最初追求 Plasma 架構以進行擴展,但後來又放棄了。

正是在這種情況下,在提出了各種解決方案之後,我們得到了匯總。

匯總

就像狀態通道、側鏈和等Plasma一樣,匯總是“第 2 層”解決方案。事實上,rollup 與 Plasma 非常相似,因為我們在鏈下批量處理交易並將更新發布到主區塊鏈。然而,關鍵的區別在於,通過匯總,我們還將每批交易的交易數據發布到鏈上。使用 Plasma,我們只發布 Merkle 根。

換句話說,通過匯總,我們在鏈下進行交易處理,但我們在鏈上發布交易數據。我們在鏈上發布的數據量是本地驗證匯總交易所需的最小數量。通過將數據上鏈,任何人可以檢測欺詐、發起提款或親自開始生成交易批次。因此,匯總比 Plasma 鏈或側鏈為我們提供了更高的安全保證。

rollups 和 Plasma 之間的另一個關鍵區別是我們不必擔心數據可用性問題。畢竟,我們將交易數據發布到主鏈上。這是一個巨大的勝利。

使用匯總,我們有效地在匯總層內運行 EVM 的一個版本。這意味着以太坊上任何可能的交易都可以在匯總中執行。

這就引出了一個問題:如果我們仍然在鏈上發布交易數據,那麼這將如何擴展第 1 層?擴展性不還是受限於主鏈的數據帶寬嗎?

是的。這裡的關鍵是我們通過匯總獲得 5 到 100 倍的可擴展性,但不是無限的可擴展性。Rollups 還使用了許多花哨的壓縮技巧來最小化我們在鏈上發布的交易數據,因此鏈上的數據存儲比其他方式少得多。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

同時,我們將鏈下交易執行的所有繁重工作外包給匯總。回想一下,在交易執行期間,交易必須由以太坊虛擬機 (EVM) 處理並與狀態交互(例如存儲、賬戶餘額等)。這是昂貴的。

然而,對於匯總,我們通過在匯總中運行 EVM 的一個版本來將此執行轉移到匯總層——所以我們仍然在執行相同的執行,但匯總層的 gas 成本比以太坊便宜得多。

仔細查看匯總

現在,讓我們看看匯總是如何在幕後工作的。

主鏈上有一個“匯總合約”,用於維護匯總層的當前狀態。這包括在其上進行交易的用戶的賬戶餘額和其中存在的合約的智能合約代碼。簡而言之,匯總合約跟蹤匯總層中交易的“狀態根”。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

“狀態根”由一個鍵值映射組成,其中鍵是地址,值是賬戶。每個賬戶最多有 4 個屬性:餘額、隨機數、代碼(僅適用於智能合約)和存儲(僅適用於智能合約)。 

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

當事務發生在匯總層時,會發生狀態更改。當然,這意味着狀態根也需要更新。但不是為每筆交易更新狀態根,而是將交易“批量”發送到主鏈上的匯總合約。該批次將包括該批次事務的壓縮形式和一個更新的狀態根,該狀態根表示該批次事務處理后的數據。

主鏈上的匯總合約檢查批次中的前一個狀態根是否與其當前狀態根匹配——如果匹配,它將狀態根切換到新的狀態根。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

由於發布的交易數據實際上並沒有被 EVM 解釋,我們沒有訪問或寫入狀態——這太昂貴了。相反,我們將壓縮的交易數據作為“calldata”參數發布到匯總合約。

這就是為什麼這很整潔,在 Solidity 中,calldata(是一種數據結構存儲方式)是最便宜的存儲形式。事實上,作為 calldata 參數傳遞的參數根本不會存儲在以太坊的狀態中,這意味着我們避免了很多 gas 費用。同時,以太坊節點仍然可以在創建區塊時存儲交易數據(在歷史日誌中)。

精明的讀者可能想知道 Plasma 和匯總之間有什麼區別。這是關鍵的區別:通過匯總,我們將交易數據與狀態根一起發布到鏈上。使用 Plasma,我們只需發布交易的狀態根。

與 Plasma 不同,我們有一個將 Merkle 根發布到根鏈的操作員,rollups 允許任何人將新一批交易發布到鏈上的 rollup 合約,稍後我們將更深入地探討。

再一次,這引出了一個問題:既然我們只是將交易數據發布到主鏈而不是執行鏈上的交易,我們怎麼知道發布在主鏈上的交易數據和狀態根不是欺詐性的?

輸入:樂觀匯總和零知識匯總,每種都有自己的處理和驗證批次正確性的方式。

樂觀匯總

您可能可以根據名稱猜出樂觀匯總是什麼,當一批新的交易 “ 匯總 ” 到主鏈時,每批的狀態根和哈希都會被發布,但我們實際上並沒有驗證交易是否正確執行,至少在發布時沒有。

通過這種方式,我們 “ 樂觀地 ” 將新的狀態根和交易數據發布到主鏈上的匯總合約。當某人將新的狀態根發布到主鏈時,匯總智能合約會簡單地接受他們的話。

如果有人發現向匯總智能合約發布了無效的狀態轉換,他們可以生成 “ 欺詐證明 ”。

欺詐證明包括:

  • “ 預先狀態”的證明,或者,在應用交易之前事情的樣子
  • “ 后狀態 ” 的證明,或者,在應用交易后狀態應該如何處理
  • 在狀態轉換期間應用的交易證明

工作流程很簡單:這個欺詐證明被發布到主鏈上的匯總合約中。然後匯總合約驗證證明並將交易邏輯應用於預狀態。然後,它將結果與后狀態進行比較。如果存在不匹配,則證明發布批次的人沒有正確應用交易。然後,智能合約會還原該批次的交易以及之後的所有批次。

為此,任何將批次發布到主鏈的人都必須存入保證金,因此如果他們表現出惡意並被抓到,他們可能會被 “ 罰沒 ”。

ZK 匯總

如果樂觀匯總使用“在被證明有罪之前是無辜的”心態,那麼 ZK 匯總使用“不信任,驗證”心態。

使用 ZK 匯總,每個批次都包含一個稱為 ZK-SNARK 的加密證明,它證明狀態根是執行該批次事務的正確結果。ZK-SNARK 證明是一個哈希值,表示在 zk-rollup 層中執行交易後區塊鏈狀態的變化。該有效性證明被發布到匯總合約中,因此任何人都可以使用它來驗證匯總層上特定批次中的交易。

這裡的魔力在於 ZK-SNARK 的工作方式。它們讓我們在不泄露數據的情況下生成底層數據的證明。任何人以後都可以驗證數據是否存在,即使他們無權訪問數據本身。

ZK-SNARKS 的數學基礎很複雜,超出了我們的範圍,但如果你好奇,我鼓勵你去 Google 或 YouTube 上花點時間了解它們的工作原理。

哪個更好?

顯而易見的下一個問題是……哪個更好?很難說。各有優缺點,接下來我們來看看。

成本

“ 成本 ” 在抽象中並沒有太大的意義,但是當我們將其分解時,樂觀和 ZK 匯總的性能開始出現分歧。

  • 在鏈上發布新批次的 Gas 成本:樂觀匯總成本更低。我們樂觀地發布新的狀態根和數據,所以這是一個簡單的交易。ZK 匯總成本更高。當我們在鏈上發布新批次時,我們必須驗證 ZK-SNARK 有效性證明。這在計算上更昂貴。
  • 發布在鏈上的每筆交易的 Gas 成本:樂觀的匯總成本更高。我們必須在鏈上發布足夠的數據,以便稍後驗證欺詐證明。ZK 匯總成本更低。我們可以省略大部分交易數據,因為有效性證明足以讓任何人驗證批次的正確性。
  • 鏈下計算成本:樂觀匯總成本更低。我們只發布新的狀態根,而不是執行/驗證交易。也就是說,我們仍然需要一些人來觀察新批次的創建和新交易的執行,以確保批次的正確性。ZK 匯總成本更高。ZK-SNARK 的計算成本很高(成本高出 20 到 1000 倍,儘管隨着創新它繼續變得更便宜)。

旁註:儘管 ZK-rollups 的鏈下計算成本更高,但考慮到鏈下的 gas 價格要低得多也很重要。

速度

樂觀匯總很慢。通常,用戶必須等待大約一周才能提取他們的資產。如果用戶試圖在匯總層上提取他們實際上並不擁有的代幣,這可能會給某人足夠的發布欺詐證明的機會。

ZK 匯總很快。用戶通常等待不到 10 分鐘來提取他們的資產。我們只需要等到下一批來處理提款,因為所有的匯總狀態都已經過驗證。

旁註:有一些方法可以通過使用“快速提款”來繞過這個一周的等待期。這是通過流動性提供者完成的,他們在主鏈上維護一個 “ cookie jar ” 資金。當用戶快速提取資金時,他們給流動性提供者一張借條用於匯總中的資金,然後他們立即獲得主鏈上的流動性提供者的付款(收費)。

稍後,當一周期限結束並且用戶從匯總層取回資產時,用戶可以將欠他們的資金髮送給流動性提供者。流動性提供者甚至可以選擇運行一個驗證節點來驗證用戶在匯總上的交易,然後再在主鏈上向他們發放資金,從而進一步降低他們的風險。

然而,這種 “ 快速提現 ” 方案對於 NFT 來說是不可能的,因為任何 NFT 中只有一個存在,並且流動性提供者無法在鏈上創建相同的 NFT。

複雜

樂觀匯總更簡單,欺詐證明的概念由來已久,因此解決方案相對簡單。

ZK 匯總更複雜,ZK-SNARK 是新的並且在數學上很複雜。

廣泛性

樂觀匯總更容易廣泛化,工程師們已經構建了一個與 EVM 兼容的虛擬機,稱為 OVM(樂觀虛擬機),它允許樂觀匯總處理可以在以太坊上處理的任何事務。

ZK 匯總更難概括。使用 ZK-SNARK 證明通用 EVM 執行比證明簡單計算(如價值轉移)要困難得多。也就是說,這個領域發生了很多創新。事實上,StarkNet alpha引入了一種名為 Cairo 的新編程語言,它是以太坊上的圖靈完備 ZK 驗證器,可讓我們驗證通用計算智能合約。

可擴展性

樂觀匯總的可擴展性較差。當我們在鏈上發布數據時,它通常包括一些狀態(例如交易細節)和見證人(例如證明交易方同意的數字簽名)。使用樂觀匯總,我們必須為每筆交易發布見證,以便人們以後可以證明欺詐。見證人佔用大量存儲空間,是交易數據的 3-10 倍。

ZK 匯總更具可擴展性:我們不需要為每筆交易包括見證人,因為在計算 ZK-SNARK 時所有數字簽名都已驗證。相反,我們每批只需要一個見證人,這大大減少了存儲在鏈上的數據。

安全

樂觀匯總不太安全,樂觀匯總依賴於加密經濟學來確保鏈的安全性。換句話說,他們必須激勵人們觀看發布在鏈上的批次並檢測欺詐行為。

ZK 匯總更安全,ZK 匯總依賴於數學,它們不需要激勵。他們使用密碼學而不是密碼經濟學。

那麼,既然我們已經分解了這些,哪個更好?仍然很難說,但這證明了這些程序背後的工程師所做的偉大工作。我們有像 Optimism 和 Arbitrum 這樣的團隊正在努力開發樂觀匯總,這些已經可供以太坊開發人員使用。我們有StarkWare和Zksync這樣的公司將通用 ZK-rollups 引入以太坊。

這兩種解決方案都處於起步階段。但是樂觀匯總更接近於被採用,因為它們不太複雜並且可以用於當今的通用計算。另一方面,ZK rollups 需要一些時間才能趕上,但許多工程師會認為 ZK rollups 是一項卓越的技術。畢竟,它們依賴於數學而不是加密經濟學,而且它們比樂觀匯總更具可擴展性。

也就是說,最好的技術並不總是贏。我們不能忽視的是,一旦一項技術變得根深蒂固,它就很難被取代。樂觀的匯總肯定是領先的——所以只有時間才能證明從長遠來看哪個會 “ 贏 ”。

匯總的聰明之處

在我們討論匯總的一些持久挑戰之前,讓我們看一下匯總使用的壓縮技巧如此高效。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?
  • 隨機數:在典型的以太坊交易中,我們包含隨機數以防止雙花攻擊。Rollups 完全省略了它們,因為它們可以使用區塊鏈的先前狀態重新計算。通過這種方式,匯總儘可能用計算替換數據。
  • Gas 價格:與其以 gwei 計價(其中 1 gwei 是 10^-9 ETH),不如將 Gas 價格限制在固定的價格範圍內,從而顯著減少在交易數據中記錄 Gas 價格所需的存儲量,這真的加起來了!
  • 費用:同上。
  • To:一個地址是 20 字節長,加上 1 個字節用於 RLP 編碼。匯總可以存儲索引到地址的映射,而不是包括地址,並且只在 “ to ” 字段(例如,1234)中包括索引。這就像將坐標留給目的地,而不是渲染整個位置本身。
  • 值: “ 值 ” 字段為 9 字節,因為 ETH 和 ERC-20 代幣最多有 9 位小數。匯總可以改為把值限制為最多 3 個小數位,為我們節省 6 個字節。看起來很實用!
  • 簽名:如上所述,數字簽名的 “ 見證 ” 佔用了大量存儲空間。Rollups 可以使用 BLS簽名(簽名聚合和密鑰聚合的算法),它允許我們將許多簽名聚合為一個,這節省了大量的存儲空間!

讓我們把這一切付諸行動,使用所有這些壓縮技巧,我們可以為 ETH 傳輸減少多少字節?典型的 ETH 傳輸需要 112 個字節,但是有了這些壓縮技巧?只有 12 個字節,這幾乎提高了 10 倍的效率!

ZK rollup 可以獲得比樂觀 rollup 更多的優化,因為它們在將交易數據發布到主鏈之前進行鏈下交易驗證。他們也不需要包含交易數據的“驗證”部分;有效性證明就足夠了。所有 ZK 匯總需要存儲的是計算狀態轉換所需的數據。因此,重要的一點是匯總不僅因為它們將計算移出鏈而高效,而且因為它們非常聰明的數據壓縮技巧。

Rollups 並不完全是“聖杯”

但不要太興奮,儘管匯總非常有希望,但仍有很多問題需要解決,以下是您應該注意的一些挑戰。

可擴展性有天花板

到目前為止,您已經了解匯總和其他第 2 層解決方案(如 Plasma 和側鏈)之間的主要區別。你會記得,匯總將計算移出鏈,但將數據存儲在鏈上。這對於解決數據可用性問題非常有幫助。但是由於我們將交易數據存儲在鏈上(儘管是以非常壓縮的形式),我們仍然受到以太坊存儲容量的限制。

我們可以通過一些粗略的數學來看看理論上的 TPS 將使用匯總。

  • 以太坊區塊gas限制:1250萬gas
  • 每字節存儲在鏈上的數據成本:16 gas
  • 每個塊的最大字節數:~781,000 字節(1250 萬氣體/每字節 16 氣體)
  • 使用匯總進行 ETH 傳輸所需的數據字節:12 個字節(參見上一節中的數學)
  • 每塊交易:~65,000(每塊約 781,000 字節/每個 ETH 傳輸 12 字節)
  • 以太坊的平均出塊時間:13秒
  • 每秒交易數:~5000 TPS(每塊約 65,000 筆交易/每塊 13 秒)

當然,這個數學假設一個區塊中的所有交易都是 ETH 轉賬,並且一個區塊中除了批量匯總交易之外沒有其他任何東西,這是極不可能的。大多數區塊將包含各種交易,包括一些第 1 層交易,這些交易將花費超過 16 個氣體費用。此外,如果這些是 ZK-rollup 批次,則將不包括在鏈上驗證 SNARK 證明的成本,這大約是 500,000 gas。

儘管如此,這為您提供了使用匯總的 TPS 的起點,5,000 遠不及 Visa 顯然擁有的 65,000 TPS ,但它比今天的 TPS 以太坊要好得多。

破碎的流動性

Rollup 技術是作為獨立項目創建的,而不是由以太坊協議本身創建的。因此,將會有幾種不同的匯總技術并行存在,這就是流動性斷裂的地方。

隨着流動性從主鏈轉移到匯總,它會 “ 破壞 ” 不同匯總網絡的流動性。儘管一旦有跨匯總通信的機制就可以解決這個問題,一些聰明的工程師已經在研究這些機制!

降低可組合性

在以太坊上構建的主要好處之一是可組合性。在以太坊上構建的每個新協議都像樂高積木一樣,其他協議可以輕鬆地在其上構建。例如,這就是讓 DeFi 如此強大的原因。它讓我們創造了金錢樂高積木。

當應用程序和流動性轉移到匯總時,我們會失去一些可組合性。畢竟,在匯總層和主鏈之間傳遞消息和事務並不像在基礎層的上下文中那樣容易。

但解決這個問題可能只是時間問題。我當然可以看到一個存在於不同匯總上的智能合約仍然可以相互通信的世界。與往常一樣,我們離解決這些問題只有幾個聰明的工程師。

集權

我們忽略了討論誰實際負責將新批次發布到主鏈的部分,所以讓我們回到這個話題。

大多數匯總依賴於 “ 定序器 ” 來完成這項工作:定序器是一個節點,它對交易進行批處理並將結果發布到鏈上的匯總合約。對於 Arbitrum、Optimism 和 StarkNet,sequencer 是它們自己運行的單個節點。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

我知道。“ 去中心化 ” 是區塊鏈的核心,雖然效率很高,但顯然是非常中心化的,如果定序器出現故障或審查交易怎麼辦?

好吧,事情沒那麼簡單。這些項目目前採用這條路線的原因是因為使用這種方法進行迭代更容易、更快捷。為了降低集中化的風險,隨着時間的推移,大多數匯總都希望對排序器進行某種去中心化——其中許多確實有這樣做的計劃。

測序儀的去中心化將如何運作?有幾種方法。一方面,我們可以創建一個類似 Proof-of-Stake 的系統,在該系統中,測序人員必須質押代幣才能有機會提出下一批。或者我們可以進行 Delegated-Proof-of-Stake,其中一個排序器被選舉出來,如果它做得不好,可以不被選舉。

總而言之,測序儀將如何去中心化還有待觀察!

並排比較

呸。希望您對匯總有更好的理解——以及為什麼以太坊將其押注(和分片!)作為可擴展性解決方案。當然,Rollups 坐在它之前的巨人的肩膀上——如果沒有側鏈、狀態通道和 Plasma,我們就不會擁有它。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

使用去中心化、安全性和可擴展性的“三難”框架將匯總與其他第 2 層解決方案進行比較也是有益的。除了我將添加一個額外的維度:通用性。多年來,我們已經意識到第 2 層解決方案的通用性非常重要,這樣它就可以用來做任何可以在主鏈上做的事情。

萬字長文詳解以太坊各類Rollup解決方案,誰更有希望成為最後的大贏家?

這清楚地表明,Rollups 在不犧牲去中心化、安全性和通用性的情況下為我們提供了適度的可擴展性。 

然而,權衡是可擴展性。因為我們仍然在鏈上存儲數據,所以與在鏈下存儲數據的第 2 層擴展解決方案相比,我們的可擴展性受到限制。此外,在短期內,匯總依賴於集中式排序器,這降低了安全性。但這是一個短期問題,隨着時間的推移,rollup 很可能會分散排序器,使其成為優於 Plasma、側鏈和狀態通道的技術。

那麼匯總是聖杯嗎?我會讓你決定。

PS..

為了簡潔起見,我省略了很多關於匯總如何工作的有趣細節。但我也遺漏了一個新的第 2 層擴展方案,稱為 “ Validium ”。

Validium 與 Plasma 的相似之處在於我們將數據和計算移至鏈下。關鍵區別在於 Validium 不依賴欺詐證明來驗證交易。相反,運營商需要使用零知識證明來做出新的狀態承諾,這使得操作員無法推進無效的狀態轉換。

它還消除了對 “ 大規模退出 ” 計劃或協議中長期退出延遲的需要。但是我們仍然獲得了 Plasma 鏈的無限可擴展性,因為我們沒有將交易數據存儲在鏈上。總之,值得一提,我鼓勵你閱讀它!

結論

這篇文章比我預期的要長得多,如果您仍在閱讀,那麼您就是我喜歡的類型。

儘管篇幅較長,但這確實是您對匯總有基本了解所需了解的最低限度。畢竟,匯總只是以太坊可擴展性解決方案的一半。另一半是分片,如果您對構建 Web 3.0 應用程序感興趣,請註冊我們的下一個DappCamp隊列,在那裡您將學習如何在以太坊上構建和部署安全的智能合約。

本文鏈接:https://www.8btc.com/article/6734992

轉載請註明文章出處

(0)
上一篇 2022-03-10 21:07
下一篇 2022-03-10 22:06

相关推荐