ZK 協處理器介紹,如何讓區塊鏈產品藉由數據提升使用體驗?

Kyle
分享
ZK 協處理器介紹,如何讓區塊鏈產品藉由數據提升使用體驗?

EigenLayer 生態中的一個 AVS —— Brevis,其亮點是提供去中心化的 ZK 協處理器,不過 ZK 協處理器是什麼?為何說其可以真正提升區塊鏈的效能?Rollups 難道還不夠嗎?本文將簡單介紹。

ZK 協處理器想解決什麼問題?

使用場景:產品數據搜集與計算

現有的 Web3 產品,總覺得好像少點什麼功能,就是跟 Web2 產品有落差,像是自動推薦、忠誠度計畫、精準行銷等,這些在傳統軟體已經行之有年的標配,為何在 Web3 的產品中沒有看到?

舉個更具體的例子,某用戶上 Netflix 看影集,後台會搜集用戶所有的觀看紀錄與操作行為,藉由搜集這些數據,經過演算法計算後找到用戶可能喜愛的內容,最後進行個性化的推播與廣告。

廣告 - 內文未完請往下捲動

但是在 Web3 生態中,某用戶在 Uniswap 常常使用穩定幣交易對,將 USDT 兌換成 USDC,為何 Uniswap 的介面無法將這名用戶常使用的交易對自動顯示呢?

其實上述問題出在「數據」,Web2 的產品能有系統地搜集並對數據進行計算,就像是搜集用戶觀看紀錄,但是 Web3 產品則不行,就算只是簡單的交易紀錄。

可能有讀者會問「交易紀錄不是本來就在區塊鏈上嗎?為何會無法讀取?」其實還真的不行,又或者更精確地說:成本很高、不然就要承擔風險。

問題一:區塊鏈虛擬機不適合大量運算

要做到上述應用場景,需要做到許多計算資源,再以 Uniswap 的例子來說,如果要做到「歷史交易對自動顯示在首頁,方便用戶更快完成目的。」會需要以下努力:

  • 搜集用戶交易紀錄
  • 比較各種交易紀錄使用次數並選出最高者
  • 執行

最後一部執行基本上現在智能合約就做得很好了,有問題的是前兩步驟。

針對第一步,雖然交易紀錄都在練鏈上沒錯,但是虛擬機跟區塊鏈歷史帳本是兩回事,虛擬機要讀取歷史帳本會需要非常多的燃料費用。且每次要調用就用重新讀取一次或是儲存,但不管什麼做法都非常耗費資源,不適合在分散式虛擬機使用。

第二步則是資料的處理,雖然相對簡單,但因為在 EVM 之上也同樣需要大量資源去計算,若問題再難一點 (例如分析用戶觀看紀錄與觀看時間決定等等要推播的內容),那麼絕對是專案無法負擔的成本。

不論是 Layer1 還是 Layer2,其原本設計都不適合讀取大量數據或是計算的任務,區塊鏈 TPS 再高仍對此問題沒有幫助。

問題二:套用外部數據有信任假設問題

「如果鏈上無法計算,那就鏈下處理吧!」這是非常合理的思路,包含 Etherscan、Dune、DeBank 等服務都是使用此方式,確實可以解決許多問題。

但是如果這些鏈下計算結果跟龐大的 TVL 或是用戶權益有關係,那麼其中的信任假設風險帶來的風險就會增加。

像是區塊鏈空投,判定規則就算是公開的,但實際上進行篩選行為還是由團隊負責,最後在公開結果,但這之間存在信任假設 (怎麼知道團隊沒有作弊),也難怪每次空投社群常常出現爭議與怨言。更別說真的有問題的數據會造成什麼後果。

因此,鏈下計算這條路在許多應用場景似乎也不可行。

Web3 數據的兩難

這樣就會出現兩難,若直接抓取數據並計算成本太高昂,但如果使用鏈下計算結果則增加信任假設。也難怪目前沒有原生使用 Web3 數據的服務出現。

所有主流的 Web2 應用與產品,幾乎都是藉由數據打造體驗並維持優勢,而 Web3 若真的想打造「殺手級應用」的目標,數據雖然不是全部但絕對必要。

因此,市場出現 ZK 協處理器的概念嘗試解決此問題,同時做到鏈下計算但又可以不增加信任假設,完美地解決此問題。

ZK 協處理器介紹

將計算工作從 EVM 獨立出來

ZK 協處理器 (ZK Coprocessor) 又稱為 ZK 輔助處理器,其核心概念是將 EVM 不擅長計算的部分拉出來,藉由鏈下計算與零知識證明,做到同時高效率且無需信任,近一步增加區塊鏈的效率。

協處理器的名稱其實就是從 CPU 與 GPU 之間的關係而來的,GPU 將 CPU 不擅長大量針對圖像運算的工作拿來做,藉由這種輔助專業分工,最大化電腦效率。而區塊鏈其實也就是一種去中心化的電腦,當然也可以使用類似的作法。

ZK 協處理器如何避開上述問題

協處理器抽象來看,主要就是把兩件事做好:

  • 數據讀取:讀取區塊鏈帳本中的交易紀錄,並透過 ZK 證明數據真偽。
  • 數據計算:根據數據與需求做出相應的計算,並再次透過 ZK 證明結果真偽。

最後再把數據回傳給智能合約,智能合約可以藉由零知識證明以低成本的方式快速驗證與使用,最大化增加執行效率。

ZK 協處理器與 Rollups 提升的效率不同

ZK 協處理器更多的是在提升前段的過程,也就是數據搜集與數據處理的效率,而 Rollups 則是提升數據處理與執行的效率,兩者並不是競爭者,更像是互補的關係。

ZK 協處理器實作專案介紹

ZK 協處理器目前主流的專案包含 Brevis、Herodotus、Axiom 等,核心運作概念如同上述內容,不過實作上的手段有些許差異。

Brevis

Brevis 是由 Celer Network 相同團隊成員創辦,該服務架構可以分為三部分:

  • zkFabric:負責搜集區塊鏈上的資料,並將區塊練頭資訊計算零知識證明。
  • zkAggregatorRollup:負責儲存資料並傳輸給區塊鏈上的智能合約,包含 zkFabric 蒐集到的資料與 zkQueryNet。
  • zkQueryNet:處理 Web3 智能合約所需要的數據與運算。
Brevis 設計架構 (資料來源)

Axiom

Axiom 的服務是提供無需信任的區塊鏈查詢服務,與上述中心化的鏈下查詢架構不同,Axiom 所提供的資料都可以藉由零知識證明確認資料正確性。

ZK 協處理器不是唯一解

ZK 協處理器可以解決 Web3 數據搜集與計算的問題,對於提升產品使用體驗與精準行銷都是非常關鍵的。

但其實如果要解決「區塊鏈上的數據運算」,還有其他解決方式,例如 Smart Layer 就是利用附加外部數據的方式,可以做到相同的事情,但其信任假設風險則取決於 Smart Layer 網路本身的安全性。

推薦閱讀:Smart Layer 是什麼?如何將 Web3 與現實生活真實場景結合?
推薦原因:該文章詳加介紹 Smart Layer 的設計架構與運作原理,非常推薦可以與此文章相互參照,可以對於 ZK 協處理器想解決的問題有更立體的認識。

若是相對不重要的資訊,當然也可以直接仰賴鏈下計算,而不用所有資訊都要完全無需信任,重要的還是解決什麼問題。