作者:Hannes Huitula
翻譯:白話區塊鏈
1、區塊鏈是什麼以及它是如何擴展當前的計算範式的?
區塊鏈(名詞):一種協調機器,使來自世界各地的參與者能夠在一組共同約定的規則下協作,而無需任何第三方來促成。
電腦被設計來做三件事:儲存資料、運算,並與其他電腦和人類進行通訊。區塊鏈增加了第四維度:對這三件事(儲存、計算和通訊)按照約定的方式發生的額外保證。這些保證使得陌生人之間可以合作,而無需一個可信賴的第三方來促成(去中心化)。
這些額外的保證可以是經濟性的(基於信任博弈論和激勵/ 懲罰機制)或者是密碼學的(基於數學的信任),但大多數應用程式利用了兩者的結合——密碼經濟學。這與目前主要基於聲譽的系統形成了鮮明對比。
雖然Web3 經常被描述為「讀取、寫入、擁有」,但我們認為對於網路的第三次演變,更好的概念應該是「讀取、寫入、驗證」,因為公共區塊鏈的關鍵優點在於保證計算和輕鬆驗證這些保證是否被遵守。擁有可以是保證計算的子集,如果我們建立的數位化產品可以被買賣和控制。然而,許多區塊鏈的用例受益於保證計算,但並不直接涉及所有權。例如,在完全在鏈上的遊戲中,如果你的健康值是77/100,你擁有這個健康值嗎,還是僅僅按照共同約定的規則在鏈上可執行?
Web3 = Read, Write, Verify
2、ZK 和模組化——將加速的兩個趨勢
區塊鏈提供了許多令人興奮的內容,但去中心化模型也透過額外的功能(如P2P 通訊和共識)增加了開銷和低效性。此外,大多數區塊鏈仍透過重新執行來驗證正確的狀態轉換,這意味著網路上的每個節點都必須重新執行交易以驗證所提議的狀態轉換的正確性。這會造成浪費,與中心化模型形成了鮮明對比,後者只有一個實體執行。雖然去中心化系統總是包含一些開銷和複製,但目標應該是在效率上趨近於一個中心化基準。
儘管基礎設施在過去十年中有了顯著改善,但在區塊鏈可以處理互聯網級別規模之前還有很多工作要做。我們看到沿著兩個主要軸線存在權衡——表達能力和難度——並認為模組化能夠使權衡前沿的快速實驗加速,而零知識證明則擴展了這一前沿:
表達能力-你可以創造哪些保證?包括可擴展性(成本、延遲、吞吐量等)、隱私(或資訊流管理)、可編程性和可組合性。
難度-這些保證有多難實現?包括安全性、去中心化和使用者及程式碼安全性。
模組化是系統組件能夠分離和重組的程度。透過更快的回饋循環和更低的進入門檻,需要更少的資本(經濟和人力)——模組化能夠加快實驗和專業化的速度。模組化與整合化之間的問題不是二元的,而是一個實驗的光譜,透過實驗找出哪些部分應該解耦,哪些不應該。
另一方面,零知識證明(Zero Knowledge Proofs,ZKPs)使一方(證明者)能夠向另一方(驗證者)證明他們知道某事是真實的,而不透露除了其有效性之外的任何附加信息。這可以透過避免重新執行(從所有執行驗證轉變為一個執行,所有驗證)來增加可擴展性和效率,同時透過啟用隱私(受限)來增加表達能力。 ZKPs 透過用更強的保證來取代較弱的密碼經濟學保證來提高保證的難度,這透過將權衡前緣推向外部來表示(參考上面的圖表)。
我們相信模組化和「零知識證明在一切中的應用」都是會繼續加速的趨勢。雖然兩者都提供了探索該領域的有趣視角,但我們特別關注兩者的交叉點。我們感興趣的兩個關鍵問題是:
1)模組化堆疊的哪些部分已經融入了零知識證明,哪些尚待探索?
2)零知識證明能解決哪些問題?
然而,在我們深入探討這些問題之前,我們需要對2024 年的模組化堆疊有一個更新的視角。
3、2024 年的模組化堆疊
通常使用的四個組件(執行、資料發布、共識、結算)構成的模組化堆疊影像,對於簡單的心智模型來說很有用,但我們覺得這不再是一個足夠準確的代表,因為模組化領域的發展已經非常迅速。進一步的解構導致了新的元件,這些元件以前被認為是較大部分的一部分,同時也創造了新的依賴關係,需要在不同元件之間實現安全的互通性(稍後我們會詳細介紹) 。鑑於這個領域的發展速度,要及時了解堆疊不同層面的所有創新可能會很困難。
早期對web3 堆疊的探索嘗試包括Kyle Samani(Mult1C0in)在2018 年首次發表並在2019 年更新的內容。它涵蓋了從去中心化的最後一哩網路存取(例如Helium)到終端用戶金鑰管理的一切。雖然其中的原則可能可以重複利用,但有些部分,例如證明和驗證,卻完全缺失了。
考慮到這些因素,2024 年我們嘗試創建了一個模組化堆疊的更新表示,擴展了現有的四部分模組化堆疊。它按組件而非功能進行分割,這意味著點對點網絡,例如,包含在共識中而不是將其拆分為單獨的組件——主要是因為很難圍繞它建立協議。
4.在模組化堆疊中的零知識證明(ZK)
現在我們對模組化堆疊有了更新的視角,我們可以開始關注真正的問題,即ZK 已經滲透到堆疊的哪些部分,以及引入ZK 可以解決哪些未解決的問題(無論是避免重新執行還是隱私功能) 。在我們深入研究每個組件之前,以下是我們的研究結果摘要。
1)使用者操作抽象化
目前的區塊鏈用戶需要在多個鏈、錢包和介面之間導航,這是繁瑣的,並且成為更廣泛採用的摩擦。使用者操作抽象化是一個總稱,用於嘗試將這種複雜性抽象化,讓使用者只需與一個介面互動(例如特定應用程式或錢包),所有複雜性都發生在後端。一些基礎層級的抽象化範例包括:
帳戶抽象化(AA)使智能合約能夠進行交易,而無需每個操作都要求用戶簽署(可編程加密帳戶)。它可以用來定義誰可以簽署(金鑰管理)、簽署什麼(交易負載)、如何簽署(簽章演算法)以及何時簽署(交易核准條件)。這些功能的組合使得像是使用社群登入與dApp 互動、雙因素認證(2FA)、帳戶恢復和自動化(自動簽署交易)等事情成為可能。儘管討論通常集中在以太坊(2023 年春季通過的ERC-4337),但許多其他鏈已經內建了本地帳戶抽象化(Aptos、Sui、Near、ICP、Starknet 和zkSync)。
鏈抽象化允許用戶在不同鏈上簽署交易,同時只與一個帳戶互動(一個接口,多個鏈)。許多團隊正在研究這個問題,包括Near、ICP 和dWallet。這些解決方案利用MPC 和鏈簽名,將其他網路的私鑰分成幾個小部分並在來源鏈上的驗證者之間共享,他們簽署跨鏈交易。當使用者想要與另一條鏈進行互動時,需要足夠數量的驗證者簽署交易以滿足閾值加密。這保留了安全性,因為私鑰從未完全共享在任何地方。但它確實面臨驗證者勾結的風險,這就是為什麼底層鏈的密碼經濟安全性和驗證者去中心化仍然非常相關的原因。
意圖,在高層次上,將用戶的願望和需求轉化為可以由區塊鏈執行的操作。這需要意圖解決者——專門的鏈下代理,負責找到用戶意圖的最佳解決方案。已經有幾個應用程式使用了專門的意圖,例如DEX 聚合器(“最佳價格”)和橋接聚合器(“最便宜/ 最快的橋接”)。通用意圖結算網路(Anoma、Essential、Suave)旨在使用戶更容易表達更複雜的意圖,並使開發者能夠建立以意圖為中心的應用程式。然而,仍然有許多未解決的問題,包括如何形式化這個過程、意圖中心語言會是什麼樣子、是否總是存在最佳解決方案以及如何找到它。
現有的ZK 集成
AA x ZK 驗證:一個例子是Sui 的zkLogin,它允許使用者使用熟悉的憑證(如電子郵件地址)進行登入。它使用ZKPs 來防止第三方將Sui 位址與其對應的OAuth 識別碼進行關聯。
AA 錢包的更有效率簽名驗證:在AA 合約中驗證交易可能比傳統帳戶(EOA)發起的交易顯著更昂貴。 Orbiter 嘗試透過一個捆綁服務來解決這個問題,該服務利用ZKPs 來驗證交易簽章的正確性,並維護AA 帳戶的nonce 值和gas 餘額(透過Merkle 世界狀態樹)。透過證明聚合和將鏈上驗證成本平均分配給所有用戶,這可以實現顯著的成本節約。
ZKPs 可能解決的開放性問題
最佳執行或意圖履行的證明:雖然意圖和AA 可以將使用者的複雜性抽象化,但它們也可能作為一種中心化的力量,並要求我們依賴專門的參與者(解決者)來找到最佳執行路徑。與其僅僅信任解決者的善意,ZKPs 可能被用來證明在解決者取樣的路徑中選擇了使用者的最佳路徑。
意圖結算的隱私保護:像Taiga 這樣的協議旨在實現完全保護意圖結算的功能,以保護用戶的隱私——這是在向區塊鏈網路添加隱私(或至少保密性)方面的更廣泛移動的一部分。它使用ZKPs(Halo2)來隱藏關於狀態轉換的敏感資訊(應用類型、參與者等)。
AA 錢包的密碼恢復:這個提案的想法是使用戶在丟失私鑰時能夠恢復他們的錢包。透過在合約錢包上儲存雜湊(密碼,nonce),用戶可以藉助他們的密碼產生一個ZKP 來驗證這是他們的帳戶,並要求更改私鑰。確認期間(3 天或更長時間)用作防止未經授權的存取嘗試的保障。
2)順序化
在加入區塊之前,交易需要被排序,這可以透過多種方式實現:按照提議者的盈利能力排序(最高支付的交易優先),按照提交的順序排序(先進先出),給予來自私有內存池的交易優先級等等。
另一個問題是誰來排序交易。在模組化的世界中,有多個不同的參與者可以做到這一點,包括滾動打包器(中心化或去中心化)、L1 排序(基於滾動打包)、以及共享排序網絡(多個滾動打包使用的去中心化排序網路)。所有這些都有不同的信任假設和擴展能力。在實踐中,交易的實際排序和打包成區塊也可以由專門的參與者(區塊建構者)在協議之外完成。
現有的ZK 集成
驗證記憶體池正確加密:Radius 是一個具有實用可驗證延遲加密(PVDE)的加密記憶體池的共享排序網路。使用者產生一個ZKP,用於證明解決時間鎖謎題將導致對有效交易的正確解密,即交易包括有效的簽名和nonce,發送者有足夠的餘額支付交易費用。
ZKPs 可能解決的開放性問題
可驗證的排序規則(VSR):將提議者/ 排序者置於一組關於執行順序的規則之下,並附加額外的保證這些規則被遵循。驗證可以透過ZKPs 或詐欺證明進行,後者需要一個足夠大的經濟保證金,如果提議者/ 排序者行為不端則會被削減。
3)執行(擴展寫入)
執行層包含了狀態更新的邏輯,也是智慧合約執行的地方。除了傳回計算結果之外,zkVMs 還能夠證明狀態轉換是否正確執行。這使得其他網路參與者可以透過僅驗證證明來驗證正確的執行,而無需重新執行交易。
除了更快更有效率的驗證之外,可證明執行的另一個好處是能夠進行更複雜的計算,因為您不會遇到氣體和有限鏈上資源的典型問題。這為在區塊鏈上運行計算更為密集的全新應用開啟了大門,並利用了可保證的計算。
現有的ZK 集成
- zkEVM 滾動打包:一種特殊類型的zkVM,最佳化以與以太坊相容並證明EVM 執行環境。然而,與以太坊相容性越高,效能的折衷就越大。 2023 年推出了幾種zkEVM,包括Polygon zkEVM、zkSync Era、Scroll 和Linea。 Polygon 最近宣布推出了他們的類型1 zkEVM 證明者,可以以每個區塊$0.20-$0.50 的價格證明主網以太坊區塊(即將推出的優化將進一步降低成本)。 RiscZero 也有解決方案,可以證明以太坊區塊,但成本較高,且受限的基準測試。
- 替代性zkVMs:有些協定選擇了另一條路徑,優化了效能/ 可證性(Starknet、Zorp)或開發人員友善性,而不是試圖最大程度地與以太坊相容。後者的例子包括zkWASM 協定(Fluent、Delphinus Labs)和zkMOVE(M2 和zkmove)。
- 專注於隱私的zkVM:在這種情況下,ZKPs 用於兩個目的:避免重新執行和實現隱私。雖然僅透過ZKPs 可以實現的隱私受到限制(只有個人私有狀態),但即將推出的協定為現有解決方案增加了許多表達能力和可編程性。例子包括Aleo 的snarkVM、Aztec 的AVM 和Polygon 的MidenVM。
- ZK 協處理器:允許在鏈外資料上進行鏈上計算(但沒有狀態)。 ZKPs 用於證明正確執行,比樂觀協處理器更快結算,但成本存在折衷。考慮到產生ZKPs 的成本和/ 或難度,我們看到一些混合版本,例如Brevis coChain,允許開發人員在ZK 或樂觀模式之間進行選擇(在成本和保證難度之間進行折衷)。
ZKPs 可能解決的開放性問題
納入zkVM:大多數基礎層(L1s)仍然使用重新執行來驗證正確的狀態轉換。將zkVM 納入基礎層將避免這種情況,因為驗證者可以驗證證明。這將提高操作效率。大多數的焦點是以太坊,希望有一個納入zkEVM 的基礎層,但許多其他生態系統也依賴重新執行。
zkSVM:雖然SVM 今天主要在Solana L1 中使用,但像Eclipse 這樣的團隊正在嘗試利用SVM 進行在以太坊上結算的滾動。 Eclipse 還計劃在SVM 中使用Risc Zero 進行ZK 詐欺證明,以應對SVM 中狀態轉換的潛在挑戰。然而,一個完整的zkSVM 尚未被探索——可能是由於問題的複雜性以及SVM 被優化用於除可證性之外的其他事物。
4)資料查詢(讀取擴充)
數據查詢,或從區塊鏈讀取數據,是大多數應用的重要組成部分。儘管近年來的討論和努力大多集中在擴展寫入(執行)上,但由於兩者之間的不平衡(特別是在去中心化環境中),擴展讀取更為重要。讀/ 寫比例在不同區塊鏈之間有所不同,但一個數據點是Sig 的估計,Solana 上對節點的所有調用中有超過96% 是讀取調用(基於2 年的經驗數據)——讀/ 寫比例為24:1。
擴展讀取包括透過專用的驗證者用戶端(如Solana 上的Sig)來提高效能(每秒更多的讀取)以及實現更複雜的查詢(將讀取與計算結合),例如透過協處理器的幫助。
另一個角度是去中心化的資料查詢方法。今天,大多數區塊鏈中的資料查詢請求都由信任的第三方(基於聲譽)進行處理,例如RPC 節點(Infura)和索引器(Dune)。更去中心化選項的例子包括The Graph 和儲存證明運營商(也是可驗證的)。還有一些嘗試創建去中心化RPC 網絡,例如Infura DIN 或Lava Network(除了去中心化RPC,Lava 還計劃後續提供額外的資料存取服務)。
現有的ZK 集成
儲存證明:允許從區塊鏈查詢歷史數據和當前數據,而無需使用信任的第三方。 ZKPs 用於壓縮並證明正確的資料已被檢索。在這個領域正在建置的專案範例包括Axiom、Brevis、Herodotus 和Lagrange。
ZKPs 可能解決的開放性問題
私有狀態的高效查詢:隱私專案通常使用UTXO 模型的變體,這比帳戶模型具有更好的隱私特性,但代價是對開發人員友善度的犧牲。私有UTXO 模型也可能導致同步問題——自2022 年以來,Zcash 在經歷了隱私交易量顯著增加後就一直在努力解決這個問題。錢包必須在能夠使用資金之前與鏈同步,因此這對網路運作來說是一個非常基本的挑戰。為了預期這個問題,Aztec 最近發布了一個關於筆記發現想法的RFP,但目前還沒有找到明確的解決方案。
5)證明
隨著越來越多的應用程式納入ZKPs,證明和驗證迅速成為模組化堆疊的重要組成部分。然而,今天大多數證明基礎設施仍然是有許可的和中心化的,許多應用程式依賴單一證明者。
雖然中心化解決方案較少複雜,但將證明架構去中心化並將其分割成模組化堆疊中的一個獨立組件帶來了幾個好處。其中一個關鍵好處在於活躍保證,這對於依賴頻繁產生證明的應用程式至關重要。使用者也從更高的抗審查性和由於競爭和將工作負載分享給多個證明者而導致的更低費用中受益。
我們認為通用型證明者網路(許多應用程序,許多證明者)優於單一應用程式證明者網路(一個應用程序,許多證明者),因為它更有效率地利用現有硬體並對證明者來說更少複雜。更高的利用率也使用戶受益於較低的費用,因為證明者不需要透過較高的費用來補償冗餘(仍然需要覆蓋固定成本)。
Figment Capital 對當前的證明供應鏈情況進行了很好的概述,其中包括證明生成和證明聚合(本質上是證明生成,但只是將兩個證明作為輸入而不是執行跟踪)。
現有的ZK 集成
STARK 與SNARK 包裝:STARK 證明者速度快,不需要信任設置,但缺點是它們產生的大型證明在以太坊L1 上驗證的成本很高。將STARK 包裝在SNARK 中作為最後一步可以顯著降低在以太坊上驗證的成本。不過,這樣做增加了複雜性,而這種「複合證明系統」的安全性尚未深入研究。現有實現的例子包括Polygon zkEVM、zkSync Era 中的Boojum 和RISC Zero。
通用型去中心化證明網路:將更多應用程式整合到去中心化證明網路中,可以使證明者更有效率地利用硬體(更高的硬體利用率),也可以使用戶更便宜(無需為硬體冗餘餘付費)。該領域的項目包括Gevulot 和Succinct。
ZKPs 可能解決的開放性問題
ZK 詐欺證明:在樂觀解決方案中,任何人都可以挑戰狀態轉換並在挑戰期間創建詐欺證明。然而,驗證詐欺證明仍然相當繁瑣,因為它是透過重新執行來完成的。 ZK 詐欺證明旨在透過創建正在挑戰的狀態轉換的證明來解決這個問題,從而實現更有效率的驗證(無需重新執行)和潛在的更快的結算。至少樂觀主義(與O1 Labs 和RiscZero 合作)以及AltLayer x RiscZero 正在處理這個問題。
更有效率的證明聚合:ZKPs 的一個很棒的功能是您可以將多個證明聚合成一個單一的證明,而不會顯著增加驗證成本。這使得可以將驗證成本分攤到多個證明或應用程式中。證明聚合也是一種證明,但輸入是兩個證明而不是執行追蹤。在這個領域的專案範例包括NEBRA 和Gevulot。
6)數據發布(可用性)
資料發布(DP)確保資料在短時間內(1-2 週)可用且容易檢索。這對於安全性(樂觀性Rollups 在挑戰期間透過重新執行需要輸入資料來驗證正確執行,持續1-2 週)和活躍性(即使系統使用有效性證明,也可能需要資料來證明資產所有權以進行逃生通道或強制交易)至關重要。用戶(如zk- 橋樑和Rollups)需要進行一次性付款,以覆蓋儲存交易和狀態的成本,直到資料被刪除為止。資料發佈網路並不是為長期資料儲存而設計的(請參閱下一節可能的解決方案)。
Celestia 是第一個替代DP 層發布其主網的項目(10 月31 日),但隨著Avail、EigenDA 和Near DA 等項目預計在2024 年推出,很快就會有許多替代方案可供選擇。此外,以太坊的EIP 4844 升級提高了以太坊上的資料發佈效率(同時為Blob 儲存創建了單獨的費用市場),並為完整的坦克分片鋪平了道路。 DP 也正在擴展到其他生態系統——一個例子是Nubit,它旨在在比特幣上建立本機的DP。
許多DP 解決方案還提供純資料發布以外的服務,包括對主權Rollups 的共享安全性(如Celestia 和Avail)或Rollups 之間更平滑的互通性(如Avail 的Nexus)。還有一些項目(如Dom1C0n 和Zero Gravity)提供數據發布以及長期狀態存儲,這是一個引人注目的建議。這也是在模組化堆疊中重新捆綁兩個組件的一個例子,這是我們未來可能看到更多的情況(對進一步解綁和重新捆綁的實驗)。
現有的ZK 集成
驗證糾刪碼的正確性:糾刪碼帶來一定程度的冗餘,以便即使部分編碼資料不可用,原始資料也是可恢復的。這也是去中心化儲存(DAS)的先決條件,其中輕節點只對區塊的一小部分進行抽樣,以機率性地確保資料存在。如果惡意的提議者錯誤地編碼數據,即使輕節點抽樣了足夠數量的唯一區塊,原始資料也可能無法恢復。驗證正確的糾刪碼可以使用有效性證明(ZKPs)或詐欺證明來完成,後者因與挑戰期相關的延遲而受到影響。除了Celestia 以外的所有其他解決方案都在使用有效性證明。
由ZK 輕客戶端提供資料橋樑:使用外部資料發布層的Rollups 仍然需要向結算層通知資料已正確發布。這就是資料認證橋樑的作用所在。使用ZKPs 可以使在以太坊上對源鏈共識簽名的驗證更加高效。 Avail(VectorX)和Celestia(BlobstreamX)的資料認證橋樑都由與Succinct 合作建造的ZK 輕客戶端提供支援。
Celestia 整合有效性證明以驗證正確的糾刪碼:Celestia 目前在資料發佈網路中是一個離群值,因為它使用詐欺證明來驗證正確的糾刪碼。如果惡意的區塊提議者錯誤地編碼數據,任何其他完整節點都可以產生詐欺證明並對此提出質疑。雖然這種方法在實施上相對簡單,但它也會引入延遲(只有在欺詐證明窗口之後區塊才最終確定),並且需要輕節點信任一個誠實的完整節點來產生欺詐證明(無法自行驗證)。然而,Celestia 正在探索將他們當前的Reed-Solomon 編碼與ZKP 結合以證明正確編碼的方法,這將顯著降低最終確定性。關於這個主題的最新討論可以在這裡找到,其中包括以前工作組的記錄(除了將ZKP 添加到Celestia 基礎層的更一般性嘗試)。
ZK- 證明DAS:一些探索已經在ZK- 證明資料可用性方面進行,其中輕節點只需驗證Merkle 根和ZKP,而無需透過下載小塊資料來進行常規抽樣。這將進一步降低對輕節點的要求,但似乎發展已經停滯不前。
7)長期(狀態)存儲
儲存歷史資料主要是為了同步目的和回應資料請求而重要。然而,並非每個完整節點都能夠儲存所有數據,大多數完整節點會裁剪舊數據以保持硬體需求的合理性。相反,我們依靠專業方(歸檔節點和索引器)來儲存所有歷史數據,並在用戶請求時提供數據。
此外,還有分散式儲存提供者,如Filecoin 或Arweave,提供價格合理的長期分散式儲存解決方案。雖然大多數區塊鏈沒有正式的歸檔儲存過程(僅依賴某人儲存),但分散式儲存協定是儲存歷史資料和透過儲存網路內建的激勵機制增加一定冗餘性(至少X 個節點儲存數據)的良好選擇。
現有的ZK 整合
儲存證明:長期儲存提供者需要定期產生ZKP 來證明他們已經儲存了他們聲稱的所有資料。一個例子是Filecoin 的時空證明(PoSt),在這裡,儲存提供者每次成功回答PoSt 挑戰時都會獲得區塊獎勵。
ZKP 可以解決的問題
證明資料來源和查看敏感資料的授權:對於兩個不信任的方,他們想要交換敏感數據,ZKP 可以用來證明一方具有查看資料所需的憑證,而無需上傳實際文件或透露密碼和登入詳細資訊.
8)共識
考慮到區塊鏈是分散式P2P 系統,沒有可信賴的第三方來決定全局真相。相反,網路中的節點透過一種稱為共識的機制來達成對當前真相的一致認定(哪個區塊是正確的)。基於PoS 的共識方法可以分為基於BFT 的(其中拜占庭容錯的驗證者群體決定最終狀態)或基於鏈的(其中最終狀態由回溯性地透過分叉選擇規則決定)。雖然大多數現有的PoS 共識實作都是基於BFT 的,但Cardano 是最長鏈實作的一個例子。還有越來越多的興趣集中在基於DAG 的共識機制,例如Narwhal-Bullshark,在Aleo、Aptos 和Sui 等專案中以不同形式實現。
共識是模組化堆疊中許多不同組件的關鍵部分,包括共享順序器、去中心化的證明和基於區塊鏈的資料發佈網路(不是基於委員會的,例如EigenDA)。
現有的ZK 整合
ZK 隱私網路中的質押:基於PoS 的隱私網路帶來了一個挑戰,即持有質押Token 的人必須在隱私和參與共識(以及獲得質押獎勵)之間做出選擇。 Penumbra 旨在透過消除質押獎勵來解決這個問題,而是將未抵押和已抵押的質押視為不同的資產。這種方法可以保持個人委託的私密性,同時每個驗證者抵押的總金額仍然是公開的。
私密治理:在加密貨幣領域,實現匿名投票長期以來一直是一個挑戰,例如Nouns Private Voting 計畫試圖推動這項進展。對於治理也是如此,至少Penumbra 正在努力進行提案的匿名投票。在這種情況下,ZKP 可以用來證明某人有權進行投票(例如透過代幣所有權)以及某些投票標準是否已滿足(例如,尚未進行投票)。
私人領導者選舉:以太坊目前在每個時期開始時選舉下一個32 個區塊提案者,而這次選舉的結果是公開的。這帶來了一個風險,即惡意方會依次對每個提議者發動DoS 攻擊,試圖使以太坊失效。為了解決這個問題,Whisk 提出了一個隱私保護協議,用於在以太坊上選舉區塊提議者。驗證者使用ZKP 來證明洗牌和隨機化是誠實的。還有其他方法也可以實現類似的目標,其中一些在a16z 的這篇部落格文章中有所涵蓋。
簽章聚合:使用ZKP 來聚合簽章可以顯著減少簽章驗證的通訊和計算開銷(驗證一個聚合證明而不是每個單獨的簽章)。這已經在ZK 輕客戶端中得到了利用,但也可能擴展到共識。
9)結算
結算類似於最高法院- 是驗證狀態轉換正確性並解決爭議的最終真相來源。一筆交易在不可逆轉的點上被視為最終(或在機率最終性的情況下,被視為足夠難以逆轉的點)。最終性所需的時間取決於所使用的基礎結算層,而基礎結算層又取決於所使用的特定最終性規則和區塊時間。
慢速最終性在跨Rollup 通訊中特別成問題,因為Rollup 需要等待以太坊的確認才能批准交易(對於樂觀Rollup,需要等待7 天;對於有效性Rollup,需要等待12 分鐘和驗證時間)。這導致用戶體驗較差。目前有多個努力來解決這個問題,包括使用具有一定安全等級的預先確認的生態系統特定解決方案(例如Polygon AggLayer 或zkSync HyperBridge)以及通用解決方案,如Near 的Fast Finality Layer,旨在透過利用EigenLayer的經濟安全性連接多個不同的Rollup 生態系統。還有一個選擇是使用EigenLayer 進行軟確認的本地Rollup 橋接,以避免等待完全最終性。
現有的ZK 集成
透過有效性Rollup 加快結算速度:與樂觀Rollup 不同,有效性Rollup 不需要挑戰期,因為它們依靠ZKP 來證明正確的狀態轉換,無論是否有人提出挑戰(悲觀Rollup)。這使得基礎層上的結算速度更快(12 分鐘與以太坊上的7 天相比),並避免了重新執行。
10)安全性
安全性與保證的難度有關,是區塊鏈的價值主張的關鍵部分。然而,引導加密經濟安全性是困難的,它增加了進入門檻,並對那些需要它的應用程式(各種中間件和替代性L1)構成了創新的摩擦。
共享安全性的概念是利用現有的PoS 網路的經濟安全性,並將其置於額外的減持風險(懲罰條件)之下,而不是每個元件都試圖引導自己的安全性。在PoW 網路中曾經嘗試過類似的做法(合併挖礦),但不一致的激勵機制使得礦工更容易串通一致並操縱協議(難以懲罰不良行為,因為工作發生在物理世界中,即使用計算能力進行挖礦)。 PoS 安全性更具彈性,可被其他協定使用,因為它既具有正面的(質押收益)又具有負面的(減持)激勵機制。
圍繞共享安全性構建的協定包括:
EigenLayer 旨在利用現有的以太坊安全性來保護各種應用程式。白皮書於2023 年初發布,EigenLayer 目前處於主網測試階段,全面主網預計將於今年稍後推出。
Cosmos 於2023 年5 月推出了其Interchain Security (ICS),可使Cosmos Hub(Cosmos 上最大的鏈之一,由約24 億美元的質押ATOM 支持)將其安全性租借給消費鏈。透過使用驅動Cosmos Hub 的相同驗證器集合來驗證消費鏈上的區塊,它旨在降低在Cosmos 堆疊之上推出新鏈的障礙。然而,目前只有兩個消費鏈是活躍的(Neutron 和Stride)。
Babylon 也在嘗試將比特幣用於共享安全性。為了解決與合併挖礦相關的問題(難以懲罰不良行為),它正在建立一個虛擬的PoS 層,在該層中用戶可以將比特幣鎖定在比特幣上的質押合約中(無需橋接)。由於比特幣沒有智慧合約層,質押合約的減持規則以比特幣腳本中的UTXO 交易形式表達。
其他網路上的重新質押包括Near 上的Octopus 和Solana 上的Picasso。 Polkadot 的平行鏈也利用了共享安全性的概念。
現有的ZK 集成
ZK 與經濟安全的混合:儘管基於ZK 的安全保證可能更強大,但對於某些應用程式來說,證明仍然是成本過高的,生成證明的時間也太長。一個例子是Brevis coChain,它是一個協處理器,從ETH 重新抵押者那裡獲得經濟安全性,並且樂觀地保證計算(透過ZK 詐欺證明)。 dApp 可根據其對安全性和成本權衡的特定需求,在純ZK 模式和coChain 模式之間進行選擇。
11)互通性
在多鏈世界中,安全高效的互通性仍然是一個重大問題,這可以從橋接駭客攻擊中損失的28 億美元得到證明。在模組化系統中,互通性變得更加重要- 不僅需要在其他鏈之間進行通信,而且模組化區塊鏈還需要不同的組件之間進行通信(例如DA 和結算層)。因此,簡單地運行完整節點或驗證單一共識證明,就像整合的區塊鏈那樣,已經不可行了。這給方程式中增加了更多的變數。
互通性包括Token 橋接和區塊鏈之間更一般的訊息傳遞。目前有幾種不同的選擇,它們在安全性、延遲和成本方面都做出了不同的權衡。要同時優化這三個面向非常困難,通常需要至少犧牲其中一個。此外,不同鏈上的不同標準使得在新鏈上實施變得更加困難。
雖然我們仍然缺乏不同類型輕客戶端(或節點)的清晰定義,但Fluent 和Modular Media 聯合創始人Dino 在這篇文章中進行了很好的介紹。大多數輕客戶端今天只驗證共識,但理想情況下,我們應該有一個可以驗證執行和DA 的輕客戶端,以減少信任假設。這將使得可以接近完整節點的安全性,而不需要高硬體要求。
現有的ZK 整合
ZK 輕客戶端(共識驗證):大多數當前的輕客戶端可以驗證其他鏈的共識- 無論是完整的驗證器集(如果足夠小)還是總驗證器的子集(例如以太坊的同步委員會) 。 ZKPs 被用來加速和降低驗證成本,因為原始鏈上使用的簽章方案可能在目標鏈上不被原生支援。雖然預計ZK 輕客戶端在橋接中的重要性將增加,但目前推廣遇到的摩擦包括證明和驗證成本,以及為每條新鏈實現ZK 輕客戶端。在這個領域的協議範例包括Polyhedra、Avail 和Celestia 的資料確認橋以及Electron Labs 的zkIBC。
儲存證明:如前所述,儲存證明使得可以查詢區塊鏈上的歷史和當前數據,而無需使用可信任第三方。這對於互通性也很重要,因為它們可以用於跨鏈通訊。例如,使用者可以證明他們在一條鏈上擁有Token,並將其用於另一條鏈上的治理(無需橋接)。還有一些嘗試將儲存證明用於橋接的解決方案,例如LambdaClass 開發的這種解決方案。
ZK Oracle:Oracle 擔任中間人,並將現實世界的資料橋接到區塊鏈。 ZK Oracle 透過能夠證明資料的來源和完整性,以及對資料進行的任何計算,改進了目前基於聲譽的Oracle 模型。
零知識證明(ZKP)可以解決的開放問題
A、完整輕客戶端:與盲目信任其他鏈的驗證器集不同- 完整輕客戶端還會驗證正確的執行和DA。這減少了信任假設,並接近完整節點,同時保持硬體要求低(允許更多人運行輕客戶端)。然而,在大多數鏈上驗證共識以外的任何內容仍然成本過高,特別是在以太坊上。此外,輕客戶端僅能夠驗證資訊(問題的一半),即它們可以識別資訊是否錯誤,但仍需要額外的機制來讓它們採取行動。
B、聚合層:Polygon 的AggLayer 旨在透過利用聚合證明和統一的橋接合約,在生態系統內實現L2 之間的平滑互通性。聚合證明既能實現更有效率的驗證,又能提供更高的安全性- 強制執行依賴鏈狀態和捆綁包一致,並確保如果一個rollup 狀態依賴於另一個鏈的無效狀態,則不能在以太坊上解決該狀態。 zkSync 的HyperChains 和Avail 的Nexus 採取了類似的方法。
5.當零知識證明(ZKP)吞噬了模組化堆疊時會出現什麼情況?
假設我們能夠達到一種狀態,其中產生ZKP 變得非常快速(幾乎接近光速)且成本極低(幾乎免費),那麼最終的結果會是什麼樣子?換句話說,當ZKP 吞噬了模組化堆疊時會出現什麼情況?
總體而言,我們認為在這種情況下會有兩個真實存在的情況:
消除所有不必要的重新執行:透過轉向1/N 的執行模型(而不是具有重新執行的N/N 模型),我們顯著減少了網路的整體冗餘,並實現了對底層硬體更有效率的利用。儘管仍然存在一些開銷,但這將有助於區塊鏈在計算效率方面漸進地接近中心化系統。
大多數應用程式依賴啟用ZKP 的加密保證而不是經濟安全性:當產生證明的成本和時間不再是相關因素時,我們認為大多數應用程式將依賴ZKP 以獲得更強的保證。這還需要改進可用性和開發者友好性,以建立ZKP 應用程序,但這些都是多個團隊正在解決的問題。
第三個條件涉及隱私(或資訊流管理),但這更加複雜。使用客戶端證明,ZKP 可以用於一些隱私應用,這就是像Aleo、Aztec 或Polygon Miden 等平台正在構建的內容,但實現廣泛的隱私保護以適用於所有潛在用例還取決於MPC 和FHE 的進展-這是一個未來部落格文章的潛在主題。
6.我們論點的風險
如果我們錯了,未來既不是模組化也不是零知識化呢?我們論點的一些潛在風險包括:
模組化增加了複雜性
使用者和開發者都受到鏈數量不斷增加的影響。用戶需要在多個鏈之間管理資金(可能還需要多個錢包)。另一方面,應用開發者在空間仍在不斷演進的情況下,面臨更少的穩定性和可預測性,這使得他們更難決定在哪個鏈上建立應用。他們還需要考慮狀態和流動性的碎片化。尤其現在,因為我們仍在探索哪些元件適合解耦,哪些會重新耦合,所以這一點尤其真實。我們相信使用者操作的抽象化以及安全且高效的互通性解決方案是解決這個問題的關鍵部分。
ZK 是否會夠有效率?
無論如何,證明生成都太耗時,而且今天的證明和驗證成本仍然過高。對於許多應用程式來說,競爭性解決方案,例如可信任執行環境/TEEs(隱私)或樂觀/ 加密經濟安全解決方案(成本),如今仍更有意義。
然而,關於ZKP 的軟體優化和硬體加速方面的工作已經在進行中。證明聚合將透過將成本分攤給多個不同的參與者(較低的成本/ 用戶)來進一步降低驗證成本。還有可能調整基礎層以更優化地驗證ZKP。關於ZKP 的硬體加速的一個挑戰是證明系統的快速發展。這使得創建專門硬體(ASICs)變得困難,因為如果/ 當基礎證明系統的標準發生變化時,它們可能很快就會過時。
Ingonyama 嘗試透過稱為ZK 評分的可比較指標來創建一些證明者效能基準。它基於運行計算的成本(OPEX),並追蹤MMOPS/WATT,其中MMOPS 代表每秒模組化乘法運算。有關該主題的更多閱讀建議參考Cysic 和Ingonyama 的博客,以及Wei Dai 的這篇演講。
有限的ZKP 提供的隱私是否有用?
ZKP 只能用於實現個人狀態的隱私,而不是多方需要在加密資料上進行計算的共享狀態(例如私人Uniswap)。完全的隱私還需要FHE 和MPC,但在成本和性能方面需要有很大的提升,才能成為更廣泛使用的可行選項。也就是說,ZKP 對於某些不需要私有共享狀態的用例仍然有用,例如身分解決方案或付款。並非所有問題都需要用同一種工具解決。
7.總結
那麼,這給我們留下了什麼?雖然我們每天都在取得進步,但還有許多工作要做。最迫切需要解決的問題是如何在不犧牲速度或成本的情況下,安全地在不同的模組化組件之間傳遞價值和信息,以及如何將所有這些抽象化,使最終用戶無需擔心在不同鏈之間橋接、切換錢包等問題。
雖然我們目前仍處於實驗階段,但隨著時間的推移,情況應該會穩定下來,因為我們會找出對每個用例來說最佳權衡的位置在哪裡。這反過來將為標準(非正式或正式)的出現提供空間,並為在這些鏈之上構建的人提供更多穩定性。
今天仍然有許多用例預設使用加密經濟安全,這是由於生成ZKP 的成本和複雜性,還有一些需要兩者結合使用的。然而,隨著我們設計更有效的證明系統和專門的硬體來降低證明和驗證的成本和延遲,這一份額應該會隨著時間的推移而減少。隨著成本和速度的每次指數級降低,新的用例將被解鎖。
雖然這篇文章專注於ZKP,但我們也越來越關注現代密碼學解決方案(ZKP、MPC、FHE 和TEE)如何共同發揮作用,這是我們已經開始看到的。