header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
掃碼下載APP
Partnered With:

區塊鏈擴展的下一個前沿:深入探索ZK Rollups

閱讀本文需 24 分鐘
1. 零知識證明(ZKPs)在區塊鏈領域的應用被廣泛討論,但其在實現隱私和可擴展性方面的實際效果存在誤解。 2. ZK rollups 主要利用了 ZKPs 的簡潔性屬性,而非零知識屬性,這意味著交易資料和帳戶資訊並沒有完全實現隱私保護。 3. 對於某些類型的去中心化應用程式(DApps),如 Web3 遊戲和 DeFi 借貸協議,使用 ZK rollups 可能不是最佳選擇,因為產生 ZKPs 的過程可能會成為效能瓶頸或影響服務。 4. 在目前的 ZK Rollups 實作中,零知識原則並沒有完全遵循,尤其是在序列器、提供者和 rollup 節點等組成部分中,使用者的交易細節和帳戶資訊可能無法得到充分保護。 5. 儘管 ZK 技術在理論上具有潛力,但在實際應用中仍面臨技術和實用性的挑戰,需要進一步的技術進步和最佳化才能充分發揮其優勢。
原文標題: ZK Rollups: Elephant In the Room
原文作者:Jaehyun Ha
原文編譯:深潮TechFlow


摘要


· 雖然零知識證明(ZKPs)有望打造一個更私密和可擴展的區塊鏈生態系統,但許多關於零知識(ZK)的方面被誤解或與普遍認知中的實施方式不同。


· ZKPs 主要有兩個面向:「零知識」和「簡潔性」。雖然這種說法沒有錯,但大多數 ZK rollups 只利用了簡潔性屬性,交易資料和帳戶資訊並沒有完全保持零知識或私密。


· 對於各種類型的 DApps,ZK rollups 可能不是最佳的開發堆疊選擇。例如,產生 ZKPs 可能成為快速終結的瓶頸,從而降低 Web3 遊戲的效能,而基於狀態差異發布的數據可用性保證方法可能會損害 DeFi 借貸協議的服務。


圖1:ZK 是個很好的流行字
來源:imgflip


區塊鏈產業的當前狀態可以比喻為零知識(ZK )時代。 無論你走到哪裡,ZK 都很突出,找到不將 ZK 納入其名稱的下一代區塊鏈項目變得越來越罕見。從技術角度來看,無可否認,ZK 是一項有前景的技術,能夠為更具可擴展性和隱私性的區塊鏈生態系統做出貢獻。然而,由於ZK 的複雜技術背景,許多投資者,無論是散戶還是機構,常常基於“相信”這看起來很酷、新穎且可能解決區塊鏈三難問題而投資於ZK 項目,而沒有完全理解ZK 技術如何使每個專案受益。


在這個 ZK 系列中,我們將探討 ZK rollups 的難以忽視的事實(缺點和劣勢)及其有益的應用。首先,我們將解析區塊鏈中 ZK 證明(ZKPs)的兩個核心屬性:「零知識」和「簡潔性」。然後,我們將討論目前在服務中的大量 ZK rollups 為何沒有真正利用「零知識」方面。接下來,我們將研究在哪些領域應用 ZK rollup 比較有害而非有益,避免實施複雜性等眾所周知的問題。最後,我們將突出那些有效體現 ZK 原則並實際從使用 ZK 技術中獲得明顯好處的傑出項目。


回顧:ZK Rollups 中的交易生命週期


Rollup 是擴展解決方案,透過在鏈外執行交易束然後將最新L2 狀態的摘要資料儲存在L1 上來解決L1 的吞吐量限制。其中,ZK Rollups 的突出特點是能夠透過在鏈上提交鏈下計算的有效性證明來快速提取資金。在我們深入研究 ZK rollups 的問題之前,讓我們先簡單回顧一下它的交易生命週期。


圖2:ZK rollups 中的交易生命週期
來源:Presto 研究中心


1. 每個L2 使用者產生並提交他們的交易給序列器。


2. 序列器聚合並排序多個交易,然後在鏈下執行這些交易以計算新的 rollup 狀態。隨後,序列器將這個新的 rollup 狀態以「批次」形式提交到鏈上狀態智能合約,並壓縮相應的 L2 交易資料成為資料區塊以確保資料可用性。


3. 這個批次被送到證明者,證明者創建該批次執行的有效性證明(或 ZKP)。然後,這個有效性證明連同額外資料(即先前的狀態根)一起發送到 L1 的驗證者智慧合約,這有助於驗證者識別它正在驗證的內容。


4. 在驗證者合約檢查證明有效後,rollup 的狀態會被更新,且已提交批次中的 L2 交易被視為已完成。


(請注意,這種解釋是ZK Rollup 過程的簡化版本,每種實作可能因協議而異。如果我們區分角色,L2 中可能有更多實體,如聚合器、執行器和提議者。器具有強大的權威來執行交易,並且還產生統一的資料塊格式為批次。 ZK-SNARKs 或ZK-STARKs),ZK Rollups 可以透過驗證一個簡單的證明來驗證數千個交易的執行正確性,而無需重播所有交易。那麼,這個 ZKP 是什麼,它有什麼特性呢?


ZKPs 的兩個屬性:零知識和簡潔


顧名思義,ZKP 基本上是一種證明。證明可以是任何能夠充分支持提供者聲明的東西。假設 Bob(提供者)想要讓 Alice(驗證者)相信他對自己的筆記型電腦有權威。證明這一點最簡單的方法是,Bob 只告訴 Alice 密碼,Alice 在筆記本上輸入密碼並驗證 Bob 確實有權限。然而,這個驗證過程對 Alice 和 Bob 來說都是不滿意的。如果 Bob 設定了一個非常長且複雜的密碼,Alice 要正確輸入將非常具有挑戰性(假設 Alice 不能複製貼上)。更現實的是,Bob 可能不願意透露他的密碼給 Alice 以證明他的權限。


如果有驗證過程,Alice 可以迅速驗證電腦的權限,而無需 Bob 透露他的密碼呢?例如,Bob 可以在 Alice 面前用指紋辨識解鎖筆記型電腦,如圖 3 所示(注意這不是 ZKP 的完美範例)。這就是 Alice 和 Bob 都可以從 ZKPs 的兩個關鍵屬性中受益的地方:零知識屬性和簡潔屬性。


圖3:零知識與簡潔性的高階直覺
來源:imgflip


零知識(ZK)


零知識屬性指的是提供者生成的證明除了證明的有效性外,不會洩露關於秘密見證人(即私有數據)的任何信息,使驗證者對數據一無所知。在區塊鏈中,這項屬性可以用於保護個人用戶的隱私。如果對每筆交易應用ZKPs,用戶可以證明他們的行為的合法性(即證明一個用戶有足夠的資金進行交易)而不暴露他們的交易細節(例如轉帳、帳戶餘額更新、智能合約部署和執行)給公眾。


簡潔性


簡潔性屬性指的是ZK 能夠從大尺寸的聲明生成一個短小且快速驗證的證明,換句話說,它將大的東西壓縮成緊湊的形式。在區塊鏈中,這一點特別用於 rollups。使用 ZKPs,L2 中的驗證者可以透過向 L1 中的驗證者提交一個簡潔的證明來聲稱交易的正確執行(TB 級交易的有效性可以用 10~100 KB 的證明表示)。然後,驗證者可以透過驗證簡潔的證明而不是重播所有交易,在短時間內(即 10 毫秒至 1 秒)輕鬆確認執行的有效性。


ZK Rollup 很棒,但不代表隱私性


上述ZKP 的特性在ZK Rollups 中得到了很好的利用。雖然驗證者無法從提供者接收的 ZKP 中推斷原始交易數據,但驗證簡潔的證明允許他們有效地驗證提供者的聲明(即新的 L2 狀態)。也就是說,斷言當前的 ZK Rollups 完全遵循零知識和簡潔性屬性是誤導性的。這可能在專注於提供者與驗證者之間的互動時是正確的,但 ZK Rollups 中還存在其他組成部分,例如序列器、提供者和 rollup 節點。那麼,「零知識」原則也為他們確保了嗎?


在任何ZK Rollups 中用ZKPs 實現完全隱私的挑戰來自於,如果其他部分保持公開而某些部分通過ZK 變為私有時可能出現的妥協。 想想 ZK Rollups 中的交易生命週期,當交易從使用者發送到序列器時,隱私是否得到維護?對於提供者呢?或者當 L2 批次提交到 DA 層時,個別帳戶資訊的隱私是否受到保護?目前這些情況都不成立。


圖4:ZK rollups 中的隱私外洩
來源:Presto 研究


在大多數主流的ZK Rollups 中,序列器或提供者(或其他具有強大權限的集中化實體)能清楚看到交易細節,包括轉帳金額、帳戶餘額更新、合約部署和執行。舉一個簡單的例子,你可以透過造訪任何 ZK Rollup 區塊瀏覽器輕鬆觀察到所有提到的細節。不僅如此,考慮一種情況,集中式序列器某種原因停止服務,另一個 rollup 節點試圖恢復 rollup 狀態。它將從 DA 層(在大多數情況下是 L1 Ethereum)公開發布的 L2 數據中提取信息,並重建 L2 狀態。在這個過程中,任何能夠重播 DA 層儲存的 L2 交易的節點都能恢復關於每個使用者帳戶狀態的資訊。


因此,「零知識」的術語在目前的 ZK Rollups 中以碎片化的形式實施。雖然這不能被認為是錯誤的,但很明顯,它與「ZK 意味著零知識等同於完全隱私」的普遍認知不同。目前ZK Rollups 的新穎之處在於利用「簡潔性」屬性而不是「零知識」,即在鏈下執行交易,並為驗證者產生簡潔的證明,以便他們可以快速且可擴展地驗證執行的有效性,而無需重新執行它們。


出於這個原因,一些ZK Rollups,如Starknet,將自己稱為“有效性Rollups”,以避免混淆,而確保真正ZK 隱私的其他,如Aztec,將自己標記為ZK-ZK rollups。


深入考慮ZK Rollups 的實用性


如前文所提到的,大多數ZK Rollups 並未完全實現ZK 隱私。那麼,我們的下一個目標是什麼呢?透過在 Rollup 的每個部分全面部署 ZK 來實現完全的交易隱私?事實上,這並不是一個簡單的問題。除了需要顯著的技術進步以進一步成熟技術外,ZK 在意識形態(例如私人交易的非法使用)和實用性(例如它真的有用嗎?)方面仍存在爭議問題。鑑於討論完全交易隱私的道德問題超出了本文的範圍,我們將關注區塊鏈項目中遇到的 ZK Rollups 的兩個實用性問題。


第1 點:產生ZKP 可能是快速確定性的瓶頸


首先讓我們討論ZK Rollups 本身的實用性。 ZK Rollups 最引人注目的賣點是由於其交易的「快速終結」而使資產提取延遲時間縮短,這得益於 ZKP。提高的 TPS 和低交易費用是額外好處。最有效利用 ZK Rollups 特性的領域是遊戲產業,因為遊戲內的貨幣存取非常頻繁,每秒都會產生大量的遊戲內交易。


但 ZK Rollups 真的可以被認為是遊戲的最佳技術堆疊嗎?對此,我們需要更深入地思考 ZK Rollups 中的「快速終結」概念。想像一下,一個使用者正在享受運行在基於 ZK Rollup 的技術堆疊的 Web3 遊戲。用戶將遊戲內物品交易成遊戲幣,並試圖從遊戲中提取該資產。


要提取資產,遊戲內交易必須終結。這意味著交易必須包含在新的 Rollup 狀態承諾中,相應的 ZKP 應提交到 L1,並且需要等待 L1 以太坊中證明的終結,以確保交易不可逆轉。如果所有這些過程能瞬間發生,那麼我們就能實現 ZK Rollups 常被吹噓的「即時交易確認」,允許用戶立即提取資產。


然而,現實遠非如此。根據 L2beat 提供的不同 ZK Rollups 的終結時間統計數據,zkSync Era 大約需要 2 小時,Linea 需要 3 小時,而 Starknet 平均需要約 8 小時。這是因為產生一個 ZKP 需要時間,將更多交易包含在一個批次(即單一證明)中以減少交易費用也需要額外時間。換句話說,產生和提交證明的速度是實現 ZK Rollups 快速終結的潛在瓶頸,這可能會降低 Web3 遊戲中的使用者體驗。


圖5:ZKP 產生可能是ZK rollups 快速確定性的潛在瓶頸
來源:imgflip


另一方面,像Ronin 這樣為遊戲優化的鏈(支援如Pixels 和Axie Infinity 等Web3 遊戲)確保了超快終結,同時犧牲了去中心化和安全性。 Ronin 不是基於 ZK 或 Rollup 的鏈:它是一個在 PoA(權威證明)+ DPoS(委託權益證明)共識演算法下運行的 EVM 區塊鏈。它根據委託的股份數量選擇 22 個驗證者,然後這些驗證者以 PoA 方式(即僅在 22 個驗證者之間的投票過程)生成和驗證區塊。因此,在 Ronin 上,交易能夠迅速完成終結,幾乎沒有延遲被包含在區塊中,驗證時間很短。在 Shillin 硬分叉後,平均每個交易只需要 6 秒就能完成終結。 Ronin 實現了所有這些,而無需 ZKP。


當然,Ronin 也有缺點。由中心化驗證者管理使其相對更容易受到 51% 攻擊的威脅。此外,由於它不使用以太坊作為結算層,它無法繼承以太坊的安全性。使用跨鏈橋也存在安全風險。但從使用者的角度來看:他們會在意這些嗎?目前沒有去中心化排序的 ZK Rollups 也存在單點故障(SPOF)問題。以太坊為它們提供了保證,因為它減少了交易回滾的可能性,但如果中心化的序列器或驗證者出現故障,ZK Rollups 也會凍結。再次注意,ZK Rollups 中的“ZK”僅用於驗證執行正確性的有效性。如果有另一個專案提供相同的功能但更快更便宜,ZK Rollups 可能不再被 Web3 遊戲使用者和開發者視為首選技術堆疊。


第2 點:發布狀態差異是一把雙面刃


另一點是ZK Rollup 協定實現的實用性。其中,這裡我們將重點放在狀態差異發布,這是在 ZK rollups 中確保資料可用性的方法之一(參見 Unlocking Dencun Upgrade: Unseen Truth of Scaling DA Layers, Jaehyun Ha, 12Apr24)。


理解 Rollups 中資料可用性的一個簡單方法是想像一個業餘登山者證明並記錄他攀登珠穆朗瑪峰的過程。最簡單的方法是從基地營到山頂的每一步都錄製成影片。儘管視訊檔案可能很大,但任何人都可以驗證登山者的攀登過程,並可能重播錄影。這個比喻可以類比於確保資料可用性的原始交易資料發布方法。 Optimistic Rollups 遵循此方法,以便個別挑戰者重播並驗證正確的執行,因為無法信任序列器的狀態承諾。在 ZK Rollups 中,Polygon zkEVM 和 Scroll 採用這種方法,在 L1 上以壓縮形式儲存原始 L2 交易數據,以便在需要時任何人都可以重播 L2 交易以恢復 Rollup 的狀態。


回到業餘登山者的例子,另一種驗證方法可能是一位著名的登山者與業餘登山者一起攀登珠峰,以向世界證明登山確實完成。由於攀登已經由可信的個人證實,登山者不再需要記錄每一步以作記錄。只需在起點和山頂拍攝一張照片即可,其他人就會認為登山者已經到達了山頂。這個比喻反映了用於確保資料可用性的狀態差異方法。在 ZK Rollups 中,zkSync Era 和 StarkNet 採用這種方法,僅儲存 L2 交易在 L1 上執行前後的狀態差異,以便在必要時任何人都可以從初始狀態計算狀態差異以恢復 Rollup 的狀態。


圖6:原始交易發布與狀態差異發布
來源:Presto 研究


這種狀態差異方法無疑在成本上比原始交易資料發布方法有利,因為它可以省去儲存中間交易的步驟,從而減少L1 的儲存成本。儘管這通常不是問題,但這裡還是有一個潛在的缺陷:這種方法不允許恢復完整的 L2 交易歷史,這對某些 DApp 來說可能是一個問題。


以 Compound 這個 DeFi 借貸協議為例,假設它是建立在基於狀態差異的 ZK Rollup 技術堆疊之上的。這些協議需要完整的交易歷史以每秒計算供應和借貸利率。但是,如果 ZK Rollup 序列器發生故障,其他 Rollup 節點試圖恢復最新狀態會發生什麼?它可能會恢復狀態,但利率將被不準確地恢復,因為它只能追蹤批次之間的快照而不是每個中間交易。


結論


本文主要斷言,大多數當今的ZK Rollups 中並不存在「ZK 」,在DApp 中的許多地方,使用ZKP 和ZK 程式可能不是最佳選擇。 ZK 技術可能因被指責而感到無辜,因為它本身並沒有什麼問題,只是在利用其技術進步的過程中,它可能會帶來 DApp 的潛在性能下降。然而,這並不是說 ZK 技術對這個行業毫無用處。當 ZKPs 和 ZK rollups 最終技術成熟時,它們肯定可以提供更好的解決方案來解決區塊鏈三難問題。實際上,目前已有基於 ZK 的專案維護了 ZK 隱私,也有許多類型的 DApp 有效利用了 ZKP 和 ZK 卷積的優勢。


原文連結


歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

举报 糾錯/舉報
選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交