ZK Rollups:房間里的大象

中級5/28/2024, 2:49:18 AM
零知識證明有可能創建一個更加私密和可擴展的區塊鏈生態系統。然而,零知識的許多方面被誤解或與通常認為的實現不同。本文從零知識和簡潔兩個主要角度分析了ZKP。當 ZKP 和 ZK rollup 最終在技術上成熟時,它們肯定會提供更好的解決方案來解決區塊鏈三難困境。

轉發原文標題 '[ZK series - 1] ZK Rollups: Elephant In the Room'

總結

  • 雖然零知識證明 (ZKP) 有望實現更加私密和可擴展的區塊鏈生態系統,但 ZK 的許多方面被誤解或實現的方式與通常認為的不同。
  • ZKP有兩個主要方面:「零知識」和「簡潔」。雖然沒有錯,但大多數 ZK rollups 只利用了簡潔性屬性;交易數據和帳戶信息並非完全保密或私密。
  • ZK rollups 可能不是作為每種 DApp 的開發堆疊的最佳選擇。例如,生成 ZKP 可能會成為快速終結的瓶頸,從而降低 Web3 遊戲的性能,而基於狀態差異發佈的數據可用性保證方法可能會減損 DeFi 借貸協定的服務。

圖 1:ZK 是一個很好的流行語


(來源: imgflip)

區塊鏈行業的現狀可以比作零知識(ZK)時代。放眼望去,ZK舉目驚心......越來越少能找到不將ZK納入其名稱的下一代區塊鏈專案。從技術角度來看,不可否認,ZK是一項很有前途的技術,能夠為更具可擴展性和私有性的區塊鏈生態系統做出貢獻。然而,由於ZK複雜的技術背景,許多投資者,無論是散戶還是機構投資者,經常發現自己投資ZK專案是基於「信念」,即它看起來很酷,很新,可能會解決區塊鏈三難困境,而沒有完全掌握ZK技術如何使每個專案受益。

在這個 ZK 系列中,我們將探討 ZK rollup 的不便真相(缺點和缺點)和有益的應用。首先,我們將解讀區塊鏈的ZK證明(ZKPs)的兩個核心屬性:“零知識”和“簡潔性”;然後,我們將討論當前服務的大量 ZK rollup 實際上並沒有利用「零知識」 方面。接下來,我們將研究應用 ZK rollup 弊大於利的領域,避免實現複雜性等眾所周知的問題。最後,我們將重點介紹有效體現 ZK 原則並實際展示其使用 ZK 技術的切實好處的示範專案。

回顧:ZK Rollups 中的事務生命週期

Rollups 是一種擴展解決方案,它通過在鏈下執行交易包,然後在 L1 上存儲最新 L2 狀態的摘要數據來解決 L1 的輸送量限制。其中,ZK rollups通過提交鏈下計算的有效性證明,能夠及時提取資金。在我們深入研究 ZK rollup 的問題之前,讓我們簡要回顧一下它的事務生命週期。

圖 2:ZK 匯總中的事務生命週期


(來源: Presto Reserach)

  1. 每個 L2 使用者生成交易並將其提交給排序器。
  2. 排序器聚合併訂購多筆交易,然後通過在鏈下執行它們來計算新的匯總狀態。隨後,排序器以「批處理」的形式將這個新的匯總狀態提交到鏈上狀態智能合約中,同時將相應的 L2 交易數據壓縮成 blob 以確保數據可用性。
  3. 批處理被發送到證明者,證明者創建批處理執行的有效性證明(或 ZKP)。然後,該有效性證明與額外數據(即先前的狀態根)一起發送到 L1 的驗證器智慧合約,這有助於驗證器識別它正在驗證的內容。
  4. 在驗證者合約檢查證明是否有效后,將更新匯總的狀態,並將提交批處理中的 L2 事務視為已完成。

(請注意,此說明是完整 ZK 匯總過程的簡化版本,每個實現都可能因協定而異。如果我們分離角色,L2 中可以有更多的實體;例如聚合器、執行器和提議器。數據塊的層也可能有所不同,例如塊、塊和批處理,具體取決於它們的用途。上述解釋假設了這樣一種情況,即集中式排序器具有執行事務的強大許可權,並且還以批處理的形式生成統一的數據塊格式。

與樂觀匯總不同,藉助 ZKP(例如 ZK-SNARK 或 ZK-STARK),ZK 匯總只需驗證一個簡單的證明即可驗證數千筆交易的執行正確性,而無需重放所有交易。那麼,這個ZKP是什麼,它有什麼特點呢?

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

顧名思義,ZKP基本上是一個證明。證據可以是任何能夠充分支持證明者主張的東西。假設 Bob(證明者)想說服 Alice(驗證者)關於他的筆記型電腦的權威性。證明這一點的最簡單方法是 Bob 只需告訴 Alice 密碼,Alice 在筆記型電腦上鍵入密碼並驗證 Bob 是否具有許可權。但是,此驗證過程對 Alice 和 Bob 來說都不令人滿意。如果 Bob 設置了一個非常長且糾結的密碼,那麼 Alice 要正確輸入密碼將是非常具有挑戰性的(假設 Alice 無法複製和粘貼)。更現實的是,鮑勃可能不願意向愛麗絲透露他的密碼以證明他的權威。

如果有一個驗證過程,Alice 可以快速驗證計算機的許可權,而 Bob 不必透露他的密碼,該怎麼辦?例如,Bob 只需在Alice面前點擊手指即可解鎖帶有 Touch ID 的筆記型電腦,如圖 3 所示(請注意,這不是 ZKP 的完美示例)。在這裡,Alice 和 Bob 都可以從 ZKP 的兩個關鍵屬性中受益:零知識屬性和簡潔屬性。

圖3:零知識和簡潔的高級直覺


(來源: imgflip)

零知識

屬性「零知識」是指證明者生成的證明沒有透露任何關於秘密證人(即私人數據)的情況,使驗證者除了證明的有效性之外對數據一無所知。在區塊鏈中,此屬性可用於保護個人用戶的隱私。如果每筆交易都應用了ZKP,使用者可以證明其行為的合法性(即證明使用者有足夠的資金進行交易),而無需向公眾暴露其交易細節(例如,轉帳、賬戶餘額更新、智慧合約部署和智慧合約執行)。

簡明扼要

另一個屬性“簡潔性”是指 ZK 能夠從大規模的索賠中生成簡短且快速驗證的證明。換句話說,它是將大的東西整合成緊湊的東西。在區塊鏈中,這在匯總中特別有用。使用 ZKP,L2 中的證明者可以通過向 L1 中的驗證者提交簡潔的證明來聲明交易的正確執行(交易的 TB 有效性可以用 10~100 KB 的證明來表示)。然後,驗證者可以通過驗證簡潔的證明而不是重放所有交易,在短時間內(即 10ms~1s)輕鬆確認執行的有效性。

ZK Rollup 很棒,但並不意味著隱私

前面提到的 ZKP 特性在 ZK rollup 中得到了很好的利用。雖然驗證者無法從證明者那裡收到的 ZKP 推斷原始交易數據,但驗證簡潔的證明使他們能夠有效地驗證證明者的聲明(即新的 L2 狀態)。也就是說,ZK rollup 在其當前反覆運算中完全遵循零知識和簡潔屬性的斷言具有誤導性。當只關注證明者和驗證者之間的交互時,這可能是正確的,但 ZK rollup 中也存在其他元件,例如 sequencer、proover 和 rollup 節點。“零知識”原則是否也對他們有保證?

在任何 ZK rollup 中,使用 ZKP 實現完全隱私的挑戰來自於如果其他部分保持公開,而某些部分由 ZK 私有化,則可能會受到損害。想想 ZK rollups 中的事務生命週期——當事務從用戶發送到排序器時,隱私是否得到維護?對於證明者來說呢?或者,當 L2 批次提交到 DA 層時,是否保留了單個帳戶信息的隱私?目前沒有一種情況成立。

圖 4:ZK rollup 中的隱私洩露


(來源: Presto Research)

在大多數主流的 ZK 匯總中,排序器或證明者(或其他一些具有強大許可權的中心化實體)可以清楚地看到交易細節,包括轉帳金額、賬戶餘額更新、合約部署和合約執行。舉個簡單的例子,您可以通過訪問任何 ZK rollup 塊瀏覽器輕鬆觀察所有提到的細節。不僅如此,還要考慮集中式排序器以某種方式停止服務,而另一個 rollup 節點嘗試恢復 rollup 狀態的情況。它將從 DA 層(在大多數情況下是 L1 乙太坊)中獲取公開發佈的 L2 數據,並重建 L2 狀態。在此過程中,任何能夠重放存儲在 DA 層的 L2 交易的節點都可以恢復有關每個使用者帳戶狀態的資訊。

因此,術語「零知識」在當前的 ZK 匯總中以碎片形式實現。雖然這不能被認為是不正確的,但很明顯,它與人們普遍認為的“ZK意味著零知識,等於完全隱私”的概念不同。當前 ZK rollups 的新穎之處在於利用「簡潔性」屬性而不是「零知識」,即在鏈下執行交易,併為驗證者生成簡潔的證明,以快速且可擴展的方式驗證執行的有效性,而無需重新執行它們。

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

思考 ZK Rollup 的實用性

如上所述,ZK 隱私在大多數 ZK 匯總中並未完全實現。那麼,我們的下一個目標應該是什麼?通過在匯總的每個部分完全部署 ZK 來實現完全的交易隱私?事實上,這不是一個簡單的問題。除了需要重大的技術進步來進一步完善技術之外,ZK在意識形態(例如,非法使用私人交易)和實用性(例如,它真的有用嗎?)方面仍然存在爭議問題。鑒於完全交易隱私的道德爭論超出了本文的範圍,讓我們將注意力集中在區塊鏈專案遇到的 ZK rollups 的兩個實用點上。

要點 #1:生成 ZKP 可能是快速終結的瓶頸

我們先來討論一下ZK rollups本身的實用性。ZK rollups 最引人注目的賣點是由於 ZKP 導致交易的「快速終結」 ,因此資產提取延遲較短。 增強的 TPS 和低交易費用是一個獎勵。最有效地利用 ZK rollups 特徵的行業是遊戲,因為遊戲內貨幣的存款和取款非常頻繁,並且每秒產生大量遊戲內交易。

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

要提取資產,必須完成遊戲內交易;這意味著交易必須包含在新的 rollup 狀態承諾中,相應的 ZKP 應提交給 L1,並且需要等待證明在 L1 乙太坊中完成,以便它可以保證交易不會被還原。如果所有這些過程都立即發生,那麼是的,我們可以實現 ZK rollups 經常被吹捧的“即時交易確認”,允許使用者立即提取資產。

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

圖 5:ZKP 生成可能是 ZK 匯總中快速終結的潛在瓶頸


(來源: imgflip)

另一方面,像 Ronin 這樣的遊戲優化鏈(為 Pixels 和 Axie Infinity 等 Web3 遊戲提供支持)確保了超快的終結性,同時犧牲了去中心化和安全性。Ronin 不是 ZK 或基於 rollup 的鏈:它是一個在 PoA(權威證明)+ DPoS(委託權益證明)共識演算法下運行的 EVM 區塊鏈。它根據委託的權益數量選擇22個驗證者,然後這些驗證者簡單地以PoA方式生成和驗證區塊(即僅在22個驗證者之間進行投票過程)。因此,交易在 Ronin 上迅速完成,因為交易幾乎沒有延遲,並且只需很少的時間來驗證。在 Shillin 硬分叉之後,完成每筆交易平均 只需 6 秒 。Ronin 在沒有 ZKP 的情況下實現了這一切。

是的,當然,Ronin 也有缺點。由中心化驗證者管理使其相對更容易受到 51% 的攻擊。此外,由於它不使用乙太坊作為結算層,因此它無法繼承乙太坊的安全性。使用跨鏈橋也存在安全風險。但是從使用者的角度思考:他們會關心這一點嗎?當前沒有分散式排序的 ZK 匯總也存在單點故障 (SPOF) 問題。乙太坊為他們提供了保證,因為它降低了交易恢復的可能性,但如果中心化排序器或證明器出現故障,ZK rollups 也會凍結。再次注意,ZK rollups 中的“ZK”僅用於驗證執行正確性的有效性。如果有另一個專案提供與 ZK rollups 相同的功能,但速度更快、更便宜,那麼 Web3 遊戲使用者和開發人員可能不再將 ZK rollup 視為最優先的堆疊。

要點 #2:發佈狀態差異是一把雙刃劍

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

了解匯總中數據可用性的一個簡單方法是考慮一個業餘登山者認證並記錄他的珠穆朗瑪峰攀登。最簡單的方法是在視頻中記錄從大本營到山頂攀登的每一步。雖然視頻檔可能很大,但任何人都可以驗證登山者登上珠穆朗瑪峰的情況,並可能重播鏡頭。這種類比可以比作用於確保數據可用性的原始事務數據發佈方法。樂觀匯總遵循這種方法,以便使各個挑戰者重放並驗證正確的執行,因為排序器的狀態承諾沒有什麼可信任的。在 ZK rollup 中,Polygon zkEVM 和 Scroll 採用了這種方法,將原始的 L2 事務數據以壓縮的形式存儲在 L1 上,以便任何人都可以在需要時重放 L2 事務以恢復 rollup 的狀態。

回到業餘登山者的例子,另一種驗證方法可能是一位傑出的登山者與業餘登山者一起登上珠穆朗瑪峰,以向世界驗證攀登確實已經完成。由於攀登已獲得可信賴的個人認證,登山者不再需要記錄每一步以進行記錄。只需在起點拍一張照片,在山頂拍另一張照片就足夠了,其他人只會認為登山者已經到達了山頂。此類比反映了用於確保數據可用性的狀態差異方法。在 ZK rollup 中,zkSync Era 和 StarkNet 採用了這種方法,只存儲在 L1 上執行 L2 事務之前和之後的狀態差異,以便任何人都可以計算出 genesis 的狀態差異,以便在必要時恢復 rollup 的狀態。

圖 6:原始事務發佈與狀態差異發佈


(來源: Presto Research)

與原始事務數據發佈方法相比,這種狀態差異方法在成本方面無疑是有益的,因為它可以跳過存儲中間事務,從而降低了 L1 中的存儲成本。然而,雖然這不是一個常見的問題,但這裡有一個潛在的缺點:這種方法不允許恢復完整的 L2 交易歷史,這對於某些 DApp 來說可能是一個問題。

讓我們以 DeFi 借貸協定 Compound 為例,假設它是建立在基於 state-diff 方法的 ZK rollup 堆棧之上的。這些協定需要完整的交易歷史記錄,以便每秒計算一次供應和借貸利率。但是,如果 ZK rollup sequencer 以某種方式宕機,而其他 rollup 節點嘗試恢復最新狀態,會發生什麼?它可能會恢復狀態,但利率會不準確,因為它只能跟蹤批次之間的快照,而不是每個中間交易。

結論

本文主要斷言,在當今的大多數 ZK rollup 中沒有“ZK”,並且 DApp 中有很多地方使用 ZKP 和 ZK rollup 可能不是最佳選擇。ZK技術可能會因為受到指責而感到無辜;因為其本身並沒有什麼內在的錯,只是在利用其技術進步的過程中,可能會給 DApp 帶來潛在的性能下降。然而,這並不是說ZK技術對這個行業毫無用處。當 ZKP 和 ZK rollup 最終達到技術成熟度時,它們當然可以提供更好的解決方案來解決區塊鏈三難困境。事實上,存在維護 ZK 隱私的基於 ZK 的專案,以及許多類型的 DApp 可以有效地利用 ZKP 和 ZK rollup 的優勢。我們將在下一篇文章中進一步探討這一點 - 敬請期待!

免責聲明:

  1. 本文轉載自 [Prestolabs]。轉發原標題“[ZK series - 1] ZK Rollups: Elephant In the Room”。所有版權歸原作者[Jaehyun Ha]所有。如果對本次轉載有異議,請聯繫 Gate Learn 團隊,他們會及時處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者的觀點和意見,不構成任何投資建議。
  3. 本文的其他語言翻譯由 Gate Learn 團隊完成。除非另有說明,否則禁止複製、分發或剽竊翻譯的文章。

ZK Rollups:房間里的大象

中級5/28/2024, 2:49:18 AM
零知識證明有可能創建一個更加私密和可擴展的區塊鏈生態系統。然而,零知識的許多方面被誤解或與通常認為的實現不同。本文從零知識和簡潔兩個主要角度分析了ZKP。當 ZKP 和 ZK rollup 最終在技術上成熟時,它們肯定會提供更好的解決方案來解決區塊鏈三難困境。

轉發原文標題 '[ZK series - 1] ZK Rollups: Elephant In the Room'

總結

  • 雖然零知識證明 (ZKP) 有望實現更加私密和可擴展的區塊鏈生態系統,但 ZK 的許多方面被誤解或實現的方式與通常認為的不同。
  • ZKP有兩個主要方面:「零知識」和「簡潔」。雖然沒有錯,但大多數 ZK rollups 只利用了簡潔性屬性;交易數據和帳戶信息並非完全保密或私密。
  • ZK rollups 可能不是作為每種 DApp 的開發堆疊的最佳選擇。例如,生成 ZKP 可能會成為快速終結的瓶頸,從而降低 Web3 遊戲的性能,而基於狀態差異發佈的數據可用性保證方法可能會減損 DeFi 借貸協定的服務。

圖 1:ZK 是一個很好的流行語


(來源: imgflip)

區塊鏈行業的現狀可以比作零知識(ZK)時代。放眼望去,ZK舉目驚心......越來越少能找到不將ZK納入其名稱的下一代區塊鏈專案。從技術角度來看,不可否認,ZK是一項很有前途的技術,能夠為更具可擴展性和私有性的區塊鏈生態系統做出貢獻。然而,由於ZK複雜的技術背景,許多投資者,無論是散戶還是機構投資者,經常發現自己投資ZK專案是基於「信念」,即它看起來很酷,很新,可能會解決區塊鏈三難困境,而沒有完全掌握ZK技術如何使每個專案受益。

在這個 ZK 系列中,我們將探討 ZK rollup 的不便真相(缺點和缺點)和有益的應用。首先,我們將解讀區塊鏈的ZK證明(ZKPs)的兩個核心屬性:“零知識”和“簡潔性”;然後,我們將討論當前服務的大量 ZK rollup 實際上並沒有利用「零知識」 方面。接下來,我們將研究應用 ZK rollup 弊大於利的領域,避免實現複雜性等眾所周知的問題。最後,我們將重點介紹有效體現 ZK 原則並實際展示其使用 ZK 技術的切實好處的示範專案。

回顧:ZK Rollups 中的事務生命週期

Rollups 是一種擴展解決方案,它通過在鏈下執行交易包,然後在 L1 上存儲最新 L2 狀態的摘要數據來解決 L1 的輸送量限制。其中,ZK rollups通過提交鏈下計算的有效性證明,能夠及時提取資金。在我們深入研究 ZK rollup 的問題之前,讓我們簡要回顧一下它的事務生命週期。

圖 2:ZK 匯總中的事務生命週期


(來源: Presto Reserach)

  1. 每個 L2 使用者生成交易並將其提交給排序器。
  2. 排序器聚合併訂購多筆交易,然後通過在鏈下執行它們來計算新的匯總狀態。隨後,排序器以「批處理」的形式將這個新的匯總狀態提交到鏈上狀態智能合約中,同時將相應的 L2 交易數據壓縮成 blob 以確保數據可用性。
  3. 批處理被發送到證明者,證明者創建批處理執行的有效性證明(或 ZKP)。然後,該有效性證明與額外數據(即先前的狀態根)一起發送到 L1 的驗證器智慧合約,這有助於驗證器識別它正在驗證的內容。
  4. 在驗證者合約檢查證明是否有效后,將更新匯總的狀態,並將提交批處理中的 L2 事務視為已完成。

(請注意,此說明是完整 ZK 匯總過程的簡化版本,每個實現都可能因協定而異。如果我們分離角色,L2 中可以有更多的實體;例如聚合器、執行器和提議器。數據塊的層也可能有所不同,例如塊、塊和批處理,具體取決於它們的用途。上述解釋假設了這樣一種情況,即集中式排序器具有執行事務的強大許可權,並且還以批處理的形式生成統一的數據塊格式。

與樂觀匯總不同,藉助 ZKP(例如 ZK-SNARK 或 ZK-STARK),ZK 匯總只需驗證一個簡單的證明即可驗證數千筆交易的執行正確性,而無需重放所有交易。那麼,這個ZKP是什麼,它有什麼特點呢?

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

顧名思義,ZKP基本上是一個證明。證據可以是任何能夠充分支持證明者主張的東西。假設 Bob(證明者)想說服 Alice(驗證者)關於他的筆記型電腦的權威性。證明這一點的最簡單方法是 Bob 只需告訴 Alice 密碼,Alice 在筆記型電腦上鍵入密碼並驗證 Bob 是否具有許可權。但是,此驗證過程對 Alice 和 Bob 來說都不令人滿意。如果 Bob 設置了一個非常長且糾結的密碼,那麼 Alice 要正確輸入密碼將是非常具有挑戰性的(假設 Alice 無法複製和粘貼)。更現實的是,鮑勃可能不願意向愛麗絲透露他的密碼以證明他的權威。

如果有一個驗證過程,Alice 可以快速驗證計算機的許可權,而 Bob 不必透露他的密碼,該怎麼辦?例如,Bob 只需在Alice面前點擊手指即可解鎖帶有 Touch ID 的筆記型電腦,如圖 3 所示(請注意,這不是 ZKP 的完美示例)。在這裡,Alice 和 Bob 都可以從 ZKP 的兩個關鍵屬性中受益:零知識屬性和簡潔屬性。

圖3:零知識和簡潔的高級直覺


(來源: imgflip)

零知識

屬性「零知識」是指證明者生成的證明沒有透露任何關於秘密證人(即私人數據)的情況,使驗證者除了證明的有效性之外對數據一無所知。在區塊鏈中,此屬性可用於保護個人用戶的隱私。如果每筆交易都應用了ZKP,使用者可以證明其行為的合法性(即證明使用者有足夠的資金進行交易),而無需向公眾暴露其交易細節(例如,轉帳、賬戶餘額更新、智慧合約部署和智慧合約執行)。

簡明扼要

另一個屬性“簡潔性”是指 ZK 能夠從大規模的索賠中生成簡短且快速驗證的證明。換句話說,它是將大的東西整合成緊湊的東西。在區塊鏈中,這在匯總中特別有用。使用 ZKP,L2 中的證明者可以通過向 L1 中的驗證者提交簡潔的證明來聲明交易的正確執行(交易的 TB 有效性可以用 10~100 KB 的證明來表示)。然後,驗證者可以通過驗證簡潔的證明而不是重放所有交易,在短時間內(即 10ms~1s)輕鬆確認執行的有效性。

ZK Rollup 很棒,但並不意味著隱私

前面提到的 ZKP 特性在 ZK rollup 中得到了很好的利用。雖然驗證者無法從證明者那裡收到的 ZKP 推斷原始交易數據,但驗證簡潔的證明使他們能夠有效地驗證證明者的聲明(即新的 L2 狀態)。也就是說,ZK rollup 在其當前反覆運算中完全遵循零知識和簡潔屬性的斷言具有誤導性。當只關注證明者和驗證者之間的交互時,這可能是正確的,但 ZK rollup 中也存在其他元件,例如 sequencer、proover 和 rollup 節點。“零知識”原則是否也對他們有保證?

在任何 ZK rollup 中,使用 ZKP 實現完全隱私的挑戰來自於如果其他部分保持公開,而某些部分由 ZK 私有化,則可能會受到損害。想想 ZK rollups 中的事務生命週期——當事務從用戶發送到排序器時,隱私是否得到維護?對於證明者來說呢?或者,當 L2 批次提交到 DA 層時,是否保留了單個帳戶信息的隱私?目前沒有一種情況成立。

圖 4:ZK rollup 中的隱私洩露


(來源: Presto Research)

在大多數主流的 ZK 匯總中,排序器或證明者(或其他一些具有強大許可權的中心化實體)可以清楚地看到交易細節,包括轉帳金額、賬戶餘額更新、合約部署和合約執行。舉個簡單的例子,您可以通過訪問任何 ZK rollup 塊瀏覽器輕鬆觀察所有提到的細節。不僅如此,還要考慮集中式排序器以某種方式停止服務,而另一個 rollup 節點嘗試恢復 rollup 狀態的情況。它將從 DA 層(在大多數情況下是 L1 乙太坊)中獲取公開發佈的 L2 數據,並重建 L2 狀態。在此過程中,任何能夠重放存儲在 DA 層的 L2 交易的節點都可以恢復有關每個使用者帳戶狀態的資訊。

因此,術語「零知識」在當前的 ZK 匯總中以碎片形式實現。雖然這不能被認為是不正確的,但很明顯,它與人們普遍認為的“ZK意味著零知識,等於完全隱私”的概念不同。當前 ZK rollups 的新穎之處在於利用「簡潔性」屬性而不是「零知識」,即在鏈下執行交易,併為驗證者生成簡潔的證明,以快速且可擴展的方式驗證執行的有效性,而無需重新執行它們。

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

思考 ZK Rollup 的實用性

如上所述,ZK 隱私在大多數 ZK 匯總中並未完全實現。那麼,我們的下一個目標應該是什麼?通過在匯總的每個部分完全部署 ZK 來實現完全的交易隱私?事實上,這不是一個簡單的問題。除了需要重大的技術進步來進一步完善技術之外,ZK在意識形態(例如,非法使用私人交易)和實用性(例如,它真的有用嗎?)方面仍然存在爭議問題。鑒於完全交易隱私的道德爭論超出了本文的範圍,讓我們將注意力集中在區塊鏈專案遇到的 ZK rollups 的兩個實用點上。

要點 #1:生成 ZKP 可能是快速終結的瓶頸

我們先來討論一下ZK rollups本身的實用性。ZK rollups 最引人注目的賣點是由於 ZKP 導致交易的「快速終結」 ,因此資產提取延遲較短。 增強的 TPS 和低交易費用是一個獎勵。最有效地利用 ZK rollups 特徵的行業是遊戲,因為遊戲內貨幣的存款和取款非常頻繁,並且每秒產生大量遊戲內交易。

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

要提取資產,必須完成遊戲內交易;這意味著交易必須包含在新的 rollup 狀態承諾中,相應的 ZKP 應提交給 L1,並且需要等待證明在 L1 乙太坊中完成,以便它可以保證交易不會被還原。如果所有這些過程都立即發生,那麼是的,我們可以實現 ZK rollups 經常被吹捧的“即時交易確認”,允許使用者立即提取資產。

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

圖 5:ZKP 生成可能是 ZK 匯總中快速終結的潛在瓶頸


(來源: imgflip)

另一方面,像 Ronin 這樣的遊戲優化鏈(為 Pixels 和 Axie Infinity 等 Web3 遊戲提供支持)確保了超快的終結性,同時犧牲了去中心化和安全性。Ronin 不是 ZK 或基於 rollup 的鏈:它是一個在 PoA(權威證明)+ DPoS(委託權益證明)共識演算法下運行的 EVM 區塊鏈。它根據委託的權益數量選擇22個驗證者,然後這些驗證者簡單地以PoA方式生成和驗證區塊(即僅在22個驗證者之間進行投票過程)。因此,交易在 Ronin 上迅速完成,因為交易幾乎沒有延遲,並且只需很少的時間來驗證。在 Shillin 硬分叉之後,完成每筆交易平均 只需 6 秒 。Ronin 在沒有 ZKP 的情況下實現了這一切。

是的,當然,Ronin 也有缺點。由中心化驗證者管理使其相對更容易受到 51% 的攻擊。此外,由於它不使用乙太坊作為結算層,因此它無法繼承乙太坊的安全性。使用跨鏈橋也存在安全風險。但是從使用者的角度思考:他們會關心這一點嗎?當前沒有分散式排序的 ZK 匯總也存在單點故障 (SPOF) 問題。乙太坊為他們提供了保證,因為它降低了交易恢復的可能性,但如果中心化排序器或證明器出現故障,ZK rollups 也會凍結。再次注意,ZK rollups 中的“ZK”僅用於驗證執行正確性的有效性。如果有另一個專案提供與 ZK rollups 相同的功能,但速度更快、更便宜,那麼 Web3 遊戲使用者和開發人員可能不再將 ZK rollup 視為最優先的堆疊。

要點 #2:發佈狀態差異是一把雙刃劍

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

了解匯總中數據可用性的一個簡單方法是考慮一個業餘登山者認證並記錄他的珠穆朗瑪峰攀登。最簡單的方法是在視頻中記錄從大本營到山頂攀登的每一步。雖然視頻檔可能很大,但任何人都可以驗證登山者登上珠穆朗瑪峰的情況,並可能重播鏡頭。這種類比可以比作用於確保數據可用性的原始事務數據發佈方法。樂觀匯總遵循這種方法,以便使各個挑戰者重放並驗證正確的執行,因為排序器的狀態承諾沒有什麼可信任的。在 ZK rollup 中,Polygon zkEVM 和 Scroll 採用了這種方法,將原始的 L2 事務數據以壓縮的形式存儲在 L1 上,以便任何人都可以在需要時重放 L2 事務以恢復 rollup 的狀態。

回到業餘登山者的例子,另一種驗證方法可能是一位傑出的登山者與業餘登山者一起登上珠穆朗瑪峰,以向世界驗證攀登確實已經完成。由於攀登已獲得可信賴的個人認證,登山者不再需要記錄每一步以進行記錄。只需在起點拍一張照片,在山頂拍另一張照片就足夠了,其他人只會認為登山者已經到達了山頂。此類比反映了用於確保數據可用性的狀態差異方法。在 ZK rollup 中,zkSync Era 和 StarkNet 採用了這種方法,只存儲在 L1 上執行 L2 事務之前和之後的狀態差異,以便任何人都可以計算出 genesis 的狀態差異,以便在必要時恢復 rollup 的狀態。

圖 6:原始事務發佈與狀態差異發佈


(來源: Presto Research)

與原始事務數據發佈方法相比,這種狀態差異方法在成本方面無疑是有益的,因為它可以跳過存儲中間事務,從而降低了 L1 中的存儲成本。然而,雖然這不是一個常見的問題,但這裡有一個潛在的缺點:這種方法不允許恢復完整的 L2 交易歷史,這對於某些 DApp 來說可能是一個問題。

讓我們以 DeFi 借貸協定 Compound 為例,假設它是建立在基於 state-diff 方法的 ZK rollup 堆棧之上的。這些協定需要完整的交易歷史記錄,以便每秒計算一次供應和借貸利率。但是,如果 ZK rollup sequencer 以某種方式宕機,而其他 rollup 節點嘗試恢復最新狀態,會發生什麼?它可能會恢復狀態,但利率會不準確,因為它只能跟蹤批次之間的快照,而不是每個中間交易。

結論

本文主要斷言,在當今的大多數 ZK rollup 中沒有“ZK”,並且 DApp 中有很多地方使用 ZKP 和 ZK rollup 可能不是最佳選擇。ZK技術可能會因為受到指責而感到無辜;因為其本身並沒有什麼內在的錯,只是在利用其技術進步的過程中,可能會給 DApp 帶來潛在的性能下降。然而,這並不是說ZK技術對這個行業毫無用處。當 ZKP 和 ZK rollup 最終達到技術成熟度時,它們當然可以提供更好的解決方案來解決區塊鏈三難困境。事實上,存在維護 ZK 隱私的基於 ZK 的專案,以及許多類型的 DApp 可以有效地利用 ZKP 和 ZK rollup 的優勢。我們將在下一篇文章中進一步探討這一點 - 敬請期待!

免責聲明:

  1. 本文轉載自 [Prestolabs]。轉發原標題“[ZK series - 1] ZK Rollups: Elephant In the Room”。所有版權歸原作者[Jaehyun Ha]所有。如果對本次轉載有異議,請聯繫 Gate Learn 團隊,他們會及時處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者的觀點和意見,不構成任何投資建議。
  3. 本文的其他語言翻譯由 Gate Learn 團隊完成。除非另有說明,否則禁止複製、分發或剽竊翻譯的文章。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!