區塊鏈已經徹底改變了我們對於信任和去中心化系統的認知。然而,在處理安全可靠的鏈下數據的索引和自動化方面,去中心化應用仍舊面臨著挑戰。這就是可編程的zkOracle 出現的原因 — 一種新型的去中心化預言機網絡,利用零知識證明將鏈上數據帶到鏈下環境,為鏈上環境執行鏈下計算,以及在任何場景中驗證鏈下證明。
本文介紹Hyper Oracle,一個可編程的zkOracle 網絡,旨在解決現有中間層解決方案的限制,並推動新一輪的去中心化應用的發展。
0. zkOracle 的定義
a) 預言機的分類
當人們聽到「預言機(Oracle)」 這個術語時,他們通常會將其與餵價預言機(Price Feeds) 聯繫起來,該預言機為鏈上智能合約提供鏈下數據。然而,這只是眾多預言機類型中的一種。
這份教育資源對預言機概念進行了簡單解釋, 並將其分為兩種主要類型:
- 輸入預言機(Input Oracle):將鏈下數據傳遞到鏈上環境( 例如: Chainlink Price Feeds)
- 輸出預言機(Output Oracle):將鏈上數據傳遞到鏈下環境進行複雜計算( 例如: Hyper Oracle zkIndexing)
在區塊鏈領域, 術語「輸入」和「輸出」用於區分兩種類型的預言機:輸入預言機和輸出預言機。此外,Hyper Oracle 定義了I/O 預言機, 這是一種同時集成了輸入和輸出預言機的預言機類型, 首先遵循輸出預言機的流程, 然後再遵循輸入預言機的流程。每個預言機可以進一步分為三個組件: 數據源、計算和輸出。
輸入預言機
- 數據源: 鏈下數據(例如中心化交易所中的交易價格, 真實世界天氣數據)
- 計算: 鏈下數據的聚合和「上傳」
- 輸出: 鏈上數據( 與數據源數據相同, 但存儲在鏈上 )
輸出預言機
- 數據源: 鏈上數據( 例如智能合約交互或事件, 如ERC-20 轉賬或ERC-721 鑄造記錄 )
- 計算: 索引、聚合、過濾或其他復雜計算
- 輸出: 以有組織且易於使用的形式呈現的鏈下數據
I/O 預言機
結合了輸入預言機和輸出預言機, 先進行輸出預言機的流程, 然後進行輸入預言機的流程.
總之, 預言機是處理區塊鏈數據的程序。關於Hyper Oracle zkAutomation 和zkIndexing 的更多信息將在後續章節中討論。
b) ZK ( 零知識證明技術 )
無需信任是指去中心化區塊鏈的一種性質, 即在使用網絡時, 不需要依賴對第三方的信任.
零知識協議或證明確保了計算的有效性, 就像這篇文章中所解釋的那樣。它們使我們能夠在不依賴外部信任的情況下證明計算的正確性。作為驗證者, 我們可以確定輸出數據也是正確的。
使用零知識技術, 計算輸出了最終的計算結果和一個零知識證明。你可以將零知識證明視為永遠正確的收據。我們可以驗證一個很短的短收據, 以確保所有數據( 購買的物品) 和計算( 物品成本的總和) 都是正確的。
零知識證明的好處是:
- 易於驗證( 無需複雜的機制來達成數據共識或基於完整數據重新運行計算; 驗證可以在任何環境下進行, 從而帶來了互操作性和組合性的可能性 )
- 更快的終局性(Finality) ( 一旦數據和零知識證明被驗證, 它們就可以被認為是完全正確和最終的(Finalized))
- 最高的安全性( 純粹基於密碼學和數學 )
- 更簡單的系統和機制( 無需了解複雜的代幣經濟學或機制)
- 可用於任何計算
總之, 零知識技術是一種強大的加密技術棧, 用於無需信任和安全的計算。
c) 傳統預言機網絡的問題
傳統的預言機網絡( 例如Chainlink 或The Graph) 通常創建新的質押網絡, 而不是直接擴展基礎層。這些網絡依靠代幣經濟學和質押機制來確保整體安全性和去中心化。然而, 這種方法會帶來一些問題:
安全性
與基礎層區塊鏈缺乏一致性:
- 這些網絡在基礎層區塊鏈之外創建了單獨的新網絡。它們無法繼承以太坊等基礎層區塊鏈的已經建立的安全水平和成熟的生態模型。在實踐中, 它們比基礎層區塊鏈( 如以太坊) 的安全性要低得多。
通過代幣經濟學建立的不確定信任:
- 這些網絡的安全性依賴於節點數量和網絡中誠實運營者的數量等變量, 很難確定預言機網絡的實際信任和安全水平。此外, 網絡的安全性與代幣經濟學相關聯( 通常與網絡代幣的頻繁交易活動相關), 引入了另一個風險因素。
低成本和高攻擊利潤:
- 這些網絡通常是去中心化應用程序的主要組成部分, 其價值高度累積。通過攻擊預言機網絡來攻擊這些協議的潛在利潤很高, 而如果其代幣價格或質押要求過低, 則攻擊預言機網絡的成本很低。
- 去中心化
高網絡參與門檻:
- 網絡中參與方或節點越多, 去中心化水平越高。但是, 在某些傳統的預言機網絡中, 最低的質押金額或門檻對於普通用戶來說太高了。例如, The Graph 要求質押大約100K GRT ( 截至3/1 約合16000 美元) 才能開始索引器節點, 這還沒有考慮硬件要求, 以及10K GRT ( 截至3/1 約合1600 美元) 才能挑戰和報告錯誤行為。這些高門檻使得自發的誠實節點參與網絡活動變得困難。此外, 啟動一個新網絡需要大量的初始質押資本。
代幣分配集中化:
- 通常, 這些網絡背後的實體控制著大部分代幣供應。衡量網絡去中心化水平的一個指標是Nakamoto 係數。它表示可以集體關閉區塊鏈的最小獨立實體數量。較大的係數可能表示更加去中心化的網絡。然而,只需要控制4 個實體就可以關閉The Graph 的網絡。代幣分配的集中化使得代幣經濟學和整體機制變得集中化。
- 效率
性能開銷:
- 預言機網絡最重要的因素是性能。傳統的分佈式網絡通常會隨著網絡中節點數量的增加而增加延遲。如果不是像zk 網絡這樣的1-of-N 信任模型(只要其中至少一個節點按照期望的行為操作,系統就可以正常工作)。要同時實現去中心化( 更多的節點) 和性能( 相對較少的節點) 是很困難的。
計算能力浪費:
- 具有PoW 機制的傳統去中心化網絡在共識生成過程中會有大量冗餘計算和浪費的計算能力。這些用於保護網絡的整體安全性。然而, 這種浪費的計算能力也代表了更高的運營和服務使用成本。
d) zk甲骨文
zkOracle 通過以下解決方案來解決上述問題, 包括:
- 提供一個不可停止的自治網絡
- 數學作為共識
- 繼承基礎層的安全性
- 1-of-N 信任模型
- 最優的基於密碼學的去中心化
- 高效的計算能力分配( 理想情況下沒有多餘的浪費 )
在後面的章節中, 我們將比較傳統的預言機網絡與Hyper Oracle zkOracle 網絡, 詳細說明它們之間的區別。
作為處理數據的組件, 預言機必須確保計算的準確性和安全性。確認輸出有效和正確, 並且驗證過程快速( 亞線性) 是很重要的。
為了實現無需信任和安全的預言機, 我們需要把它變成一個zkOracle。
Hyper Oracle zkOracle 被原生地分為輸出zkOracle 和I/O zkOracle。
I. 輸出 zkOracle
一個輸出zkOracle 是一種使用zk 來證明其計算有效性的輸出預言機。其中Hyper Oracle zkIndexing Meta App 是一個例子。
數據源: 鏈上數據
直截了當的解決方案是使用鏈上數據作為數據源。這些數據已經被區塊鏈驗證和保護。目前來說, 鏈下數據源無法高效地達到鏈上數據的信任級別( 至少根據這個來源是這樣)。鏈上數據源解決方案需要zkOracle 作為輸出預言機。
計算: 執行和零知識證明生成
解決方案是創建計算( 通常是索引、聚合和篩選) 的zk 證明, 並以零知識方式訪問數據源。這樣為計算添加了一層有效性和無需信任。現在的輸出將附帶一個zk 證明, 使計算和輸出可驗證。
輸出: 執行輸出和可在鏈上驗證的zk 證明
計算的輸出將同時包括執行輸出和可驗證的zk 證明。該證明可以輕鬆在智能合約或任何其他環境中驗證。驗證組件可以確認zkOracle 的執行的有效性。
II. I/O zkOracle ( 輸出+ 輸入 )
一個I/O zkOracle 是既有zk 作為計算的輸出預言機, 也有zk 作為計算的輸入預言機。一個例子是Hyper Oracle zkAutomation Meta App。
在這種情況下,zkOracle 將作為兩個預言機的組合, 分為兩個階段:
數據源: 鏈上數據
I/O zkOracle 的數據源與輸出zkOracle 相同.
計算: 執行和零知識證明生成
I/O zkOracle 的計算包括輸出zkOracle ( 通常是索引、聚合和篩選) 和輸入zkOracle ( 包含將鏈下計算結果設置為智能合約調用的調用數據(calldata)). 兩部分的結合可以實現使智能合約自動化的複雜鏈下計算。
輸出: 鏈上數據和可驗證的zk 證明
此階段的輸出包括鏈上數據, 即作為調用數據提供的執行輸出, 以及可驗證的zk 證明。這個證明在智能合約或其他環境中很容易驗證。驗證組件可以確認I/O zkOracle 的執行的有效性。
III. 定義
從技術上講, zkOracle 是具有可驗證預提交計算的預言機。
從功能上講, zkOracle 利用zk 確保預言機節點的計算完整性, 從而保障預言機網絡的安全性, 而不是使用質押和懲罰機制。
本質上, zkOracle 是一個預言機, 它利用zk 進行計算和數據訪問, 同時使用鏈上數據作為數據源, 以在無信任的情況下保護預言機的安全性。
1. 針對以太坊的zkOracle 網絡
zkOracle = zkPoS + 運行在zkWASM 中的 zkGraph
a) zkOracle 架構概述
Hyper Oracle 是專為區塊鏈設計的zkOracle 網絡。目前, zkOracle 網絡僅支持以太坊區塊鏈。它使用zkPoS 從區塊鏈的每個區塊中檢索數據作為數據源, 並使用運行在zkWASM 上的可編程zkGraph 來處理數據, 所有操作都以無需信任和安全為基礎。
以下是以太坊區塊鏈的zkOracle 設計, 包含了zkOracle 的基礎設計與所有必要的組件。
zkPoS 使用單個zk 證明驗證以太坊共識, 該證明可以在任何地方被驗證與使用。這使得zkOracle 能夠獲得一個有效的區塊頭作為數據源進行進一步處理。
zkWASM ( 圖表中的zkVM) 是zkGraph 的運行時, 為Hyper Oracle 網絡中的任何zkGraph 提供zk 的能力。它類似於ZK Rollup 中使用的 zkEVM。
zkGraph ( 在zkWASM 中運行) 定義了zkOracle 節點行為和Meta Apps 的可定制和可編程的鏈下計算。它可以被視為Hyper Oracle 網絡的智能合約。
b) 零知識證明
無需信任的區塊頭數據獲取, Hyper Oracle 網絡中的 「數據源」
在實現zkOracle 的關鍵步驟之一是為數據源檢索區塊鏈數據, 特別是區塊頭數據。區塊頭數據作為獲取zkOracle 所需的實際數據( 三個roots) 的入口。因此, 如何獲取區塊頭數據非常重要。在Hyper Oracle 網絡中, 實現了可信的區塊頭獲取來保證zkOracle 的可信性和安全性。
獲取區塊頭數據的方法有多種, 但最簡單、最不安全或去中心化的方法是從第三方來源( 例如Infura) 獲取。另一個選擇是使用輕客戶端, 比如Helios , 但它們無法解決移動端、瀏覽器或智能合約環境下的信任最小化和可驗證性問題。
解決信任最小化的區塊頭數據獲取最佳方案是zkPoS, 它使用zk 來證明以太坊的共識。它是基於SNARK 的輕客戶端, 使用證明計算來消除大部分客戶端驗證的計算。
為了保持其無需信任的特性, 用於zkOracle 的zkPoS 需要解決以下挑戰:
- 恆定的( 短) 驗證時間
- 恆定的( 小) 證明大小
- 高性能證明生成
- 無需對第三方進行外部信任
Hyper Oracle zkPoS 將提供zk 輕客戶端, 並通過以下方式解決上述挑戰:
- 將以太坊共識的區塊認證等邏輯SNARK 化 ( 見下圖 )
- 遞歸證明多個區塊的以太坊共識
請參考我們以前的博客文章: zkPoS: End-to-end Trustless , 以獲取更多詳細信息。
zkPoS 將通過提供可信的數據源作為預言機的輸入, 增強Hyper Oracle zkOracle 的端到端無需信任。
c) zkGraph
可自定義的鏈下計算, Hyper Oracle 網絡中的「智能合約」
I. zkGraph 介紹
zkGraph 定義了Hyper Oracle 節點的鏈下計算, 包括與數據相關的行為和zk 證明生成, 就像智能合約定義了以太坊節點的EVM 計算一樣。
智能合約開發人員可以同時構建智能合約和zkGraph。用戶可以與兩者交互.
要利用Hyper Oracle Meta Apps 的基礎設施, 開發人員必須配置和編寫他們的zkGraph, 以指定他們想要如何處理數據。然後, Hyper Oracle 節點將處理數據並基於指定的定義生成zk 證明。
總之, zkGraph 是一個程序, 定義了數據的映射( 經過zkPoS 的數據預處理) 和配置Meta Apps。
II. 開發 zkGraph
zkGraph 是可定制和可編程的, 由三個主要組件組成:
- Manifest (zkgraph.yaml): 數據源, 用於配置信息, 例如使用的Meta App, 目標區塊鍊網絡和目標智能合約.
- Schema (schema.graphql): 數據結構, 用於定義數據的存儲和訪問方式.
- Mapping (mapping.ts): 數據映射( 鏈下計算), 用於將區塊鏈數據計算為其他形式.
zkGraph 的核心是mapping.ts 文件。其中的代碼定義了鏈下計算程序。
mapping 文件通常定義了用於處理鏈上事件或設置智能合約自動化的程序。這些篩選器在zkWASM 中運行( 詳見下一節), 並生成zk 證明以確保計算完整性和有效性。
在部署時, zkGraph 的所有代碼文件都將存儲在EthStorage 中, 這是以太坊ESP 支持的存儲擴展層。這將確保zkGraph 的開發流程完全去中心化。
以下是zkGraph 的示例代碼( 僅供說明用途):
我
II. zkGraph 的Subgraph 等同性
最好的做法是利用現有生態系統, 而不是避免重複造輪子。zkGraph 完全等同於The Graph 的Subgraph。
將現有的Subgraph ( 超過600 個且還在增長) 遷移到zkGraph 僅需要修改10 行代碼。開發過程中可以使用現有實現, 例如Standardized Subgraph和生態系統工具, 例如Instant Subgraph和Subgraph Uncrashable。
使用zkWASM, zkGraph 支持任何AssemblyScript (~TypeScript) 語法的通用計算。換句話說, Hyper Oracle Meta Apps 是完全可定制和可編程的。
d) zkWASM
將ZK 賦予 zkGraph
由於zkGraph 是完全可自定義和可編程的, 因此它需要一個通用的運行時環境來執行。類似於EVM 運行智能合約一樣, zkWASM ( 基於WebAssembly 的zkVM) 運行 zkGraph。
作為Subgraph 等同性的一部分, zkGraph 還採用基於WASM 的mapping。它被「翻譯」成AssemblyScript, 這是一種專門設計用於在WebAssembly 運行時環境中運行的語言。
The Graph 使用wasmtime 作為Subgraph 的WebAssembly 運行時, 而Hyper Oracle 使用zkWASM 作為zkGraph 的WebAssembly 運行時。這種執行引擎的差異使得zkGraph 是zk 的, 且不會犧牲任何通用計算能力。用zkWASM 替換wasmtime 就像用zkEVM 替換EVM 一樣。在zkWASM 中運行的任何程序都具有zk 的超能力, 包括可驗證性、無需信任、去中心化和計算完整性。
Hyper Oracle 的zkGraph 並不僅限於在zkWASM 中運行。我們重視證明者/ 客戶端的多樣性和去中心化, 不斷探索用zk 強化zkGraph 的新方法。
如想了解有關zkWASM 的更多信息, 請參閱我們之前的博客文章: zkWASM, The Next Chapter of ZK and zkVM。有關更多技術細節, 你可以參考題為ZAWA: A ZKSNARK WASM Emulator 的論文。
zkWASM 將使Hyper Oracle zkGraph 能夠實現可編程、通用計算、Subgraph 等同和零知識證明的超能力。
e) Hyper Oracle 網絡中的 zkOracle
以下是Hyper Oracle 網絡中運行zkOracle 節點的概念架構圖。
本節開始的設計與之前的設計類似, 但進行了一些更改以突出某些細節。
為了討論設計, 讓我們從左到右、從上到下地看:
1.以太坊區塊鏈作為zkOracle 的原始鏈上數據源, 但在將來, 任何網絡都可以被使用
2.Hyper Oracle zkOracle 節點由兩個主要組件組成: zkPoS 和 zkWASM
- zkPoS 通過使用zk 來證明以太坊的共識, 獲取以太坊區塊鏈的區塊頭和數據根。zk 證明生成過程可以外包給去中心化的證明者網絡。zkPoS 作為zkWASM 的外部電路運行
- zkPoS 將區塊頭和數據根提供給zkWASM 。zkWASM 將這些數據作為運行zkGraph 的必要輸入
- zkWASM 運行由zkGraph 定義的自定義數據映射, 並生成這些操作的zk 證明。zkOracle 節點可以選擇他們希望運行的zkGraph 的數量( 從一個到所有已部署的zkGraph)。zk 證明生成過程可以外包給去中心化的證明者網絡
3. zkOracle 的輸出是鏈下數據, 開發者可以通過Hyper Oracle Meta Apps 使用這些數據( 這將在後面的章節中介紹).該數據還附帶了證明其有效性和計算的zk 證明。
只需要一个 zkOracle 节点来维护网络安全.在 Hyper Oracle 网络中, 仍然可以有多个 zkOracle 节点针对 zkPoS 和每个 zkGraph。这可以并行生成 zk 证明, 从而显著提高性能。
2.元應用
Meta Apps = zkIndexing + zkAutomation, 均基於 zkGraph
zkOracle 網絡是Hyper Oracle 的技術架構。Meta Apps ( 或zkOracle 服務) 是Hyper Oracle 的「產品」。
Hyper Oracle Meta Apps 提供一系列基礎設施服務, 可供任何DApp 開發人員使用。由於每個DApp 都需要特定的基礎設施, Meta Apps 為DApp 提供了完全去中心化和安全的選擇。
a) 革新基礎設施
注: 更好且更準確的術語是「中間件」。這裡我們使用「基礎設施」 這個通用術語以便於理解。
去中心化應用程序(DApp) 比智能合約更為複雜。完整的DApp 至少應包括:
- 交互界面( 通常是作為前端的網站 )
- 基礎設施/ 中間件組件( 可能包括索引服務來整理數據, 自動調用函數的自動化/Keeper 網絡, 提供數據的價格預言機, 或所有這些 )
- 智能合約
自從智能合約問世以來, 共識研究人員和網絡工程師一直在探索如何擴展網絡並增加智能合約的計算能力。
為了在不犧牲區塊鏈去中心化的情況下實現更好的性能, 目前可用的最佳方法是使用Rollup 技術, 例如Optimistic Rollup 和ZK Rollup。
接著, 我們還必須加強DApps 的基礎設施。需要注意的是, 當前基礎設施協議的問題不僅僅局限於可擴展性, 還包括去中心化、無需信任和安全性方面的問題。由於基礎設施並非內置於區塊鍊網絡中, 因此無法充分利用區塊鏈技術的現有優勢。但是, 有沒有解決方案呢?
通過擴展DApps 的功能, 基礎設施可以成為智能合約原始功能的擴展, 這些功能目前在區塊鏈上是獨立的。
為了實現所需的去中心化水平, 基礎設施必須讓區塊鍊網絡( 並不知道它的存在) 相信基礎設施的鏈下計算。這可以通過兩種有效的方法來實現:
首先, 說服L1。然後升級基礎設施以實現去中心化:
- 運行在智能合約中( 然而, 基礎設施是智能合約的擴展, 因此根據定義無法在智能合約中運行).
- 提供某種證明( 包括Optimistic、ZK、CK或Modular Hybrid …)
我們將在後面的章節中介紹ZK 相對於Optimistic 在基礎設施方面的優勢。現在, 我們來看一個更適合的解決方案 — — Hyper Oracle Meta Apps:
- 通過zk 證明說服L1 (一個簡短的收據確保計算完整性)
- 提供去中心化的基礎設施
- 構建下一代DApps
從本質上講, Hyper Oracle Meta Apps 為基礎設施帶來了創新, 類似於ZK Rollup 為區塊鏈帶來創新的方式。
b) zk自動化
智能合約無需信任的自動化
I. zkAutomation 介紹
自動化、機器人和Keeper 推動著區塊鏈世界。自動程序需要定期調用智能合約來維護AMM 的最佳價格流動或通過避免壞賬來保持借貸協議的健康狀態。有時, 這些自動調用對於鏈上計算來說過於復雜, 對於治理投票來說太頻繁, 對於開放系統來說則太重要。在這種情況下, 開發人員需要自動化協議來提供這些服務, 以便他們不必構建和運行自己的自動化系統。
然而, 僅有一個通用的自動化和Keeper 的協議是不足夠的。自動化執行和鏈下數據源計算必須是安全的。如果這些計算無效, 操作節點必須在自動化網絡上被標記並受到懲罰。
zkAutomation 是市場上唯一能夠執行零知識證明的自動化基礎設施。
zkAutomation 不僅是一個輸出zkOracle Meta Apps, 還是一個I/O zkOracle, 因為數據從鏈上( 原始數據) 流向鏈下(zkGraph 源), 再返回鏈上 ( 觸發自動化)。
zkAutomation 是基於零知識證明的Hyper Oracle 信任自動化協議。
zkAutomation 的自動化執行完全由zk 保護, 自動化源( 觸發自動化的數據源) 可以完全使用zkGraph 進行自定義。開發人員可以構建機器人( 例如套利機器人) 來進行鏈上交易以獲取利潤, 像清算Keeper 這樣的Keeper 程序來保護協議健康, 甚至構建像鏈上ETF 或鏈上穩定幣這樣的自動化協議, 以實現完全去中心化的金融應用程序。
II. zkAutomation 使用
開發者可以通過部署他們的自動化程序來使用zkAutomation, 方法是通過Hyper Oracle 的Web 應用程序指定目標合約、目標函數和來源( 何時觸發)。對於更複雜的觸發條件, 開發者可以選擇每N 個區塊觸發自動化( 在像Keeper 機器人這樣的場景中) , 或使用zkGraph 作為鏈下來源。
zkAutomation 的zkGraph 可以從頭開始構建, 從zkIndexing 的zkGraph 遷移或重用已部署的zkGraph。如果開發者選擇從現有的zkIndexing 的zkGraph 遷移, 則只需更改該zkGraph 的元應用程序類型即可使其成為zkAutomation 的有效源。
一旦zkAutomation job 已註冊( 並且已經可選地部署了zkGraph), 相應的zkAutomation 服務將啟動, 並在滿足觸發條件時執行自動化作業。
c) zk索引
區塊鏈數據無需信任的索引和獲取
I. zkIndexing 介紹
訪問大多數區塊鏈數據會對開發人員構成挑戰。開發人員可以運行自己的索引器來將數據組織成更易於搜索的格式, 但這可能是一個困難且耗時的過程, 因為它涉及重新構建整個區塊鏈狀態並索引智能合約事件。這就是像The Graph 這樣的索引協議有用的地方。
但是, 擁有通用的索引和查詢協議是不夠的, 確保索引數據的準確性和可靠性同樣重要。因為不正確的數據可能比沒有索引器更為問題嚴重。換句話說, 確保索引過程的計算完整性和安全性至關重要。
zkIndexing 是一種獨特的索引基礎設施, 使用零知識證明讓其在準確性和安全性方面獲得提升。zkIndexing 是一個典型的輸出zkOracle Meta App, 數據從鏈上( 原始區塊鏈數據) 流向鏈下(zkGraph 索引數據)。
zkIndexing 是Hyper Oracle 基於零知識證明的無需信任的索引協議。
zkIndexing 的索引和查詢模式可以使用zkGraph 完全自定義。開發人員可以使用zkIndexing 構建任何端到端的去中心化應用程序。
II. zkIndexing 使用
zkGraph 部署後, 相應的zkIndexing 服務將開始索引區塊鏈, 並且任何開發者都可以查詢數據。
要使用zkIndexing, 開發者需要利用zkGraph 定義索引行為和查詢架構。
開發者可以從頭開始構建zkIndexing 的zkGraph, 從現有子圖遷移它們, 或者重用已部署的zkGraph。對於Uniswap、AAVE 或Curve 等現有協議, 有多個開源實現可用。
一旦zkGraph 被部署, 相應的zkIndexing 服務將開始索引區塊鏈, 數據將對任何開發者可查詢。
3. 對比
a) zkOracle 網絡vs. 其他預言機網絡
创建一个去中心化的预言机时, zkOracle 网络与传统网络有显著的区别。
首先, 工作流程和架構是不同的。zkOracle 網絡更加簡化, 因為所有的計算都是在安全和無需信任的情況下使用ZK 鏈下進行的。相比之下, 傳統的預言機被限制於通過智能合約的有限計算能力進行無需信任的聚合和「可信」 計算。
基於上面顯示的圖表, 我們可以比較zkOracle 網絡與傳統預言機網絡的優勢:
去中心化( 無需信任, 安全性和抗審查 )
zkOracle 網絡Hyper Oracle 在不需要外部信任第三方的情況下運行, 使其成為一個無需信任的網絡。相反, 傳統的預言機網絡依賴於可信第三方和網絡。zkOracle 網絡遵循Vitalik Buterin 在信任模型的文章中定義的1-of-N 信任模型, 只需要一個節點來維護網絡的健康和運行時間。另一方面, 只有當傳統的預言機網絡達到極大的節點數量時, 才被認為是去中心化的。zkOracle 網絡的安全性完全基於數學和密碼學, 它繼承了以太坊的安全性, 以太坊作為它的數據源。
性能和最終性
根據廣泛接受的關於Rollups 最終性的定義, 在挑戰期結束時實現最終性。傳統的預言機和zkOracle 網絡可以分別與Optimistic 和ZK Rollups 進行比較, 因此我們可以使用這個定義來進行性能比較。輸入預言機( 如Chainlink Price Feeds) 和輸出預言機( 如The Graph Protocol) 依賴於Slashing 或挑戰期, 這可能需要數天甚至數週的時間。然而, 像Hyper Oracle 這樣的zkOracle 網絡則基於zk 證明生成時間。雖然zk 證明生成與純計算相比具有開銷, 但預言機的性能仍然可以從挑戰期的數天或數週的時間下降到幾分鐘或幾秒, 即使不考慮並行證明。由於zk 的本質, 向zkOracle 網絡添加更多的節點幾乎可以線性提升它的性能, 而不僅僅是在網絡中創建冗餘。
成本
zkOracle 網絡採用1-of-N 信任模型, 這意味著只需要一個誠實的節點即可創建一個安全網絡。這消除了傳統預言機網絡中發現的冗餘, 使其成為更安全的選擇。儘管zk 證明的成本增加了成本( 在zkEVM 的情況下,大批量交易的證明成本只有0.06 美元), 因此zkOracle 網絡產生的費用比傳統的Oracle 網絡要低。
機制與架構
傳統的預言機網絡具有涉及多個具有不同機制的組件的複雜架構。它們涉及許多依賴關係, 例如復雜的代幣經濟學和不確定的第三方信譽。相比之下, zkOracle 網絡具有更簡單的架構和更直接的機制。只要有一個誠實的zkOracle 節點生成並驗證了zk 證明, 所有相關的數據就是正確的。
b) zkAutomation vs. 其他自動化協議
zkAutomation 提供了zkOracle 網絡的所有優勢, 與其他自動化協議( 如Keep3r Network、Chainlink Automation 和Gelato Network) 相比, 還提供了特定的優點。除了具有這些自動化協議的所有功能外, zkAutomation 還提供:
無需信任的鏈下源
zkAutomation 的無需信任自動化, 提供基於可編程的zkGraph 的鏈下源。這允許基於鏈下計算結果觸發靈活的自動化, 同時保持安全。
基於ZKP 的可驗證性和安全性
zkAutomation 的zk 證明使全面的可驗證性成為可能。其他自動化協議通常依賴於DAO、「社會共識」甚至法律文件來預防不良行為, 這可能會為保護網絡健康帶來不確定性和額外的時間或功率負擔。相比之下, zkAutomation 的網絡是自主和自動的, 具有純基於密碼學的證明生成和驗證, 無需人為乾預。
c) zkIndexing vs 其他索引協議
zkIndexing 提供了zkOracle 網絡的所有優點, 以及相比其他索引協議( 如The Graph) 的幾個優勢, 包括:
通過無需信任特性提高性能
索引和查詢服務的性能是一個關鍵指標, 請求和響應的延遲很大程度上取決於節點和請求者之間的地理距離。傳統的去中心化索引網絡由於誠實多數假設而面臨性能問題。雖然請求者可以相信整個網絡的結果, 但他們不能相信單個節點, 這可能會影響性能。zkIndexing 通過zk 證明解決了這個問題。開發人員可以從最接近和最快的Hyper Oracle zkOracle 節點中可信地請求數據。
使用ZKP 的可驗證性和安全性
傳統的索引網絡目前只服務於某些不將數據正確性視為關鍵組成部分的去中心化應用, 例如儀錶盤。這不是由於開發人員不希望將這些索引服務作為核心組件集成, 而是因為這些索引網絡尚未通過多重簽名控制的爭議委員會變得足夠安全。zkIndexing 通過zk 證明的數學和密碼學來解決這個問題, 並為開發人員構建任何類型的去中心化應用提供了可驗證性和安全性。
概述
本白皮書介紹了Hyper Oracle, 這是一個可編程的zkOracle 網絡, 旨在保護區塊鏈的安全性和去中心化。
Hyper Oracle 有三個主要組成部分: zkPoS、zkGraph 和zkWASM。zkPoS 安全地從以太坊區塊鏈檢索區塊頭和數據根; zkWASM 運行可編程的定制化鏈下計算和由zkGrap h 定義的數據映射。此外, Hyper Oracle Meta Apps — zkAutomation 和zkIndexing — 提供了安全的智能合約自動化和由zkGraph 定義的區塊鏈數據索引/ 查詢。與其他傳統的預言機網絡相比, Hyper Oracle 通過提出一個可信任的zk 驅動的基礎設施解決了現有的安全、去中心化和性能問題。
隨著區塊鏈行業的發展和對下一代去中心化應用程序的需求的增加, Hyper Oracle 將憑藉其先進的預言機技術作為DApps 的關鍵支撐, 並為可編程基礎設施建立新的範例。