zk預言機 和 zk協衕處理器

中級Jan 07, 2024
本文解釋了 zkCorprocessor 和 zkOracle 的概念,重點介紹了兩者之間的差異,併詳細闡述了每種類型的 zk 適合不衕用例的場景。
zk預言機 和 zk協衕處理器

0. 簡介

在這篇文章中,我們將了解最近流行的 zkCoprocessor 和 zkOracle 概念,併比較它們的差異。

1. zkCoprocessor的定義

當一個術語被創造出來時,它的真正含義併不是由它本身定義的。我們在區塊鏈的例子中已經看到了很多這樣的情況。

  1. ZK:雖然學術界經常提到零知識的隱私特徵,但在區塊鏈背景下,ZK往往隻代錶技術的簡潔性和有效性。即使是基於 ZK Rollup 構建的項目也稱自己爲 zkSomething。
  2. DA:直到現在,很多人還沒有真正意識到數據可用性不是數據存儲,所以爲了解決這個術語問題,有些人建議 用 DP 替換 DA (DP,Data Publishing),或者説把DA的全部含義變成數據髮布+數據存儲(1,2)。

我們在 zkCoprocessor 一詞中看到了類似的現象。每個人都使用這個詞,但是它們不一定指相衕的事物

所以我們想錶達項目本身對 zkCoprocessor 的看法,社區對 zkCoprocessor 的理解,以及從我們的角度來看 zkCoprocessor 的真正含義和作用。

a) 來自項目本身

Axiom 的定義 1:zkCoprocessor 在鏈上證明歷史數據。

zkCoprocessor 的概念由 Axiom 推廣,最初將其設想爲 zkAttestor。從 Axiom 的想法來看,zkCoprocessor 代錶了“在鏈上證明歷史數據併在智能合約中不可信地使用該數據”的組件。

請註意,Brevis 團隊錶示,這種類型的 zkCoprocessor 本質上是底層 zk 電路之上的 API/DSL 層。所以這是不可編程的。

RISC Zero 的定義 2:zkCoprocessor 將計算從鏈上卸載到鏈下。

RISC Zero 也經常將自己稱爲 zkCoprocessor。從他們的角度來看,他們將 zkCoprocessor 視爲一個更廣泛的概念,“一種使用 ZKP 將計算從鏈上卸載到鏈下的工具”。

b) 來自社區

Peteris的定義(衕1):zkCoprocessor可以訪問歷史鏈上狀態。

Aera Finance 的 Peter相信 zkCoprocessor 的行爲非常像一個狀態預言機,主要功能是訪問歷史數據。與此衕時,他和來自 BananaHQ 的 Rishabh 認爲定義2的描述更像是zkVM而不是zkCoprocessor的子類。

Messari、Modular Media 和 Kobi 的定義(與 2 相衕):zkCoprocessor 將計算從鏈上卸載到鏈下。

Messari也給出了自己對zkCoprocessor的定義。梅薩裡 (Messari) 研究員薩米 (Sami)相信 zkCoprocessor 使智能合約開髮人員能夠輕鬆地將覆雜的邏輯卸載到鏈下,而無需新的信任假設。模塊化媒體還給出了相衕的概念。幾何中的科比將 rollup 與協處理器進行比較,Brevis補充説zkCoprocessor權衡維護永久狀態存儲的成本與超提升的性能,Taiko 提出了這樣的設計助推器彙總 進一步探討了 Rollup 協處理器的思想。這些與 RISC Zero 的定義相衕。

c) 來自我們

綜上所述,我們得出實際中zkCoprocessor有兩種類型,分別如下:

  1. 數據訪問 zkCoprocessor:主要將某些數據(歷史區塊、歷史狀態)饋送到某個地方(智能合約)。
  2. zkVM計算zkCoprocessor:由鏈下zkVM計算,然後將結果反饋給鏈上。將 O(n) 計算壓縮爲 O(1) 驗證

2.zkOracle的定義

a) Oracle

Hyper Oracle 爲我們提供了 Oracle 的解釋爲以太坊定義 zkOracle

Oracle 實際上總結了任何區塊鏈空間中的“基礎設施”,如比協處理器更好的定義

如果基礎設施/預言機的輸入是鏈外數據併且輸出是鏈上數據,則它是輸入預言機(例如 Chainlink Price Feed)。相反,它是一個輸出預言機(例如 The Graph)。如果輸出預言機在前,然後是輸入預言機,則它是 I/O 預言機(例如 Gelato Network)。

總之,oracle與協處理器的概念非常相似,但衕時具有數據訪問和計算的特點。

b) zkOracle

以Hyper Oracle爲例,兩者之間是什麽關繫?zkOracle 和 zkCoprocessor?

爲以太坊定義 zkOracle 中討論的 zkOracle 實際上具有兩個 zkCoprocessor 的功能。

例如,Hyper Oracle 等 zkOracle:

  1. 以去信任的方式訪問歷史數據。
  2. 可以執行可編程計算。

3. zkCoprocessor和zkOracle

當我們直接將兩種類型的zkCoprocessor與zkOracle進行比較時,我們可以看到zkOracle衕時具有zkCoprocessor的所有功能:

  1. 智能合約的異步處理
  2. 與 L1 或 L2 上的現有應用程序互操作併增強其功能
  3. 卸載資源受限繫統中的計算

通過直接比較,zkOracle是一個更加端到端的解決方案,可以爲開髮者提供更加完整的技術棧。

這兩個 zkCoprocessor 在各自的垂直領域進行了擴展,例如,數據訪問 zkCoprocessor 解鎖了跨鏈場景,而 zkVM Compute zkCoprocessor 代錶了基於 zkVM 的 zk rollup。

4. 使用 zkCoprocessor 或 zkOracle 構建

建造時選擇哪一種?

按照一步一步的順序,我們可以做出一些關於構建應用程序的決定。

a) 純智能合約的DApp

首先,智能合約的純 Solidity 實現仍然是一個非常好的選擇。雖然純粹的智能合約不能提供一些最好的新穎功能,但它們仍然足夠了在某些場景下。此外,Arbitrum Stylus 的當前可用性還通過純智能合約解鎖了許多新應用程序。

b) 需要更豐富數據訪問的DApp

在許多情況下,開髮人員可能希望使用數據訪問 zkCoprocessor 或 zkOracle 進行智能合約來訪問更豐富的數據源。

在這種場景下,如果單獨使用數據訪問zkCoprocessor,計算仍然在智能合約中處理。 zkCoprocessor的作用是降低傳統方式穫取數據的覆雜度,而不是讓智能合約的計算能力更強。

在這個場景中,我們看到了很多與數據相關的小型項目,而不是傳統意義上成熟的 DApp:

  1. 使用 zkCoprocessor Axiom:更好的 LP 管理、MEVictim 回扣
  2. 使用 zkOracle Hyper Oracle:Uniswap v2 價格、OpenSea 交易活動、USDT 交易量監控

c) 需要大量計算的DApp

通常,一些覆雜的算法無法直接在鏈上計算,對於游戲來説,計算邏輯非常覆雜,例如etherquake和GameOfLife,運行一步需要花費2k美元。或者與機器學習相關的覆雜算法。或者與機器學習相關的覆雜算法不可能在鏈上運行。因此,我們需要 zkVM zkCoprocessor 或 zkOracle 在鏈下運行計算,然後以 ZKP 的形式提交到鏈上。

在這個例子中,我們可以看到它們的一些無限的計算潛力:

  1. 使用 zkCoprocessor Bonsai:Zeth(在 zkVM 中證明 Reth)、zk-sentiment
  2. 使用 zkOracle Hyper Oracle 或 zkWASM:zkGo(在 zkVM、Type-0 zkEVM 中證明 L2-Geth),茲卡AMM

d) 全功能的下一代DApp(DeFi 3.0)

最後,我們討論了隻能使用 zkOracle 構建的應用程序。以 DeFi 應用爲例,一個完整的 DeFi 是非常覆雜的。下一代 DeFi 應用,即 DeFi 3.0去中心化應用程序, 將需要:

  1. 更豐富的數據訪問
  2. 無限計算
  3. 自治(用於清算、參數更新、協議治理)

我們已經討論了 zkOracle 如何共享兩個 zkCoprocessors 的功能,衕時滿足前兩個功能要求。 zkOracle 如何實現自治功能,而 zkCoprocessor 如何不實現自治功能?

  1. zkOracle:不需要人工幹預。數據訪問和計算任務可以以可編程和自動化的方式完全定義和執行。所有鏈上調用始終是不可信且有效的。
  2. zkCoprocessor:需要通過中繼器對計算響應進行鏈上監控和過濾,或者添加額外的覆雜機製。

那麽 zkCoprocessor 缺乏自主性意味著什麽:

  1. 權力下放不足
  2. 潛在覆雜機製的風險
  3. 開髮者心理負擔

因此,對於像 DeFi 這樣的完整應用程序來説,zkOracle 是一個完美且充分的選擇。

值得註意的是,Hooks 還可以處理 zkCoprocessor 缺失的一些功能,但僅限於 DeFi 等場景,而不是普遍適用。

聲明:

  1. 本文轉載自[mirror],著作權歸屬原作者[SevenX Ventures],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。

zk預言機 和 zk協衕處理器

中級Jan 07, 2024
本文解釋了 zkCorprocessor 和 zkOracle 的概念,重點介紹了兩者之間的差異,併詳細闡述了每種類型的 zk 適合不衕用例的場景。
zk預言機 和 zk協衕處理器

0. 簡介

在這篇文章中,我們將了解最近流行的 zkCoprocessor 和 zkOracle 概念,併比較它們的差異。

1. zkCoprocessor的定義

當一個術語被創造出來時,它的真正含義併不是由它本身定義的。我們在區塊鏈的例子中已經看到了很多這樣的情況。

  1. ZK:雖然學術界經常提到零知識的隱私特徵,但在區塊鏈背景下,ZK往往隻代錶技術的簡潔性和有效性。即使是基於 ZK Rollup 構建的項目也稱自己爲 zkSomething。
  2. DA:直到現在,很多人還沒有真正意識到數據可用性不是數據存儲,所以爲了解決這個術語問題,有些人建議 用 DP 替換 DA (DP,Data Publishing),或者説把DA的全部含義變成數據髮布+數據存儲(1,2)。

我們在 zkCoprocessor 一詞中看到了類似的現象。每個人都使用這個詞,但是它們不一定指相衕的事物

所以我們想錶達項目本身對 zkCoprocessor 的看法,社區對 zkCoprocessor 的理解,以及從我們的角度來看 zkCoprocessor 的真正含義和作用。

a) 來自項目本身

Axiom 的定義 1:zkCoprocessor 在鏈上證明歷史數據。

zkCoprocessor 的概念由 Axiom 推廣,最初將其設想爲 zkAttestor。從 Axiom 的想法來看,zkCoprocessor 代錶了“在鏈上證明歷史數據併在智能合約中不可信地使用該數據”的組件。

請註意,Brevis 團隊錶示,這種類型的 zkCoprocessor 本質上是底層 zk 電路之上的 API/DSL 層。所以這是不可編程的。

RISC Zero 的定義 2:zkCoprocessor 將計算從鏈上卸載到鏈下。

RISC Zero 也經常將自己稱爲 zkCoprocessor。從他們的角度來看,他們將 zkCoprocessor 視爲一個更廣泛的概念,“一種使用 ZKP 將計算從鏈上卸載到鏈下的工具”。

b) 來自社區

Peteris的定義(衕1):zkCoprocessor可以訪問歷史鏈上狀態。

Aera Finance 的 Peter相信 zkCoprocessor 的行爲非常像一個狀態預言機,主要功能是訪問歷史數據。與此衕時,他和來自 BananaHQ 的 Rishabh 認爲定義2的描述更像是zkVM而不是zkCoprocessor的子類。

Messari、Modular Media 和 Kobi 的定義(與 2 相衕):zkCoprocessor 將計算從鏈上卸載到鏈下。

Messari也給出了自己對zkCoprocessor的定義。梅薩裡 (Messari) 研究員薩米 (Sami)相信 zkCoprocessor 使智能合約開髮人員能夠輕鬆地將覆雜的邏輯卸載到鏈下,而無需新的信任假設。模塊化媒體還給出了相衕的概念。幾何中的科比將 rollup 與協處理器進行比較,Brevis補充説zkCoprocessor權衡維護永久狀態存儲的成本與超提升的性能,Taiko 提出了這樣的設計助推器彙總 進一步探討了 Rollup 協處理器的思想。這些與 RISC Zero 的定義相衕。

c) 來自我們

綜上所述,我們得出實際中zkCoprocessor有兩種類型,分別如下:

  1. 數據訪問 zkCoprocessor:主要將某些數據(歷史區塊、歷史狀態)饋送到某個地方(智能合約)。
  2. zkVM計算zkCoprocessor:由鏈下zkVM計算,然後將結果反饋給鏈上。將 O(n) 計算壓縮爲 O(1) 驗證

2.zkOracle的定義

a) Oracle

Hyper Oracle 爲我們提供了 Oracle 的解釋爲以太坊定義 zkOracle

Oracle 實際上總結了任何區塊鏈空間中的“基礎設施”,如比協處理器更好的定義

如果基礎設施/預言機的輸入是鏈外數據併且輸出是鏈上數據,則它是輸入預言機(例如 Chainlink Price Feed)。相反,它是一個輸出預言機(例如 The Graph)。如果輸出預言機在前,然後是輸入預言機,則它是 I/O 預言機(例如 Gelato Network)。

總之,oracle與協處理器的概念非常相似,但衕時具有數據訪問和計算的特點。

b) zkOracle

以Hyper Oracle爲例,兩者之間是什麽關繫?zkOracle 和 zkCoprocessor?

爲以太坊定義 zkOracle 中討論的 zkOracle 實際上具有兩個 zkCoprocessor 的功能。

例如,Hyper Oracle 等 zkOracle:

  1. 以去信任的方式訪問歷史數據。
  2. 可以執行可編程計算。

3. zkCoprocessor和zkOracle

當我們直接將兩種類型的zkCoprocessor與zkOracle進行比較時,我們可以看到zkOracle衕時具有zkCoprocessor的所有功能:

  1. 智能合約的異步處理
  2. 與 L1 或 L2 上的現有應用程序互操作併增強其功能
  3. 卸載資源受限繫統中的計算

通過直接比較,zkOracle是一個更加端到端的解決方案,可以爲開髮者提供更加完整的技術棧。

這兩個 zkCoprocessor 在各自的垂直領域進行了擴展,例如,數據訪問 zkCoprocessor 解鎖了跨鏈場景,而 zkVM Compute zkCoprocessor 代錶了基於 zkVM 的 zk rollup。

4. 使用 zkCoprocessor 或 zkOracle 構建

建造時選擇哪一種?

按照一步一步的順序,我們可以做出一些關於構建應用程序的決定。

a) 純智能合約的DApp

首先,智能合約的純 Solidity 實現仍然是一個非常好的選擇。雖然純粹的智能合約不能提供一些最好的新穎功能,但它們仍然足夠了在某些場景下。此外,Arbitrum Stylus 的當前可用性還通過純智能合約解鎖了許多新應用程序。

b) 需要更豐富數據訪問的DApp

在許多情況下,開髮人員可能希望使用數據訪問 zkCoprocessor 或 zkOracle 進行智能合約來訪問更豐富的數據源。

在這種場景下,如果單獨使用數據訪問zkCoprocessor,計算仍然在智能合約中處理。 zkCoprocessor的作用是降低傳統方式穫取數據的覆雜度,而不是讓智能合約的計算能力更強。

在這個場景中,我們看到了很多與數據相關的小型項目,而不是傳統意義上成熟的 DApp:

  1. 使用 zkCoprocessor Axiom:更好的 LP 管理、MEVictim 回扣
  2. 使用 zkOracle Hyper Oracle:Uniswap v2 價格、OpenSea 交易活動、USDT 交易量監控

c) 需要大量計算的DApp

通常,一些覆雜的算法無法直接在鏈上計算,對於游戲來説,計算邏輯非常覆雜,例如etherquake和GameOfLife,運行一步需要花費2k美元。或者與機器學習相關的覆雜算法。或者與機器學習相關的覆雜算法不可能在鏈上運行。因此,我們需要 zkVM zkCoprocessor 或 zkOracle 在鏈下運行計算,然後以 ZKP 的形式提交到鏈上。

在這個例子中,我們可以看到它們的一些無限的計算潛力:

  1. 使用 zkCoprocessor Bonsai:Zeth(在 zkVM 中證明 Reth)、zk-sentiment
  2. 使用 zkOracle Hyper Oracle 或 zkWASM:zkGo(在 zkVM、Type-0 zkEVM 中證明 L2-Geth),茲卡AMM

d) 全功能的下一代DApp(DeFi 3.0)

最後,我們討論了隻能使用 zkOracle 構建的應用程序。以 DeFi 應用爲例,一個完整的 DeFi 是非常覆雜的。下一代 DeFi 應用,即 DeFi 3.0去中心化應用程序, 將需要:

  1. 更豐富的數據訪問
  2. 無限計算
  3. 自治(用於清算、參數更新、協議治理)

我們已經討論了 zkOracle 如何共享兩個 zkCoprocessors 的功能,衕時滿足前兩個功能要求。 zkOracle 如何實現自治功能,而 zkCoprocessor 如何不實現自治功能?

  1. zkOracle:不需要人工幹預。數據訪問和計算任務可以以可編程和自動化的方式完全定義和執行。所有鏈上調用始終是不可信且有效的。
  2. zkCoprocessor:需要通過中繼器對計算響應進行鏈上監控和過濾,或者添加額外的覆雜機製。

那麽 zkCoprocessor 缺乏自主性意味著什麽:

  1. 權力下放不足
  2. 潛在覆雜機製的風險
  3. 開髮者心理負擔

因此,對於像 DeFi 這樣的完整應用程序來説,zkOracle 是一個完美且充分的選擇。

值得註意的是,Hooks 還可以處理 zkCoprocessor 缺失的一些功能,但僅限於 DeFi 等場景,而不是普遍適用。

聲明:

  1. 本文轉載自[mirror],著作權歸屬原作者[SevenX Ventures],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!