淡馬錫 Web3 基金 Superscrypt:存儲證明將解鎖大量跨鏈新用例
原文標題:Blockchain Interoperability Part III: Storage Proofs, Powering new cross-chain use cases
作者:Jacob,Superscrypt
編譯: bayemon.eth, ChainCatcher
在關於互操作性第二部分中,我們探討了共識證明作為一種新興的信任最小化方式,如何促進區塊鏈之間的橋接。
在本文中,我們將探討存儲證明(Storage Proofs),它採用了信任最小化驗證概念,並將其擴展到區塊歷史交易記錄中。通過這種存儲證明驗證歷史交易和用戶活動,能夠解鎖大量跨鏈用例。
在第二部分中,我們介紹了共識證明(Consensus Proofs),這是一種跨區塊鏈橋接資金的信任最小化方法。由於橋接用戶通常希望交易能在無延遲的情況下即時完成,因此共識證明非常有效。因為它可以在區塊鏈持續同步的過程中不斷檢查區塊鏈的最新狀態。
這種"信任最小化橋接"的概念也可以反向應用,即追溯歷史,使用零知識證明來驗證舊區塊中的交易和數據。這些 "歷史存儲證明 "可以實現一系列不同的跨鏈用例,在本文中,我們將介紹存儲證明的定義,原理以及用例。
檢索歷史數據
區塊鏈歷史數據有多種用途。它可以證明資產所有權、記錄用戶行為和交易歷史,然後將其輸入鏈上智能合約或應用程序。截至目前,寫入以太坊的區塊已超過 1800 萬個。然而,智能合約只能訪問最新的 256 個區塊(或最近約 30 分鐘內的數據),因此 "歷史數據 "指的是最後 256 個區塊之外的其他信息。
如今,要訪問歷史數據,協議通常會查詢存檔節點提供商,即如 Infura、Alchemy 或其他索引器在內的其他第三方。這意味著要信任和依賴它們及其數據。
歷史數據
不過,可以通過使用存儲證明,以相對更低的信任水平完成數據檢索。
存儲證明是零知識證明,可以驗證存儲在區塊鏈上的歷史數據。更具體地說,"存儲證明 "可用於證明過去某個區塊存在特定狀態。其特點是不需要信任第三方或甲骨文,而是將信任內置於存儲證明中。
存儲證明如何幫助驗證某些數據存在於較早的歷史區塊中?這涉及到兩步驗證:
- 步驟1:檢查特定區塊是否確實存在於鏈上歷史記錄中,例如,區塊是源鏈歷史的有效組成部分
- 步驟2:檢查特定數據是否是區塊的一部分,即特定交易等信息是否是該區塊的一部分(這部分驗證可以通過Merkle 包含證明完成)
接收方(如目的鏈上的智能合約)並完成證明後,就會對數據有效性產生信任,從而執行相應的指令集。這個概念還可以進一步擴展:可以使用經過驗證的數據運行額外的鏈外計算,然後生成另一個零知識證明,以證明數據和計算。
簡而言之,存儲證明允許以信任最小化的方式檢索歷史鏈上數據。這一點非常重要,因為正如我們在第一部分中所概述的,我們認為在未來幾年中,Web3 將變得更加多鏈和多層。多種Layer1與rollup 和應用鏈的出現意味著用戶的鏈上活動可能在多條鏈上同時進行。這就更強調了對信任最小化互操作性解決方案的需求,這種解決方案可以在多個域中保持用戶資產、身份和交易歷史的可組合性。這正是存儲證明可以幫助解決的問題。
存儲證明用例
存儲證明允許智能合約作為先決條件檢查任何歷史交易或數據。這為跨鏈應用設計提供了極大的靈活性。
首先,存儲證明可以證明源區塊鏈上的任何歷史數據,例如:
- 帳戶餘額和代幣所有權
- 用戶交易活動
- 指定時間內資產交易的歷史價格
- 不同鏈上流動性池中的實時資產餘額
其次,存儲證明可以被發送至目標鏈上,從而解鎖各種跨鏈用例:
- 使用戶能夠選擇較低成本的 L2 對治理提案進行投票
- 允許 NFT 持有者在新鏈上獲得鑄造NFT與獲取社區利益
- 根據用戶與特定 dApp 的歷史和互動情況獎勵用戶(如空投)。
- 根據用戶的綜合交易和信用記錄提供利率貸款
- 對休眠帳戶進行恢復
- 針對未來交易計算歷史 TWAP
- 根據多條鏈上的流動性池計算更準確的 AMM 交易價格
從本質上講,存儲證明允許應用程序在多個鏈上查詢和移植用戶的鏈上活動和歷史記錄,以便為另一個鏈上的智能合約或應用程序提供信息。
存儲證明 - 用例
以下,我們通過一個更詳細的例子解釋存儲證明的工作機制。
存儲證明機制用例詳解
假設"X"是一個在以太坊上使用代幣的 DeFi 協議。X將發布一項治理提案,項目方希望在成本更低的鏈上發布以促進用戶投票。用戶只有在特定時間點(即快照,例如區塊 #17,000,000)在以太坊上持有 X 代幣,才能進行投票。
當前是如何實現的?
當前的方法是查詢存檔節點,以獲取區塊 #17,000,000 中滿足要求的代幣持有者完整名單。隨後,DAO 管理員將該名單存儲在目標鏈上的智能合約中,以確定最終合乎標準的投票名單。然而,這種方法有一些局限性:
- 投票者名單可能非常龐大,而且每次快照都會發生變化,這使得每次投票提案的鏈上存儲和更新成本很高;
- 對歸檔節點提供商及其提供的數據存在隱含信任;
- 必須確保管理 DAO 的成員不會篡改投票名單
存儲證明如何實現
正如我們在第二部分中解釋的那樣,昂貴的計算可以交給鏈外零知識證明器。
zk 校驗器將生成簡潔的證明,並發送給目標鏈進行驗證。以上述 DAO 投票資格為例:
- 證明者生成零知識證明,證明 #17,000,000 區塊是以太坊歷史的一部分(上文步驟 1.)。
- 在證明了區塊的有效性後,我們可以使用Merkle 包含證明(Merkle inclusion proofs)證明用戶在該區塊最終完成時持有 DAO 代幣(上文步驟 2.)。
歷史數據證明使跨鏈投票成為可能
隨後,證明被發送到目標鏈上的智能合約進行驗證。如果驗證成功,L2 上的智能合約就會賦予用戶投票權。
使用存儲證明有幾點優勢,因其存在使得驗證過程並不需要:
- 信任歸檔節點提供商;
- 協議無需維護昂貴的鏈上選民名單
- 讓用戶將其資產轉移到目標鏈上
存儲證明需要的設置
到目前為止,我們已經抽象出了存儲證明的一些複雜性。但是,使用存儲證明需要服務提供商進行縝密的初始設置,以確保可以在不信任提供商的情況下使用存儲證明。作為這一過程的一部分,有兩樣東西會在鏈上生成和存儲:
- 整個鏈的零知識證明("zk 承諾" ):服務提供商將源鏈上的所有歷史區塊通過Merkle Tree 分為為連續且大小固定的 "塊",並為每個塊生成零知識證明,以驗證分組。然後將這些證明遞歸合併,直到獲得最終的零知識證明,這是對整個鏈的 "zk 承諾"。這證明提供者已正確索引了整個鏈的歷史。
基於以太坊歷史信息生成的 zk 承諾
- Merkle Mountain Range 數據結構:供應商還將源碼鏈的區塊哈希值(塊)分組的 Keccak Merkle 根存儲在名為 Merkle Mountain Range (MMR) 的鏈上數據結構中。使用這種數據結構是因為它易於查詢和更新,並能讓提供商高效地證明給定區塊存在於鏈的歷史中。MMR 使用 Keccak256 哈希值、Poseidon 哈希值或兩種哈希值創建。Poseidon哈希值對零知識更友好,允許在歷史數據上進行計算,然後通過零知識證明數據和計算的有效性。
Merkle Mountain Range(MMR)
隨著新區塊增加,服務提供商會定期(如每小時或每天)更新 "zk 承諾 "和 MMR,並與源鏈同步。這樣做的目的是保持歷史區塊始終與當前可從 EVM 訪問的 256 個區塊相關聯。這確保了歷史數據與以太坊當前可用的區塊之間的關聯性。
在下圖中,我們詳細介紹了如何實現這一設置:
綜上所述,下文闡述了設置完成後存儲證明在我們前面介紹的 DAO 投票示例中的具體方法:
- 服務供應商創建並存儲整個鏈上的 "zk 承諾"(即以太坊交易歷史)和目標鏈上的 MMR
- 服務供應商提供應用程序接口查詢鏈上或鏈外的歷史數據
- 目標鏈上的投票 dApp 向供應商智能合約發送查詢,確認用戶是否在以太坊上的 #17,000,000 區塊持有 DAO 代幣
- 此外,對於供應商而言則需要檢驗:
- 查詢的區塊是以太坊歷史記錄的一部分(上文步驟 1);隨後提通過MMR生成區塊包含的零知識證明
- 用戶在 #17,000,000 區塊中持有 DAO 代幣(上述步驟 2.);然後供應商生成另一個零知識證明,證明用戶在該區塊內持有 DAO 代幣
- 供應商者將上述生成的證明匯總為一個單一的零知識證明
- 然後將匯總的零知識證明發回目標鏈上的投票 dApp 智能合約,由其進行驗證,驗證成功後允許用戶投票。
致力於該領域的項目團隊
有幾家公司正在構建以信任最小化的方式訪問鏈上歷史數據的智能合約。
Axiom,目前已在以太坊上線,旨在通過基於 zk 的存儲證明(Storage Proofs),為以太坊上的智能合約提供訪問以太坊歷史數據的途徑。該團隊還在增強在歷史數據基礎上進行鏈外計算的能力,並在零知識中證明這些數據和計算的正確性。
Relic Protocol 採用與 Axiom 類似的技術方法,並已在以太坊和 zkSync Era 上運行。Relic 使用 Merkle 包含證明來證明數據包含(與 Axiom 在零知識中證明 Merkle 包含的方法不同)。
Herodotus 正在努力為 L2 提供以太坊歷史數據。目前,測試網已在 Starknet 和 zkSync Era 上線。有了 OP 基金會的資助,Herodotus 團隊的下一個目標已經非常清晰了。
Lagrange Labs 通過最近的 ZK MapReduce(ZKMR)創新引入了完全可更新的證明。它使用了一種名為 Recproofs 的新向量承諾,將可更新性的概念擴展到了數據計算。
結論
在本部分中,我們介紹了存儲證明如何在無需信任第三方的情況下驗證鏈上歷史數據。這使其成為鏈上組成和跨鏈互操作性的重要工具。
隨著總價值鎖定繼續從以太坊遷移到第二層生態系統,我們預計通過存儲證明利用鏈上歷史數據的更具表現力的應用程序將會興起。
雖然零知識證明的驗證速度越來越快、成本越來越便宜,但不斷生成存儲證明以跟上鏈上狀態的成本仍然是一個挑戰。此類服務的盈利能力將取決於查詢應用所產生的查詢量。
儘管存在挑戰,但由零知識技術驅動的共識證明和存儲證明的重要性怎麼強調都不為過。我們很期待看到這些技術將如何用於構建一個更加信任最小化的多鏈未來。