WEEX 唯客博客, 原標題:《[ZK series – 1] ZK Rollups: Elephant In the Room》 作者:Jaehyun Ha 編譯:深潮TechFlow 摘要 雖然零知識證明(ZKPs)有望打造一個更加私密和可擴展的區塊鏈生態系統,但許多關於零知識(ZK)的方面被誤解或與普遍認知中的實施方式不同。 ZKPs主要有兩個方面:「零知識」和「簡潔性」。雖然這種說法沒有錯,但大多數ZK rollups只利用了簡潔性屬性,交易數據和賬戶信息並沒有完全保持零知識或私密。 對於各種類型的DApps,ZK rollups可能不是最佳的開發堆棧選擇。例如,生成ZKPs可能成為快速終結的瓶頸,從而降低Web3遊戲的性能,而基於狀態差異發布的數據可用性保證方法可能會損害DeFi借貸協議的服務。 圖 1:ZK 是一個很好的流行詞 區塊鏈行業的當前狀態可以比喻為零知識(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 中的交易生命周期 每個L2用戶生成並提交他們的交易給序列器。 序列器聚合併排序多個交易,然後在鏈下執行這些交易以計算新的rollup狀態。隨後,序列器將這個新的rollup狀態以「批次」形式提交到鏈上狀態智能合約,並壓縮相應的L2交易數據成為數據塊以確保數據可用性。 這個批次被發送給證明者,證明者創建該批次執行的有效性證明(或ZKP)。然後,這個有效性證明連同額外數據(即之前的狀態根)一起發送到L1的驗證者智能合約,這有助於驗證者識別它正在驗證的內容。 在驗證者合約檢查證明有效后,rollup的狀態會被更新,且已提交批次中的L2交易被視為已完成。 (請注意,這種解釋是ZK Rollup過程的簡化版本,每種實現可能因協議而異。如果我們區分角色,L2中可能有更多實體,如聚合器、執行器和提議者。數據塊的層級也可能不同,如塊、塊組和批次,具體取決於它們的用途。上述解釋假設了一個情況,即一個集中式序列器具有強大的權威來執行交易,並且還生成統一的數據塊格式為批次。) 與Optimistic Rollups不同,得益於ZKPs(例如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:零知識和簡潔性的高級直覺 零知識(ZK) 零知識屬性指的是提供者生成的證明除了證明的有效性外,不會泄露關於秘密見證人(即私有數據)的任何信息,使驗證者對數據一無所知。在區塊鏈中,這一屬性可以用於保護個人用戶的隱私。如果對每筆交易應用ZKPs,用戶可以證明他們的行為的合法性(即證明一個用戶有足夠的資金進行交易)而不暴露他們的交易細節(例如轉賬、賬戶餘額更新、智能合約部署和執行)給公眾。 簡潔性 簡潔性屬性指的是ZK能夠從大尺寸的聲明生成一個短小且快速驗證的證明,換句話說,它將大的東西壓縮成緊湊的形式。在區塊鏈中,這一點特別用於rollups。使用ZKPs,L2中的驗證者可以通過向L1中的驗證者提交一個簡潔的證明來聲稱交易的正確執行(TB級交易的有效性可以用10~100 KB的證明表示)。然後,驗證者可以通過驗證簡潔的證明而不是重播所有交易,在短時間內(即10毫秒至1秒)輕鬆確認執行的有效性。 ZK Rollup很棒,但並不意味著隱私性 上述ZKP的特性在ZK Rollups中得到了很好的利用。雖然驗證者無法從提供者接收的ZKPs中推斷原始交易數據,但驗證簡潔的證明允許他們有效地驗證提供者的聲明(即新的L2狀態)。也就是說,斷言當前的ZK Rollups完全遵循零知識和簡潔性屬性是誤導的。這可能在專註於提供者與驗證者之間的互動時是正確的,但ZK Rollups中還存在其他組成部分,如序列器、提供者和rollup節點。那麼,「零知識」原則也為他們確保了嗎? 在任何ZK Rollups中用ZKPs實現完全隱私的挑戰來自於,如果其他部分保持公開而某些部分通過ZK變為私有時可能出現的妥協。想想ZK Rollups中的交易生命周期,當交易從用戶發送到序列器時,隱私是否得到維護?對於提供者呢?或者當L2批次提交到DA層時,個別賬戶信息的隱私是否得到保護?目前這些情況都不成立。 圖 4:ZK rollups 中的隱私泄露 在大多數主流的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 快速確定性的潛在瓶頸 另一方面,像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:原始交易發布與狀態差異發布 這種狀態差異方法無疑在成本上比原始交易數據發布方法有利,因為它可以省去存儲中間交易的步驟,從而減少L1的存儲成本。儘管這通常不是問題,但這裡還是有一個潛在的缺陷:這種方法不允許恢復完整的L2交易歷史,這對某些DApps可能是一個問題。 以Compound這個DeFi借貸協議為例,假設它是建立在基於狀態差異的ZK Rollup技術棧之上的。這些協議需要完整的交易歷史以每秒計算供應和借貸利率。但是,如果ZK Rollup序列器出現故障,其他Rollup節點試圖恢復最新狀態會發生什麼?它可能恢復狀態,但利率將被不準確地恢復,因為它只能跟蹤批次之間的快照而不是每個中間交易。 結論 本文主要斷言,大多數當今的ZK Rollups中並不存在「ZK」,在 DApp 中的很多地方,使用 ZKP 和 ZK 程序可能不是最佳選擇。ZK技術可能因被指責而感到無辜,因為它本身並沒有什麼問題,只是在利用其技術進步的過程中,它可能會帶來DApps的潛在性能下降。然而,這並不是說ZK技術對這個行業毫無用處。當 ZKPs 和 ZK rollups 最終技術成熟時,它們肯定可以提供更好的解決方案來解決區塊鏈三難問題。實際上,目前已有基於 ZK 的項目維護了 ZK 隱私,也有許多類型的 DApps 有效利用了 ZKP 和 ZK 卷積的優勢。 WEEX唯客交易所官網:weex.com
ZK Rollups:房間里的大象
Previous: 摩根士丹利公布 2.7 億美元 GBTC 持倉,系 GBTC 最大持有者之一