區塊鏈互操作性(下):存儲證明——爲新的跨鏈用例提供動力

進階Dec 17, 2023
本文探討了存儲證明及其在區塊鏈交易歷史驗證中的應用,利用最小信任驗證的概念來驗證歷史交易和用戶活動,從而解鎖大量跨鏈用例。本文還指出,這種基於零知識證明的方法可以有效解決一些L2區塊鏈和中心化節點服務提供商遇到的數據存儲問題。
區塊鏈互操作性(下):存儲證明——爲新的跨鏈用例提供動力

在會操作性的上一篇文章中,我們探討了共識證明這種新興的信任最小化方式在促進區塊鏈之間橋接方麵的作用。

在本文中,我們將探討存儲證明,它採用信任最小化驗證概念,併將其擴展到較舊的歷史區塊中的交易。以這種方式驗證過往的交易和用戶活動的能力可解鎖大量的跨鏈用例。

上篇文章中,我們介紹了共識證明——一種跨區塊鏈橋接資金的信任最小化方法。由於橋接用戶通常希望看到交易在最新時刻立即髮生,因此共識證明非常有用,因爲他們在區塊鏈運作時會不斷檢查區塊鏈的最新狀態。

這種信任最小化橋接的概念也可應用於另一個方曏,即追溯到過去併使用零知識證明來驗證舊區塊中的交易和數據。這些“歷史存儲證明”支持不衕範圍的跨鏈用例,在本文中我們將介紹這些用例、它們如何工作以及在這個領域構建的參與者。

檢索歷史數據

歷史區塊鏈數據有多種用途。它能用於證明資産所有權、用戶行爲和交易歷史記録,然後將這些輸入到鏈上智能合約或應用程序中。截至撰寫本文時,已有超過1800萬個區塊寫入以太坊。智能合約隻能訪問最新的256個區塊(或最近30分鐘內的數據),因此“歷史數據”指的是最後256個區塊之外的任何數據。

如今,爲了訪問歷史數據,協議通常會查詢存檔節點提供商,即 Infura、Alchemy 或其他索引器等第三方。這意味著信任併依賴他們及其數據。

Historical data

This data can, however, be retrieved in a more trust-minimized fashion, through the use of Storage Proofs.

歷史數據

然而,可通過使用存儲證明以更加信任最小化的方式來檢索這些數據。

存儲證明是零知識證明,允許驗證存儲在區塊鏈上的歷史數據。更具體地説,存儲證明可用於證明過去特定區塊中存在特定狀態。此方法不需要對第三方或預言機的信任;相反,其信任內置於存儲證明中

存儲證明如何幫助驗證某些數據是否存在於較舊的歷史區塊中呢?這需要驗證兩件事:

  • 第一步,檢查特定區塊是否是區塊鏈規範歷史的一部分,即該區塊是源鏈歷史的有效部分
  • 第二步,檢查特定數據是否是該區塊的一部分,即某條信息(例如特定交易)是該區塊的一部分(這能通過 Merkle包含證明來證明)

在接收併驗證證明之後,接收者(例如目標鏈上的智能合約)相信數據的有效性,併且可執行相應的指令集。這個概念可進一步擴展:可以使用經過驗證的數據運行額外的鏈外計算,然後生成另一個零知識證明,以證明數據和計算。

簡而言之,存儲證明支持以信任最小化的方式檢索歷史鏈上數據。這很重要,因爲正如我們在第一篇文章中概述的那樣,我們看到 web3 在未來幾年已變得爲更加多鏈和多層的空間。多個 第1層協議、Rollup 和應用鏈的出現意味著用戶的鏈上活動可能會分散到多個鏈上。這更加強調了對信任最小化互操作性解決方案的需求,該解決方案可維護跨多個域的用戶資産、身份和交易歷史記録的可組合性。這是存儲證明能幫助解決的問題。

存儲證明有哪些用例?

存儲證明允許智能合約檢查任何歷史交易或數據作爲先決條件。這讓跨鏈應用程序設計變得更加靈活。

首先,存儲證明可證明源區塊鏈上的任何歷史數據,例如

  1. 賬戶餘額和代幣所有權
  2. 用戶交易活動或靜態狀態
  3. 指定時間段內資産交易的歷史價格
  4. 跨鏈流動性池實時資産餘額

然後,可將證明髮送到目標鏈,以解鎖跨鏈用例的範圍:

  1. 使用戶能夠在成本較低的第2層協議上對治理提案進行投票
  2. 允許 NFT 持有者穫得新的 NFT 鑄幣或新鏈上的社區福利
  3. 根據用戶的歷史記録以及與特定 dApp 的交互來獎勵用戶(例如通過空投)
  4. 根據用戶的總體交易和信用記録提供自定義利率的貸款
  5. 觸髮休眠帳戶的帳戶恢覆
  6. 計算期貨掉期的歷史 TWAP
  7. 根據多鏈流動性池計算更準確的AMM掉期價格

本質上,存儲證明允許應用程序跨多個鏈查詢和移植用戶的鏈上活動和歷史記録,以輸入到另一個鏈上的智能合約或應用程序中。

存儲證明用例

讓我們通過一個詳細的例子來了解存儲證明是如何運作的。

存儲證明的工作原理:詳細示例

假設“X”,它是以太坊上帶有代幣的 DeFi 協議。一項治理提案即將提出,他們希望推動在成本較低的目標鏈上進行鏈上投票。用戶隻有在特定時間點(我們稱之爲“快照”)在以太坊上持有 X 代幣時才能投票,例如區塊 #17,000,000

目前投票在鏈上是如何完成的?

目前的方法是,查詢存檔節點以穫取區塊 #17,000,000 處合格代幣持有者的完整清單。然後,DAO 管理員將該清單存儲在目標鏈上的智能合約中,以確定誰可以投票。這種方法有一些局限性:

  1. 投票者清單可能非常長,併且每個快照都會髮生變化,緻使在鏈上存儲和更新每個投票提案的成本變得很高;
  2. 對存檔節點提供商及其提供的數據存在隱含的信任;
  3. 必鬚信任管理 DAO 的成員不會篡改選民名單

存儲證明如何解決這個問題?

正如我們在第2篇文章中所解釋的那樣,高昂成本的計算可轉移由鏈下零知識證明者進行。

zk 證明者將生成一個簡潔的證明,併將其髮送到目標鏈進行驗證。對於以上 DAO 選民資格示例如下:

  1. 證明者生成一個零知識證明,證明區塊 #17,000,000 是以太坊歷史的一部分(如上第一步驟*)。
  2. 在證明區塊的有效性之後,我們可使用 Merkle 包含證明證明用戶在該區塊最終確定時持有 DAO 代幣(如上第二步*)

驗證歷史數據以啟用跨鏈投票

然後,該證明被髮送到目標鏈上的智能合約進行驗證。如果驗證成功,那麽第2層協議上的智能合約允許用戶投票。

這種方法解決了一些問題。它無需:

信任存檔節點提供商;

  1. 讓協議維護昂貴的鏈上選民名單;
  2. 供用戶將資産轉移至目的鏈

存儲證明需要什麽設置?

到目前爲止,我們已抽象出了存儲證明的一些覆雜性。然而,使用它們還需要服務提供商進行精心的初始設置,以確保可在不信任提供商的情況下使用它們。在此過程中,有兩件事會生成併存儲在鏈上:

  1. 全鏈的零知識證明(“zk 承諾”):服務提供商將源鏈上的所有歷史區塊分組爲連續的固定大小的“塊”(使用 Merkle 樹),併爲每個區塊生成零知識證明,用用於驗證分組。然後遞歸地組合這些證明,直到穫得最終的零知識證明,即對整個鏈的“zk 承諾”。這證明提供者已正確索引鏈的整個歷史記録。

“zk承諾”對以太坊整個歷史的闡釋

  • Merkle Mountain Range:提供商還將源鏈的塊哈希(塊)分組的 Keccak Merkle 根存儲在稱爲 Merkle Mountain Range (MMR) 的鏈上數據結構中。使用這種數據結構是因爲它易於查詢和更新,併且可讓提供者有效證明給定的塊存在於鏈的歷史中。 MMR 使用 Keccak256 哈希、Poseidon 哈希或這兩者創建。Poseidon 哈希對零知識更加友好,支持計算歷史數據,之後數據和計算的有效性可通過零知識得到證明。

Merkel Mountain Range (MMR)插圖

當新區塊添加到源鏈時,服務提供商會定期(例如每小時或每天)更新“zk 承諾”和 MMR,以跟上鏈的步伐。這樣做是爲了使過去的區塊始終鏈接到當前可從 EVM 訪問的256個區塊之一。這確保歷史數據鏈接到以太坊當前可用的區塊之一。

在下圖中,我們詳細介紹了如何完成設置:

綜上所述,以下展示了在我們之前介紹的 DAO 投票示例的上下文中、在設置完成後如何使用存儲證明:

  1. 服務提供商創建併存儲對整個鏈(即以太坊歷史)的“zk 承諾”以及目標鏈上的 MMR
  2. 提供商允許應用程序通過API查詢鏈上或鏈下的歷史數據
  3. 目標鏈上的投票 dApp 曏提供商智能合約髮送查詢,以查明用戶是否在以太坊上的區塊 #17,000,000 上持有 DAO 代幣

提供商會檢查兩件事:

  1. 查詢的區塊是以太坊規範歷史的一部分(以上第一步);然後,提供者通過 Merkle Mountain Range 生成區塊包含的零知識證明
  2. 用戶在區塊 #17,000,000 中持有 DAO 代幣(以上第二步);然後,提供者生成另一個零知識證明,證明用戶在區塊內持有 DAO 代幣
  3. 提供者將上麵生成的證明聚合成一個零知識證明
  4. 然後,聚合的 ZK 證明被髮送回目標鏈上的投票 dApp 智能合約,以驗證ZK 證明,併在驗證成功後允許用戶投票。

該領域的團隊建設

一些參與者正在構建使智能合約能夠以信任最小化的方式訪問歷史鏈上數據。

目前,Axiom已在以太坊上運行,緻力於在以太坊上提供智能合約,併通過基於 zk 的存儲證明訪問歷史以太坊數據。團隊還在增強基於歷史數據的鏈下計算能力,併使用零知識來證明這些數據和計算的正確性。

Relic Protocol 提供的技術方法與 Axiom 類似,併且該協議在以太坊和 zkSync Era 上運行。 Relic 使用 Merkle 包含證明來證明數據包含(與 Axiom 在零知識中證明 Merkle 包含的方法相反)。

Herodotus 正在努力爲第2層協議提供以太坊的歷史數據。測試實現現已在 Starknet 和 zkSync Era 上提供。有了 OP 基金會的資助,我們認爲,我們知曉了Herodotus團隊下一步的髮展方曏。

Lagrange Labs實驗室通過其最近的 ZK MapReduce (ZKMR) 創新引入了完全可更新的證明。它使用一種稱爲 Recproofs 的新曏量承諾,將可更新性的概念擴展到數據計算中。

從事存儲證明工作的團隊

結語

在本文中,我們介紹了存儲證明如何支持驗證歷史鏈上數據,而無需信任第三方。這使它們成爲鏈上組合和跨鏈互操作性的寶貴工具。

隨著總鎖定價值(TVL)繼續從以太坊遷移到第2層生態繫統,我們預計更具錶現力的應用程序將會出現,這些應用程序通過存儲證明利用歷史鏈上數據。

雖然零知識技術正變得更快、更便宜,但不斷生成存儲證明以跟上鏈狀態多帶來的成本仍是一個挑戰。此類服務的盈利能力將取決於查詢應用程序生成的查詢量。

盡管有挑戰,但由零知識技術支持的共識證明和存儲證明所具有的重要性怎麽強調也不爲過。我們期待見證這些技術將如何用於構建信任最小化的多鏈未來。

聲明:

  1. 本文轉載自Superscrypt World,版權歸原作者【Jacob】所有。如對轉載有異議,請聯繫Gate Learn團隊(gatelearn@gate.io)。團隊將盡快按照相關程序進行處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 本文章的其他語言版本由Gate Learn團隊翻譯。在未提及 Gate.io 的情況下不得覆製、抄襲或髮布所譯文章。

區塊鏈互操作性(下):存儲證明——爲新的跨鏈用例提供動力

進階Dec 17, 2023
本文探討了存儲證明及其在區塊鏈交易歷史驗證中的應用,利用最小信任驗證的概念來驗證歷史交易和用戶活動,從而解鎖大量跨鏈用例。本文還指出,這種基於零知識證明的方法可以有效解決一些L2區塊鏈和中心化節點服務提供商遇到的數據存儲問題。
區塊鏈互操作性(下):存儲證明——爲新的跨鏈用例提供動力

在會操作性的上一篇文章中,我們探討了共識證明這種新興的信任最小化方式在促進區塊鏈之間橋接方麵的作用。

在本文中,我們將探討存儲證明,它採用信任最小化驗證概念,併將其擴展到較舊的歷史區塊中的交易。以這種方式驗證過往的交易和用戶活動的能力可解鎖大量的跨鏈用例。

上篇文章中,我們介紹了共識證明——一種跨區塊鏈橋接資金的信任最小化方法。由於橋接用戶通常希望看到交易在最新時刻立即髮生,因此共識證明非常有用,因爲他們在區塊鏈運作時會不斷檢查區塊鏈的最新狀態。

這種信任最小化橋接的概念也可應用於另一個方曏,即追溯到過去併使用零知識證明來驗證舊區塊中的交易和數據。這些“歷史存儲證明”支持不衕範圍的跨鏈用例,在本文中我們將介紹這些用例、它們如何工作以及在這個領域構建的參與者。

檢索歷史數據

歷史區塊鏈數據有多種用途。它能用於證明資産所有權、用戶行爲和交易歷史記録,然後將這些輸入到鏈上智能合約或應用程序中。截至撰寫本文時,已有超過1800萬個區塊寫入以太坊。智能合約隻能訪問最新的256個區塊(或最近30分鐘內的數據),因此“歷史數據”指的是最後256個區塊之外的任何數據。

如今,爲了訪問歷史數據,協議通常會查詢存檔節點提供商,即 Infura、Alchemy 或其他索引器等第三方。這意味著信任併依賴他們及其數據。

Historical data

This data can, however, be retrieved in a more trust-minimized fashion, through the use of Storage Proofs.

歷史數據

然而,可通過使用存儲證明以更加信任最小化的方式來檢索這些數據。

存儲證明是零知識證明,允許驗證存儲在區塊鏈上的歷史數據。更具體地説,存儲證明可用於證明過去特定區塊中存在特定狀態。此方法不需要對第三方或預言機的信任;相反,其信任內置於存儲證明中

存儲證明如何幫助驗證某些數據是否存在於較舊的歷史區塊中呢?這需要驗證兩件事:

  • 第一步,檢查特定區塊是否是區塊鏈規範歷史的一部分,即該區塊是源鏈歷史的有效部分
  • 第二步,檢查特定數據是否是該區塊的一部分,即某條信息(例如特定交易)是該區塊的一部分(這能通過 Merkle包含證明來證明)

在接收併驗證證明之後,接收者(例如目標鏈上的智能合約)相信數據的有效性,併且可執行相應的指令集。這個概念可進一步擴展:可以使用經過驗證的數據運行額外的鏈外計算,然後生成另一個零知識證明,以證明數據和計算。

簡而言之,存儲證明支持以信任最小化的方式檢索歷史鏈上數據。這很重要,因爲正如我們在第一篇文章中概述的那樣,我們看到 web3 在未來幾年已變得爲更加多鏈和多層的空間。多個 第1層協議、Rollup 和應用鏈的出現意味著用戶的鏈上活動可能會分散到多個鏈上。這更加強調了對信任最小化互操作性解決方案的需求,該解決方案可維護跨多個域的用戶資産、身份和交易歷史記録的可組合性。這是存儲證明能幫助解決的問題。

存儲證明有哪些用例?

存儲證明允許智能合約檢查任何歷史交易或數據作爲先決條件。這讓跨鏈應用程序設計變得更加靈活。

首先,存儲證明可證明源區塊鏈上的任何歷史數據,例如

  1. 賬戶餘額和代幣所有權
  2. 用戶交易活動或靜態狀態
  3. 指定時間段內資産交易的歷史價格
  4. 跨鏈流動性池實時資産餘額

然後,可將證明髮送到目標鏈,以解鎖跨鏈用例的範圍:

  1. 使用戶能夠在成本較低的第2層協議上對治理提案進行投票
  2. 允許 NFT 持有者穫得新的 NFT 鑄幣或新鏈上的社區福利
  3. 根據用戶的歷史記録以及與特定 dApp 的交互來獎勵用戶(例如通過空投)
  4. 根據用戶的總體交易和信用記録提供自定義利率的貸款
  5. 觸髮休眠帳戶的帳戶恢覆
  6. 計算期貨掉期的歷史 TWAP
  7. 根據多鏈流動性池計算更準確的AMM掉期價格

本質上,存儲證明允許應用程序跨多個鏈查詢和移植用戶的鏈上活動和歷史記録,以輸入到另一個鏈上的智能合約或應用程序中。

存儲證明用例

讓我們通過一個詳細的例子來了解存儲證明是如何運作的。

存儲證明的工作原理:詳細示例

假設“X”,它是以太坊上帶有代幣的 DeFi 協議。一項治理提案即將提出,他們希望推動在成本較低的目標鏈上進行鏈上投票。用戶隻有在特定時間點(我們稱之爲“快照”)在以太坊上持有 X 代幣時才能投票,例如區塊 #17,000,000

目前投票在鏈上是如何完成的?

目前的方法是,查詢存檔節點以穫取區塊 #17,000,000 處合格代幣持有者的完整清單。然後,DAO 管理員將該清單存儲在目標鏈上的智能合約中,以確定誰可以投票。這種方法有一些局限性:

  1. 投票者清單可能非常長,併且每個快照都會髮生變化,緻使在鏈上存儲和更新每個投票提案的成本變得很高;
  2. 對存檔節點提供商及其提供的數據存在隱含的信任;
  3. 必鬚信任管理 DAO 的成員不會篡改選民名單

存儲證明如何解決這個問題?

正如我們在第2篇文章中所解釋的那樣,高昂成本的計算可轉移由鏈下零知識證明者進行。

zk 證明者將生成一個簡潔的證明,併將其髮送到目標鏈進行驗證。對於以上 DAO 選民資格示例如下:

  1. 證明者生成一個零知識證明,證明區塊 #17,000,000 是以太坊歷史的一部分(如上第一步驟*)。
  2. 在證明區塊的有效性之後,我們可使用 Merkle 包含證明證明用戶在該區塊最終確定時持有 DAO 代幣(如上第二步*)

驗證歷史數據以啟用跨鏈投票

然後,該證明被髮送到目標鏈上的智能合約進行驗證。如果驗證成功,那麽第2層協議上的智能合約允許用戶投票。

這種方法解決了一些問題。它無需:

信任存檔節點提供商;

  1. 讓協議維護昂貴的鏈上選民名單;
  2. 供用戶將資産轉移至目的鏈

存儲證明需要什麽設置?

到目前爲止,我們已抽象出了存儲證明的一些覆雜性。然而,使用它們還需要服務提供商進行精心的初始設置,以確保可在不信任提供商的情況下使用它們。在此過程中,有兩件事會生成併存儲在鏈上:

  1. 全鏈的零知識證明(“zk 承諾”):服務提供商將源鏈上的所有歷史區塊分組爲連續的固定大小的“塊”(使用 Merkle 樹),併爲每個區塊生成零知識證明,用用於驗證分組。然後遞歸地組合這些證明,直到穫得最終的零知識證明,即對整個鏈的“zk 承諾”。這證明提供者已正確索引鏈的整個歷史記録。

“zk承諾”對以太坊整個歷史的闡釋

  • Merkle Mountain Range:提供商還將源鏈的塊哈希(塊)分組的 Keccak Merkle 根存儲在稱爲 Merkle Mountain Range (MMR) 的鏈上數據結構中。使用這種數據結構是因爲它易於查詢和更新,併且可讓提供者有效證明給定的塊存在於鏈的歷史中。 MMR 使用 Keccak256 哈希、Poseidon 哈希或這兩者創建。Poseidon 哈希對零知識更加友好,支持計算歷史數據,之後數據和計算的有效性可通過零知識得到證明。

Merkel Mountain Range (MMR)插圖

當新區塊添加到源鏈時,服務提供商會定期(例如每小時或每天)更新“zk 承諾”和 MMR,以跟上鏈的步伐。這樣做是爲了使過去的區塊始終鏈接到當前可從 EVM 訪問的256個區塊之一。這確保歷史數據鏈接到以太坊當前可用的區塊之一。

在下圖中,我們詳細介紹了如何完成設置:

綜上所述,以下展示了在我們之前介紹的 DAO 投票示例的上下文中、在設置完成後如何使用存儲證明:

  1. 服務提供商創建併存儲對整個鏈(即以太坊歷史)的“zk 承諾”以及目標鏈上的 MMR
  2. 提供商允許應用程序通過API查詢鏈上或鏈下的歷史數據
  3. 目標鏈上的投票 dApp 曏提供商智能合約髮送查詢,以查明用戶是否在以太坊上的區塊 #17,000,000 上持有 DAO 代幣

提供商會檢查兩件事:

  1. 查詢的區塊是以太坊規範歷史的一部分(以上第一步);然後,提供者通過 Merkle Mountain Range 生成區塊包含的零知識證明
  2. 用戶在區塊 #17,000,000 中持有 DAO 代幣(以上第二步);然後,提供者生成另一個零知識證明,證明用戶在區塊內持有 DAO 代幣
  3. 提供者將上麵生成的證明聚合成一個零知識證明
  4. 然後,聚合的 ZK 證明被髮送回目標鏈上的投票 dApp 智能合約,以驗證ZK 證明,併在驗證成功後允許用戶投票。

該領域的團隊建設

一些參與者正在構建使智能合約能夠以信任最小化的方式訪問歷史鏈上數據。

目前,Axiom已在以太坊上運行,緻力於在以太坊上提供智能合約,併通過基於 zk 的存儲證明訪問歷史以太坊數據。團隊還在增強基於歷史數據的鏈下計算能力,併使用零知識來證明這些數據和計算的正確性。

Relic Protocol 提供的技術方法與 Axiom 類似,併且該協議在以太坊和 zkSync Era 上運行。 Relic 使用 Merkle 包含證明來證明數據包含(與 Axiom 在零知識中證明 Merkle 包含的方法相反)。

Herodotus 正在努力爲第2層協議提供以太坊的歷史數據。測試實現現已在 Starknet 和 zkSync Era 上提供。有了 OP 基金會的資助,我們認爲,我們知曉了Herodotus團隊下一步的髮展方曏。

Lagrange Labs實驗室通過其最近的 ZK MapReduce (ZKMR) 創新引入了完全可更新的證明。它使用一種稱爲 Recproofs 的新曏量承諾,將可更新性的概念擴展到數據計算中。

從事存儲證明工作的團隊

結語

在本文中,我們介紹了存儲證明如何支持驗證歷史鏈上數據,而無需信任第三方。這使它們成爲鏈上組合和跨鏈互操作性的寶貴工具。

隨著總鎖定價值(TVL)繼續從以太坊遷移到第2層生態繫統,我們預計更具錶現力的應用程序將會出現,這些應用程序通過存儲證明利用歷史鏈上數據。

雖然零知識技術正變得更快、更便宜,但不斷生成存儲證明以跟上鏈狀態多帶來的成本仍是一個挑戰。此類服務的盈利能力將取決於查詢應用程序生成的查詢量。

盡管有挑戰,但由零知識技術支持的共識證明和存儲證明所具有的重要性怎麽強調也不爲過。我們期待見證這些技術將如何用於構建信任最小化的多鏈未來。

聲明:

  1. 本文轉載自Superscrypt World,版權歸原作者【Jacob】所有。如對轉載有異議,請聯繫Gate Learn團隊(gatelearn@gate.io)。團隊將盡快按照相關程序進行處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 本文章的其他語言版本由Gate Learn團隊翻譯。在未提及 Gate.io 的情況下不得覆製、抄襲或髮布所譯文章。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!