header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
掃碼下載APP
Partnered With:

ABCDE:詳析協處理器及各家解決方案

閱讀本文需 26 分鐘
協處理器說穿了就是「賦予智能合約Dune Analytics的能力」。
原文標題:《「CN」ABCDE:一文深入探討協處理器及各家解決方案》
原文來源:Kris & Laobai ABCDE / Mo Dong Celer Network

隨著近幾個月協處理器概念的火熱,這個新的ZK 用例開始得到越來越多人的關注。


然而我們發現,大多數人對於協處理器概念還是相對陌生,尤其是對於協處理器的精準定位—協處理器是什麼,又不是什麼,還比較模糊。而對於市面上幾家協處理器賽道的技術方案對比,尚未有人系統的整理過,這篇文希望能夠給市場和用戶一個關於協處理賽道更加清晰的認識。


一.協處理器Co-Processor 是什麼,又不是什麼


如果要求你只用一句話來跟一個非技術或是開發人員講清楚協處理器,你會如何描述?


我想董沫博士的這句話可能非常接近標準答案—協處理器說白了就是「賦予智能合約 Dune Analytics 的能力」。


這句話該如何拆解?


想像我們使用Dune 的場景—你想要去Uniswap V3 做LP 賺點手續費,於是乎你打開Dune,找到最近Uniswap 上各種交易對的交易量,手續費近7 天的APR,主流交易對的上下波動區間等等…


又或者StepN 火了那會,你開始炒鞋,不確定什麼時候該脫手,於是你每天盯著Dune 上面StepN 的數據,每日交易量,新增用戶數,鞋子地板價…打算一旦出現增長放緩或是下跌趨勢就趕緊跑。


當然,可能不只你在盯著這些數據,Uniswap 和 StepN 的開發團隊也同樣關注這些數據。


這些數據非常有意義—它不僅可以幫助判斷趨勢的變化,還可以以此玩出更多的花樣,正如互聯網大廠常用的“大數據”打法。


例如根據使用者經常買賣的鞋子風格與價格,推薦類似的鞋子。


例如根據用戶持有創世鞋子的時長,推出一個“用戶忠誠獎勵計劃”,給予忠誠用戶更多的空投或是福利。


例如根據Uniswap 上面LP 或Trader 提供的TVL 或是交易量推出一個類似Cex 的VIP 方案,給予Trader 交易手續費減免或是LP 手續費份額增加的福利


……


這時問題來了—網路大廠玩大數據+AI,基本上是個黑箱,想怎麼弄怎麼弄,用戶看不到,也不在乎。


但在 Web3 這邊,透明,去信任是咱們天然的政治正確,拒絕黑箱!


於是乎當你想要實現上述場景之時,會面臨一個兩難之境—要么你通過中心化的手段去實現,“後台手動”用Dune 統計完這些索引數據,然後去部署實作;要嘛你寫一套智能合約,自動去鏈上抓取這些數據,完成計算,自動部署分。


前者會讓你陷入「政治不正確」的信任問題。


後者在鏈上產生的 Gas 費用會是個天文數字,你 (項目方)的錢包承受不起。


這時候就是協處理器登場的時候了,把剛才那兩種手段結合一下,同時把「後台手動」這個步驟透過技術手段「自證清白」,換句話說,透過ZK 技術把鏈外「索引+計算」這一塊「自證清白」了,然後餵給智能合約,這樣信任問題解決,海量的Gas 費用也不見了,完美!


為什麼會叫做「協處理器」呢?其實這是來自 Web2.0 發展史中的「GPU」。 GPU 之所以在當時被引入作為一個單獨的計算硬件,獨立於CPU 存在,是因為他的設計架構能夠處理一些CPU 從根本上就難以處理的計算,比如大規模的並行重複計算,圖形計算等等。正是有了這種「協處理器」的架構,我們今天才有了精彩的 CG 電影,遊戲,AI 模型等等,所以這種協處理器的架構實際上是計算計體系架構的一次飛躍。現在各家協處理器團隊也是希望將這種架構引入Web3.0,在這裡區塊鏈就類似於Web3.0 的CPU,不論是L1 還是L2,都天生不適應這類「重數據」和“複雜計算邏輯」的任務,所以引入一個區塊鏈協處理器,來幫助處理這類計算,從而極大拓展區塊鏈應用的可能性。


所以協處理器做的事情歸納一下就是兩件事:


1.從區塊鏈上拿數據,並透過ZK 證明我拿的數據是真的,沒摻假;


2.根據剛才拿到的數據做出對應的計算,並再次透過ZK 證明我算的結果也是真的,沒摻假,計算結果就可以被智能合約「低費用+Trustless」的調用了。


前段時間Starkware 那邊火了一個概念,叫做Storage Proof,也叫State Proof,基本上做的就是步驟1,代表是,Herodotus,Langrage等等,許多基於ZK 技術的跨鏈橋的技術重點也在步驟1 上。


協處理器無非也就是步驟 1 完事兒之後再加一個步驟 2,免信任提取資料之後再做個免信任計算就 OK 了。


所以用一個相對技術一點的話來精確形容,協處理器應該是Storage Proof/State Proof 的超集,是Verfiable Computation(可驗證計算)的一個子集。


要注意的一點是,協處理器不是 Rollup。


從技術上講,Rollup 的ZK 證明類似於上述步驟2,而步驟1「拿資料」這個過程,是透過Sequencer 直接實現的,即便是去中心化Sequencer,也只是透過某種競爭或是共識機制去拿,而非Storage Proof 這種ZK 的形式。更重要的是ZK Rollup 除了計算層之外,還要實作一個類似L1 區塊鏈的儲存層,這個儲存是永久存在的,而ZK Coprocessor 則是「無狀態」的,進行完計算之後,不需要保留所有狀態。


從應用場景來講,協處理器可以看做所有Layer1/Layer2 的一個服務型插件,而Rollup 則是自己重新起一個執行層,幫助結算層擴容。


二.為什麼要用 ZK,用 OP 行不行?


看完上面,你可能會有一個疑惑,協處理器,非得用 ZK 來做麼?聽起來怎麼這麼像是一個「加了 ZK 的 Graph”,而我們似乎對於 Graph 上面的結果也沒有什麼「大的懷疑」。


說是這麼說,那是因為平常你用Graph 的時候基本上不太牽扯真金白銀,這些索引都是服務off-chain services 的,你在前端使用者介面上看到的,交易量,交易歷史等等數據,可以透過graph,Alchemy,Zettablock 等多家數據索引提供者來提供,但這些數據沒法塞回到智能合約裡面,因為一旦你塞回去就是去增加了額外的對這個索引服務的信任。當數據跟真金白銀,尤其是那種大體量的TVL 進行聯動之時,這種額外的信任就變得重要起來,想像下一個朋友問你借100 塊,你可能眼都不眨說給就給了,問你借1 萬,甚至100 萬的時候呢?


但話又說回來,是不是協處理上面所有的場景真的都得用ZK 來做呢?畢竟Rollup 裡面我們就有OP 和ZK兩條技術路線,最近流行的ZKML,也有相應分支路線的OPML 概念提出,那麼協處理器這事兒,是不是也有個OP 的分支,比如說OP-Coprocessor?


其實還真的有—不過在此我們先對具體的細節保密,很快我們將會發布更細節的資訊出來。


三.協處理器哪一個強—市面上常見的幾家協處理器技術方案比較


1.Brevis:


Brevis 的架構由三個元件組成:zkFabric、zkQueryNet 和zkAggregatorRollup。


如下是一個Brevis 的架構圖:



zkFabric 基於零知識證明(ZKP)的輕客戶端使其完全免於信任,無需依賴任何外部驗證實體。無需依賴任何外部驗證實體,因為其安全性完全來自於因為其安全性完全來自於底層區塊鏈和數學上可靠的證明。


zkFabric Prover 網路為每個區塊鏈的 lightclient 協定實作電路,該網路為區塊頭生成有效性證明。證明者可利用 GPU、FPGA 和 ASIC 等加速器,以最大限度地減少證明時間和成本。


zkFabric 依賴區塊鏈和底層加密協定的安全假設和底層加密協定的安全假設。不過,要確保 zkFabric 的有效性,至少需要一個誠實的中繼器來同步正確的 fork。因此,zkFabric 採用了去中心化的中繼網路而不是單一中繼器來優化 zkFabric 的有效性。這種中繼網路可以利用現有的結構,如 Celer 網路中的狀態監護網路。


證明者分配: 證明者網路是一個分散的ZKP 證明者網路、需要為每個證明產生任務選擇一個證明者,並向這些證明者支付費用。


目前的部署:


目前為各種區塊鏈(包括以太坊PoS 、Cosmos Tendermint 和BNB Chain)實現的輕客戶端協定作為範例和概念驗證。


Brevis 目前已經跟uniswap hook 開展合作,hook 大大添加了自訂uniswap 池,但與CEX 相比,UnisWap 仍然缺乏有效的資料處理功能來建立依賴大型用戶交易資料(例如基於交易量的忠誠度計劃)的功能。


在 Brevis 的幫助下,hook 解決了挑戰。 hook 現在可以從使用者或 LP 的完整歷史鏈資料中讀取,並以完全無信任的方式運行可自訂的計算。


2.Herodotus


Herodotus 是一個強大的資料存取中間件,它為智能合約提供以下跨以太坊層同步存取目前和歷史鏈上資料的功能:


L1 states from L2s


< /p>

L2 states from both L1s and other L2s


L3/App-Chain states to L2s and L1s


Herodotus 提出儲存證明這個概念,儲存證明融合了包含證明(確認資料的存在)和計算證明(驗證多步驟工作流程的執行),以證明大型資料集(如整個以太坊區塊鏈或rollup)中一個或多個元素的有效性。


區塊鏈的核心是資料庫,其中的資料使用 Merkle 樹、Merkle Patricia 樹等資料結構進行加密保護。這些資料結構的獨特之處在於,一旦資料被安全地提交給它們,就可以產生證據來確認資料包含在結構內。


Merkle 樹和 Merkle Patricia 樹的使用增強了以太坊區塊鏈的安全性。透過在樹的每個層級對資料進行加密雜湊,幾乎不可能在不被發現的情況下更改資料。對數據點的任何更改都需要更改樹上相應的哈希值到根哈希值,這在區塊鏈標頭中公開可見。區塊鏈的這一基本特徵提供了高水準的資料完整性和不變性。


其次,這些樹可以透過包含證明進行有效的資料驗證。例如,當驗證交易的包含或合約的狀態時,無需搜尋整個以太坊區塊鏈,只需驗證相關 Merkle 樹內的路徑即可。


Herodotus 定義的儲存證明是以下內容的融合:


·包含證明:這些證明確認加密資料結構(例如Merkle 樹或Merkle Patricia 樹)中特定資料的存在,確保相關資料確實存在於資料集中。


·計算證明:驗證多步驟工作流程的執行,證明廣泛資料集中一個或多個元素的有效性,例如整個以太坊區塊鏈或匯總。除了指示資料的存在之外,它們還驗證應用於該資料的轉換或操作。


·零知識證明:簡化智能合約需要互動的資料量。零知識證明允許智能合約在不處理所有基礎資料的情況下確認索賠的有效性。


Workflow :


1.取得區塊哈希


區塊鏈上的每個資料都屬於特定的區塊。區塊哈希作為該區塊的唯一標識符,透過區塊頭來總結其所有內容。在儲存證明的工作流程中,首先需要確定和驗證包含我們感興趣的資料的區塊的區塊哈希,這是整個過程中的首要步驟。


2.取得區塊頭


一旦獲得了相關的區塊雜湊,下一步就是訪問區塊頭。為此,需要與上一步獲取的區塊哈希值相關聯的區塊頭進行哈希處理。然後,將提供的區塊頭的雜湊值與所得的區塊雜湊值進行比較:


取得雜湊的方式有兩種:


(1)使用BLOCKHASH opcode 來擷取


(2)從Block Hash Accumulator 來查詢歷史中已經被驗證過的區塊的雜湊


這一步驟可確保正在處理的區塊頭是真實的。該步驟完成後,智慧合約就可以存取區塊頭中的任何值。


3.確定所需的根(可選)


/p>

有了區塊頭,我們就可以深入研究它的內容,特別是:


stateRoot: 區塊鏈發生時整個區塊鏈狀態的加密摘要。


receiptsRoot: 區塊中所有交易結果(收據)的加密摘要。


事務根(transactionsRoot): 區塊中發生的所有交易的加密摘要。


跟可以被解碼,使得能夠核實區塊中是否包含特定帳戶、收據或交易。


4.根據所選根來驗證資料(可選)


Halo2-repl ,是一個基於瀏覽器的用Javascript 編寫的halo2 REPL。這使得開發人員只需使用標準的 Javascript 就能編寫 ZK 電路,而無需學習 Rust 等新語言、安裝證明庫或處理依賴關係。


Axiom 由兩個主要技術組件組成:


AxiomV1—以太坊區塊鏈緩存,從Genesis 開始。


AxiomV1Query—執行針對 AxiomV1 查詢的智慧合約。


(1)在AxiomV1 中快取區塊雜湊值:


AxiomV1 智慧合約以兩種形式快取自創世區塊以來的以太坊區塊雜湊:


首先,快取了連續1024 個區塊雜湊的Keccak Merkle根。這些 Merkle 根透過 ZK 證明進行更新,驗證區塊頭雜湊是否形成以 EVM 直接可存取的最近 256 個區塊之一或已存在於 AxiomV1 快取中的區塊雜湊為結束的承諾鏈。


其次。 Axiom 從創世區塊開始儲存這些 Merkle 根的 Merkle Mountain Range。該 Merkle Mountain Range 是在鏈上構建的,透過對緩存的第一部分 Keccak Merkle 根進行更新。


(2)在AxiomV1Query 中履行查詢:


AxiomV1Query 智能合約用於批次查詢,以實現對歷史以太坊區塊頭、帳戶和帳戶儲存的任意資料的無信任存取。查詢可以在鏈上進行,並且透過針對 AxiomV1 快取的區塊哈希進行的 ZK 證明來在鏈上完成。


這些ZK 證明檢查相關的鏈上資料是否直接位於區塊頭中,或位於區塊的帳戶或儲存Trie 中,透過驗證Merkle-Patricia Trie的包含(或不包含)證明來實現。


4.Nexus


Nexus 試圖利用零知識證明為可驗證的雲端運算搭建一個通用平台。目前是 machine archetechture agnostic 的,對 risc 5/ WebAssembly/ EVM 都支援。 Nexus 利用的是 supernova 的證明系統,團隊測試產生證明所需的記憶體為 6GB,未來將在此基礎上優化使得普通的用戶端裝置電腦可以產生證明。


確切的說,架構分為兩部分:


Nexus zero:由零知識證明和通用zkVM 支援的去中心化可驗證雲端運算網路。


Nexus: 由多方運算、狀態機複製和通用 WASM 虛擬機器驅動的分散式可驗證雲端運算網路。


Nexus 和 Nexus Zero 應用程式可以用傳統程式語言編寫,目前支援 Rust,以後將會支援更多的語言。


Nexus 應用程式在去中心化雲端運算網路中運行,該網路本質上是直接連接到以太坊的通用「無伺服器區塊鏈」。因此,Nexus 應用程式並未繼承以太坊的安全性,但作為交換,由於其網路規模縮小,可以獲得更高的運算能力(如運算、儲存和事件驅動 I/O)。 Nexus 應用程式在專用雲端上運行,可達成內部共識,並透過以太坊內部可驗證的全網路閾值簽章提供可驗證運算的「證明」(而非真正的證明)。


Nexus Zero 應用程式確實繼承了以太坊的安全性,因為它們是帶有零知識證明的通用程序,可以在BN-254 橢圓曲線上進行鏈上驗證。


由於Nexus 可在複製環境中運行任何確定性WASM 二進位文件,因此預計它將被用作證明生成應用的有效性/分散性/容錯性來源,包括zk-rollup 排序器、樂觀的rollup 排序器和其他證明器,如Nexus Zero 的zkVM 本身。


原文連結


歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

举报 糾錯/舉報
選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交