本文為 SevenX 研究團隊原創,僅供交流學習,不構成任何投資參考。如需引用,請注明來源。
原版英文報告于 2023 年 5 月發表于 SevenX 的 Mirror 平臺。更多中文投研內容,請關注公眾號【SevenXVentures】。
感謝 Brian Retford, SunYi, Jason Morton, Shumo, Feng Boyuan, Daniel, Aaron Greenblatt, Nick Matthew, Baz, Marcin, 和 Brent 對本文提供的寶貴見解、反饋和審閱。
作者:Grace&Hill
對于我們這些加密愛好者來說,人工智能已經火了好一陣子。有趣的是,沒人愿意看到人工智能失控的情況。區塊鏈發明的初衷是防止美元失控,所以我們可能會嘗試一下防止人工智能的失控。此外,我們現在有了一種叫做零知識證明的新技術,用于確保事情不會出錯。然而,要駕馭人工智能這個野獸,我們必須了解它的工作原理。
人工智能已經經歷了幾個名字的變化,從“專家系統”到“神經網絡”,然后是“圖形模型”,最后演變為“機器學習”。所有這些都是“人工智能”的子集,人們給它起了不同的名字,我們對人工智能的了解也在不斷加深。讓我們稍微深入了解一下機器學習,揭開機器學習的神秘面紗。
注:如今,大多數機器學習模型都是神經網絡,因為它們在許多任務中具有優異的性能。我們主要將機器學習稱為神經網絡機器學習。
首先,讓我們快速了解一下機器學習的內部運作:
輸入數據預處理:輸入數據需要處理成可以作為模型輸入的格式。這通常涉及預處理和特征工程,以提取有用的信息并將數據轉換成合適的形式,如輸入矩陣或張量(高維矩陣)。這是專家系統方法。隨著深度學習的出現,處理層自動處理預處理。
設置初始模型參數:初始模型參數包括多個層、激活函數、初始權重、偏置、學習率等。有些參數可以在訓練過程中通過優化算法進行調整以提高模型的準確性。
訓練數據:
輸入數據輸入到神經網絡中,通常從一個或多個特征提取和關系建模層開始,如卷積層(CNN),循環層(RNN)或自注意力層。這些層學會從輸入數據中提取相關特征并建模這些特征之間的關系。
這些層的輸出然后傳遞給一個或多個額外的層,這些層對輸入數據執行不同的計算和轉換。這些層通常主要涉及可學習權重矩陣的矩陣乘法和非線性激活函數的應用,但也可能包括其他操作,如卷積神經網絡中的卷積和池化,或者循環神經網絡中的迭代。這些層的輸出作為模型中下一層的輸入,或者作為最終的預測輸出。
獲取模型的輸出:神經網絡計算的輸出通常是一個向量或矩陣,表示圖像分類的概率、情感分析分數或其他結果,具體取決于網絡的應用。通常還有一個錯誤評估和參數更新模塊,根據模型的目的自動更新參數。
神經網絡計算的輸出通常是一個向量或矩陣,表示圖像分類的概率、情感分析分數或其他結果,具體取決于網絡的應用。通常還有一個錯誤評估和參數更新模塊,根據模型的目的自動更新參數。如果上述解釋看起來太晦澀,可以參考以下使用 CNN 模型識別蘋果圖片的例子。
將圖像以像素值矩陣的形式加載到模型中。該矩陣可以表示為具有尺寸(高度、寬度、通道)的3D張量。
設置 CNN 模型的初始參數。
輸入圖像通過 CNN 中的多個隱藏層,每個層應用卷積濾波器從圖像中提取越來越復雜的特征。每層的輸出通過非線性激活函數,然后進行池化以減小特征圖的維數。最后一層通常是一個全連接層,根據提取的特征生成輸出預測。
CNN 的最終輸出是概率最高的類別。這是輸入圖像的預測標簽。
輸入:原始數據需要進行預處理,有時還需要保密。
完整性:輸入數據未被篡改,未被惡意輸入污染,并且正確地進行了預處理。
隱私:如有需要,輸入數據不會泄露。
輸出:需要準確生成和傳輸
完整性:輸出正確生成。
隱私:如有需要,輸出不會泄露。
模型類型/算法:模型應正確計算
完整性:模型執行正確。
隱私:如有需要,模型本身或計算不會泄露。
不同的神經網絡模型具有不同的算法和層,適用于不同的用例和輸入。
卷積神經網絡(CNN)通常用于涉及網格狀數據的任務,如圖像,其中局部模式和特征可以通過對小輸入區域應用卷積操作來捕獲。
另一方面,循環神經網絡(RNN)非常適用于順序數據,如時間序列或自然語言,其中隱藏狀態可以捕獲來自先前時間步的信息并建模時間依賴關系。
自注意力層對于捕獲輸入序列中元素之間的關系非常有用,使其對于諸如機器翻譯或摘要之類的任務非常有效,這些任務中長程依賴關系至關重要。
還存在其他類型的模型,包括多層感知機(MLP)等。
模型參數:在某些情況下,參數應該透明或民主生成,但在所有情況下都不易被篡改。完整性:參數以正確的方式生成、維護和管理。隱私:模型所有者通常會對機器學習模型參數保密,以保護開發該模型的組織的知識產權和競爭優勢。這種現象只在變壓器模型變得瘋狂昂貴的訓練前非常普遍,但對行業來說仍然是一個主要問題。
信任問題長期困擾著機器學習,主要原因有兩個:
隱私性質:如上所述,模型參數通常是私密的,而在某些情況下,模型輸入也需要保密,這自然會在模型所有者和模型用戶之間帶來一些信任問題。
算法黑盒:機器學習模型有時被稱為“黑盒”,因為它們在計算過程中涉及許多難以理解或解釋的自動化步驟。這些步驟涉及復雜的算法和大量的數據,帶來不確定性和有時隨機的輸出,使得算法容易受到偏見甚至歧視的指責。
在更深入之前,本文的一個更大的假設是模型已經“準備好使用”,意味著它經過良好的訓練并符合目的。模型可能不適用于所有情況,而且模型以驚人的速度改進,機器學習模型的正常使用壽命在2到18個月之間,具體取決于應用場景。
輸入:
數據來源是防篡改的
私有輸入數據不被模型操作者竊取(隱私問題)
模型:
模型本身如宣傳的那樣準確
計算過程正確完成
參數:
模型參數沒有被改變或與宣傳的一致
在過程中,對模型所有者具有價值的模型參數沒有泄露(隱私問題)
輸出:
輸出結果可證明是正確的(可能隨著上述所有元素的改進而改進)
制定需要證明的陳述:f(x, w)=true
“我使用具有私有參數 w 的機器學習模型 f 正確地對這個圖像 x 進行了分類。”
將陳述轉換為電路(算術化):不同的電路構建方法包括 R 1 CS、QAP、Plonkish 等。與其他用例相比,ZKML 需要一個額外的步驟,稱為量化。神經網絡推斷通常使用浮點算術完成,而在算術電路的主要領域中模擬浮點算術非常昂貴。不同的量化方法在精度和設備要求之間取得折衷。
一些像 R 1 CS 這樣的電路構建方法對神經網絡來說效率不高。這部分可以調整以提高性能。
生成一個證明密鑰和一個驗證密鑰
創建一個見證:當 w=w*時,f(x, w)=true
創建一個哈希承諾:見證人 w*承諾使用加密哈希函數生成一個哈希值。這個哈希值可以公之于眾。
這有助于確保在計算過程中,私有輸入或模型參數沒有被篡改或修改。這一步至關重要,因為即使是細微的修改也可能對模型的行為和輸出產生重大影響。
生成證明:不同的證明系統使用不同的證明生成算法。
需要為機器學習操作設計特殊的零知識規則,如矩陣乘法和卷積層,以便實現這些計算的子線性時間高效協議。
? 像 groth 16 這樣的通用 zkSNARK 系統可能無法有效處理神經網絡,因為計算負載過大。
? 自 2020 年以來,許多新的 ZK 證明系統應運而生,以優化模型推理過程的 ZK 證明,包括 vCNN、ZEN、ZKCNN 和 pvCNN。然而,它們中的大多數都針對 CNN 模型進行了優化。它們只能應用于一些主要的數據集,如 MNIST 或 CIFAR-10 。
? 2022 年,Daniel Kang Tatsunori Hashimoto、Ion Stoica 和 Yi Sun(Axiom 創始人)提出了一種基于 Halo 2 的新證明方案,首次實現了對 ImageNet 數據集的 ZK 證明生成。他們的優化主要集中在算術化部分,具有用于非線性的新穎查找參數和跨層重用子電路。
? Modulus Labs 正在為鏈上推理對不同證明系統進行基準測試,發現在證明時間方面,ZKCNN 和 plonky 2 表現最佳;在峰值證明者內存使用方面,ZKCNN 和 halo 2 表現良好;而 plonky 雖然表現良好,但犧牲了內存消耗,而且 ZKCNN 僅適用于 CNN 模型。它還正在開發一個專門為 ZKML 設計的新 zkSNARK 系統,以及一個新的虛擬機。
驗證證明:驗證者使用驗證密鑰進行驗證,無需知道見證人的知識。
因此,我們可以證明將零知識技術應用于機器學習模型可以解決很多信任問題。使用交互式驗證的類似技術可以達到類似的效果,但會在驗證者方面需要更多資源,并可能面臨更多的隱私問題。值得注意的是,根據具體的模型,為它們生成證明可能需要時間和資源,因此在將此技術最終應用于現實世界的用例時,各方面將存在折衷。
如果輸入數據在鏈上,可以考慮使用 Axiom 作為解決方案:
Axiom 正在為以太坊構建一個零知識協處理器,以改善用戶對區塊鏈數據的訪問并提供更復雜數字化的鏈上數據視圖。在鏈上數據上進行可靠的機器學習計算是可行的:
首先,Axiom 通過在其智能合約 AxiomV 0 中存儲以太坊區塊哈希的默克爾根來導入鏈上數據,這些數據通過 ZK-SNARK 驗證過程進行無信任驗證。然后,AxiomV 0 StoragePf 合約允許對 AxiomV 0 中緩存的區塊哈希給出的信任根進行任意歷史以太坊存儲證明的批量驗證。
接下來,可以從導入的歷史數據中提取機器學習輸入數據。
然后,Axiom 可以在頂部應用經過驗證的機器學習操作;使用經過優化的 halo 2 作為后端來驗證每個計算部分的有效性。
最后,Axiom 會附上每個查詢結果的 zk 證明,并且 Axiom 智能合約會驗證 zk 證明。任何想要證明的相關方都可以從智能合約中訪問它。
如果將模型放在鏈上,可以考慮使用 RISC Zero 作為解決方案:
首先,需要將模型的源代碼編譯成 RISC-V 二進制文件。當這個二進制文件在 ZKVM 中執行時,輸出會與一個包含加密密封的計算收據配對。這個密封作為計算完整性的零知識論據,將加密的 imageID(識別執行的 RISC-V 二進制文件)與聲明的代碼輸出關聯起來,以便第三方快速驗證。
當模型在 ZKVM 中執行時,關于狀態更改的計算完全在 VM 內部完成。它不會向外部泄露有關模型內部狀態的任何信息。
一旦模型執行完畢,生成的密封就成為計算完整性的零知識證明。RISC Zero ZKVM 是一個 RISC-V 虛擬機,它可以生成對其執行的代碼的零知識證明。使用 ZKVM,可以生成一個加密收據,任何人都可以驗證這個收據是由 ZKVM 的客戶代碼生成的。發布收據時,不會泄露有關代碼執行的其他信息(例如,所提供的輸入)。
通過在 RISC Zero 的 ZKVM 中運行機器學習模型,可以證明模型涉及的確切計算是正確執行的。計算和驗證過程可以在用戶喜歡的環境中離線完成,或者在 Bonsai Network 中完成,Bonsai Network 是一個通用的 roll-up。
生成 ZK 證明的具體過程涉及到一個與隨機 oracle 作為驗證者的交互協議。RISC Zero 收據上的密封本質上就是這個交互協議的記錄。
如果您想直接從常用的機器學習軟件(如 Tensorflow 或 Pytorch)導入模型,可以考慮使用 ezkl 作為解決方案:
首先,將最終模型導出為 .onnx 文件,將一些樣本輸入導出為 .json 文件。
然后,將 ezkl 指向 .onnx 和 .json 文件,以生成可以證明 ZKML 語句的 ZK-SNARK 電路。
Ezkl 是一個庫和命令行工具,用于在 zkSNARK 中進行深度學習模型和其他計算圖的推斷。
看起來簡單,對吧?Ezkl 的目標是提供一個抽象層,允許在 Halo 2 電路中調用和布局高級操作。Ezkl 抽象了許多復雜性,同時保持了令人難以置信的靈活性。他們的量化模型具有自動量化的縮放因子。他們支持靈活地更改為新解決方案所涉及的其他證明系統。他們還支持多種類型的虛擬機,包括 EVM 和 WASM。
關于證明系統,ezkl 通過聚合證明(通過中介將難以驗證的證明轉換為易于驗證的證明)和遞歸(可以解決內存問題,但難以適應 halo 2)來定制 halo 2 電路。Ezkl 還通過融合和抽象(可以通過高級證明減少開銷)來優化整個過程。
值得注意的是,與其他通用 zkml 項目相比,Accessor Labs 專注于為完全上鏈游戲提供專門設計的 zkml 工具,可能涉及 AI NPC、游戲玩法的自動更新、涉及自然語言的游戲界面等。
從本質上講,這將是一個Web3應用程序(在撰寫本文時可能存在或不存在),以無需信任的方式實現 ML/AI。在無需信任的方式下,我們指的是它是否在無需信任的環境/平臺上運行,或者其操作是否可以被證明是可驗證的。請注意,并非所有 ML/AI 用例(即使在Web3中)都需要或更喜歡以無需信任的方式運行。我們將分析在各種Web3領域中使用的 ML 功能的每個部分。然后,我們將確定需要 ZKML 的部分,通常是人們愿意為證明支付額外費用的高價值部分。下面提到的大多數用例/應用仍處于實驗研究階段。因此,它們距離實際采用還很遙遠。我們稍后會討論原因。
Defi Defi 是區塊鏈協議和 Web3 應用中為數不多的產品市場契合度證明之一。以無需許可的方式創建、存儲和管理財富和資本在人類歷史上是前所未有的。我們已經確定了許多需要 AI/ML 模型無需許可地運行以確保安全性和去中心化的用例。
Automated MM and liquidity provision:
本質上,這是風險評估和資產管理中進行的類似努力的結合,只是在交易量、時間線和資產類型方面采用了不同的方式。關于如何在股票市場中使用 ML 進行做市的研究論文有很多。在一些研究成果適用于 Defi 產品可能只是時間問題。
例如,Lyra Finance 正與 Modulus Labs 合作,通過智能功能提升其 AMM,使其資本利用效率更高。
榮譽提名:
Warp.cc 團隊開發了一個教程項目,介紹如何部署一個運行訓練好的神經網絡以預測比特幣價格的智能合約。這符合我們框架的“輸入”和“模型”部分,因為輸入使用 RedStone Oracles 提供的數據,模型作為一個 Warp 智能合約在 Arweave 上執行。
這是第一次迭代并涉及 ZK,所以它屬于我們的榮譽提名,但是在未來,Warp 團隊考慮實現一個 ZK 部分。
游戲
游戲與機器學習有很多交集:圖中的灰色區域代表了我們對游戲部分中的機器學習功能是否需要與相應的 ZKML 證明配對的初步評估。Leela Chess Zero 是將 ZKML 應用于游戲的一個非常有趣的例子:
AI 代理
LC 0 和人類集體輪流進行游戲(正如象棋中應有的那樣)。
LC 0 的移動是通過簡化的、適合電路的 LC 0 模型計算出來的。
Leela Chess Zero (LC 0):由 Modulus Labs 構建的一款完全基于鏈上的 AI 棋手,與來自社區的一群人類玩家對戰。
LC 0 的移動有一個 Halo 2 snark 證明,以確保沒有人類智囊團的干預。只有簡化的 LC 0 模型在那里做決策。
這符合“模型”部分。模型的執行有一個 ZK 證明,以驗證計算沒有被篡改。
數據分析與預測:這一直是 Web2 游戲世界中 AI/ML 的常見用途。然而,我們發現在這個 ML 過程中實現 ZK 的理由非常少。為了不讓過多的價值直接涉及到這個過程,這可能不值得付出努力。然而,如果某些分析和預測被用來為用戶確定獎勵,那么 ZK 可能會被實施以確保結果是正確的。
榮譽提名:
AI Arena 是一款以太坊原生游戲,來自世界各地的玩家可以在其中設計、訓練和戰斗由人工神經網絡驅動的 NFT 角色。來自世界各地的才華橫溢的研究人員競相創建最佳機器學習(ML)模型來參與游戲戰斗。AI Arena 主要關注前饋神經網絡。總體而言,它們的計算開銷比卷積神經網絡(CNNs)或循環神經網絡(RNNs)低。盡管如此,目前模型只在訓練完成后上傳到平臺,因此值得一提。
GiroGiro.AI 正在構建一個 AI 工具包,使大眾能夠為個人或商業用途創建人工智能。用戶可以根據直觀且自動化的 AI 工作流平臺創建各種類型的 AI 系統。只需輸入少量數據和選擇算法(或用于改進的模型),用戶就可以生成并利用心中的 AI 模型。盡管該項目處于非常早期階段,但我們非常期待看到 GiroGiro 可以為游戲金融和元宇宙為重點的產品帶來什么,因此將其列為榮譽提名。
DID 和社交
在 DID 和社交領域,Web3 和 ML 的交叉點目前主要體現在人類證明和憑據證明領域;其他部分可能會發展,但需要更長的時間。
人類證明
用戶的應用程序在本地生成一個錢包地址。
應用程序使用 Semaphore 證明它擁有之前注冊的一個公鑰的私鑰。因為這是零知識證明,所以它不會透露是哪個公鑰。
證明再次發送到順序器,順序器驗證證明并啟動將代幣存入提供的錢包地址的過程。所謂的零件隨證明一起發送,確保用戶不能領取兩次獎勵。
用戶在手機上生成一個 Semaphore 密鑰對,并通過二維碼向 Orb 提供哈希后的公鑰。
Orb 掃描用戶的虹膜并在本地計算用戶的 IrisHash。然后,它將包含哈希公鑰和 IrisHash 的簽名消息發送到注冊順序節點。
順序節點驗證 Orb 的簽名,然后檢查 IrisHash 是否與數據庫中已有的匹配。如果唯一性檢查通過,IrisHash 和公鑰將被保存。
Worldcoin 使用一種名為 Orb 的設備來判斷某人是否是一個真實存在的人,而不是試圖欺詐驗證。它通過各種攝像頭傳感器和機器學習模型分析面部和虹膜特征來實現這一目標。一旦做出這個判斷,Orb 就會拍攝一組人的虹膜照片,并使用多個機器學習模型和其他計算機視覺技術創建虹膜編碼,這是一個表示個體虹膜圖案最重要特征的數字表示。具體的注冊步驟如下:
Worldcoin 使用開源的 Semaphore 零知識證明系統將 IrisHash 的唯一性轉換為用戶帳戶的唯一性,而不會將它們關聯起來。這確保新注冊的用戶可以成功領取他/她的 WorldCoins。步驟如下:
WorldCoin 使用 ZK 技術確保其 ML 模型的輸出不會泄露用戶的個人數據,因為它們之間沒有關聯。在這種情況下,它屬于我們信任框架的“輸出”部分,因為它確保了輸出以期望的方式傳輸和使用,在這種情況下是私密的。
可以看到,Web3 中 ZKML 的潛在用例尚處于起步階段,但不能被忽視;未來,隨著 ZKML 使用的不斷擴大,可能會出現對 ZKML 提供商的需求,形成下圖中的閉環:ZKML 服務提供商主要關注 ML 信任框架的“模型”和“參數”部分。盡管我們現在看到的大部分與“參數”相關的更多是“模型”相關。需要注意的是,“輸入”和“輸出”部分更多地由基于區塊鏈的解決方案解決,無論是作為數據來源還是數據目的地。單獨使用 ZK 或區塊鏈可能無法實現完全的可信度,但它們聯合起來可能會實現。
那么證明大小和驗證時間呢?我們可以參考 Daniel Kang、Tatsunori Hashimoto、Ion Stoica 和 Yi Sun 的論文。如下所示,他們的 DNN 推理解決方案在 ImageNet(模型類型:DCNN, 16 層, 3.4 百萬參數)上的準確率可以達到 79% ,同時驗證時間僅需 10 秒,證明大小為 5952 字節。此外,zkSNARKs 可以縮小到 59% 準確率時驗證時間僅需 0.7 秒。這些結果表明,在證明大小和驗證時間方面,對 ImageNet 規模的模型進行 zkSNARKing 是可行的。目前主要的技術瓶頸在于證明時間和內存消耗。在 web3 案例中應用 ZKML 在技術上尚不可行。ZKML 是否有潛力趕上 AI 的發展呢?我們可以比較幾個經驗數據:
機器學習模型的發展速度: 2019 年發布的 GPT-1 模型具有 1.5 億個參數,而 2020 年發布的最新 GPT-3 模型具有 1, 750 億個參數,僅兩年間參數數量增加了 1, 166 倍。
零知識系統的優化速度:零知識系統的性能增長基本上遵循“摩爾定律”式的步伐。幾乎每年都會出現新的零知識系統,我們預計證明者性能的快速增長在一段時間內還將繼續。
從這些數據來看,盡管機器學習模型的發展速度非常快,但零知識證明系統的優化速度也在穩步提升。在未來一段時間內,ZKML 可能仍有機會逐步趕上 AI 的發展,但它需要不斷地進行技術創新和優化以縮小差距。這意味著,盡管目前 ZKML 在 web3 應用中存在技術瓶頸,但隨著零知識證明技術的不斷發展,我們仍有理由期待 ZKML 在未來能夠在 web3 場景中發揮更大的作用。對比前沿的 ML 與 ZK 的改進率,前景并不十分樂觀。不過,隨著卷積性能、ZK 硬件的不斷完善,以及基于高度結構化的神經網絡操作而量身定做的 ZK 證明系統,希望 ZKML 的發展能夠滿足web3的需求,先從提供一些老式的機器學習功能開始。雖然我們可能很難用區塊鏈 ZK 來驗證 ChatGPT 反饋給我的信息是否可信,但我們也許可以在 ZK 電路中安裝一些較小和較老的 ML 模型。
我們期待在 ZKML 領域看到更多的產品創新,ZK 和區塊鏈為 AI/ML 的運行提供了一個安全和值得信賴的環境。我們也期待這些產品創新產生全新的商業模式,因為在無許可的加密貨幣世界里,我們不受這里的去 SaaS 商業化模式的限制。我們期待著支持更多的建設者,在這個 "西部荒野無政府狀態 "和 "象牙塔精英 "的迷人重疊中,來建立他們令人興奮的想法。我們仍處于早期階段,但我們可能已經在拯救世界的路上。