通過 zkSNARKs 證明機器學習 (ML) 模型推理有望成為這十年智能合約最重要的進步之一。這一發展開辟了一個令人興奮的大設計空間,允許應用程序和基礎設施發展成為更復雜和智能的系統。
通過添加 ML 功能,智能合約可以變得更加自主和動態,允許它們根據實時鏈上數據而不是靜態規則做出決策。智能合約將是靈活的,可以適應各種場景,包括那些在最初創建合約時可能沒有預料到的場景。簡而言之,ML 功能將擴大我們放在鏈上的任何智能合約的自動化、準確性、效率和靈活性。
ML 在 web3 之外的大多數應用程序中被廣泛應用,在智能合約中的應用幾乎是零。其主要是由于在鏈上運行這些模型的計算成本很高。例如,FastBERT 是一種計算優化語言模型,使用約 1800 MFLOPS(百萬浮點運算),這無法直接在 EVM 上運行。
鏈上 ML 模型的應用,主要關注的是推理階段:應用模型對真實世界的數據進行預測。為了擁有 ML 規模的智能合約,合約必須能夠攝取此類預測,但正如我們之前提到的,直接在 EVM 上運行模型是不可行的。zkSNARKs 為我們提供了一個解決方案:任何人都可以在鏈下運行一個模型,并生成一個簡潔且可驗證的證明,表明預期的模型確實產生了特定的結果。該證明可以在鏈上發布并由智能合約攝取以增強其智能。
在這篇文章中,我們將:
查看鏈上 ML 的潛在應用程序和用例
探索 zkML 核心的新興項目和基礎設施建設
討論現有實現的一些挑戰以及 zkML 的未來會是什么樣子
機器學習(ML)是人工智能(AI)的一個子領域,專注于開發能夠讓計算機從數據中學習并進行預測或決策的算法和統計模型。ML模型通常具有三個主要組成部分:
訓練數據:一組用于訓練機器學習算法進行預測或對新數據進行分類的輸入數據。訓練數據可以采用多種形式,如圖像、文本、音頻、數值數據或其組合。
模型架構:機器學習模型的整體結構或設計。它定義了層次結構、激活函數和節點或神經元之間的連接類型和數量。架構的選擇取決于具體的問題和使用的數據。
模型參數:模型在訓練過程中學習的值或權重,用于進行預測。這些值通過優化算法進行迭代調整,以最小化預測結果與實際結果之間的誤差。
模型的生成和部署分為兩個階段:
訓練階段:在訓練階段,模型會接觸到一個帶標簽的數據集,并調整其參數以最小化預測結果與實際結果之間的誤差。訓練過程通常涉及多次迭代或周期,模型的準確性會在單獨的驗證集上進行評估。
北卡羅來納州參議院通過法案 鼓勵采用和研究區塊鏈技術及智能合約:據官方消息,6月15日,美國北卡羅來納州參議院一致通過法案并創建了創新委員會,旨在研究區塊鏈技術和智能合約,從而為全州未來的增長\"提供法律和監管的清晰度\"。[2021/6/16 23:40:17]
推理階段:推理階段是使用經過訓練的機器學習模型對新的未見數據進行預測的階段。模型接收輸入數據,并應用學習到的參數生成輸出,如分類或回歸預測。
目前,zkML主要關注于機器學習模型的推理階段,而不是訓練階段,主要是由于驗證電路中訓練的計算復雜性。然而,zkML對推理的關注并不是一種限制:我們預計將會產生一些非常有趣的用例和應用。
驗證推理有四種可能的場景:
私有輸入,公共模型。模型消費者 (MC) 可能希望對模型提供者 (MP) 保密他們的輸入。例如,MC 可能希望在不披露其個人財務信息的情況下向貸方證明信用評分模型的結果。這可以使用預先承諾方案并在本地運行模型來完成。
公共輸入,私有模型。ML-as-a-Service 的一個常見問題是 MP 可能希望隱藏其參數或權重以保護其 IP,而 MC 想要驗證生成的推理確實來自對抗設置中的指定模型 . 這樣想:當向 MC 提供推理時,MP 有動機運行更輕的模型以節省成本。使用鏈上模型權重的承諾,MC 可以隨時審核私有模型。
私有輸入,私有模型。當用于推理的數據高度敏感或機密,并且模型本身被隱藏以保護 IP 時,就會出現這種情況。這方面的一個例子可能包括使用私人患者信息審核醫療保健模型。zk 中的組合技術或使用多方計算 (MPC) 或 FHE 的變體可用于服務此場景。
公共輸入,公共模型。當模型的所有方面都可以公開時,zkML 解決了一個不同的用例:將鏈下計算壓縮和驗證到鏈上環境。對于較大的模型,驗證推理的簡潔 zk 證明比自己重新運行模型更具成本效益。
驗證的ML推理為智能合約開辟了新的設計空間。一些加密原生應用包括:
可驗證的鏈下ML預言機。繼續采用生成式人工智能可能推動行業實施其內容的簽名方案(例如,新聞出版物簽署文章或圖像)。簽名數據準備好進行零知識證明,使數據可組合且可信。ML模型可以在鏈下處理這些簽名數據以進行預測和分類(例如,對選舉結果或天氣事件進行分類)。這些鏈下ML預言機可以通過驗證推理并在鏈上發布證明來無需信任地解決現實世界的預測市場、保險協議合約等問題。
基于ML參數的DeFi應用。DeFi的許多方面可以更加自動化。例如,借貸協議可以使用ML模型實時更新參數。目前,借貸協議主要依賴由組織運行的鏈下模型來確定抵押因子、貸款價值比、清算閾值等,但更好的選擇可能是社區訓練的開源模型,任何人都可以運行和驗證。
1inch聯合創始人:使用了Uniswap的智能合約進行Merkle空投:DEX聚合器1inch聯合創始人安東·布科夫發推回復Uniswap創始人Hayden Adams:我們重新使用了你的智能合約,用于1INCH圣誕Merkle空投。感謝你使用必要的腳本和審核將其開源。這就是DeFi領域不同于其他領域,并將在明年打破市場格局的原因。[2020/12/26 16:33:57]
自動化交易策略。展示金融模型策略的回報特征的常見方式是MP向投資者提供各種回測數據。然而,沒有辦法在執行交易時驗證策略師是否遵循該模型 - 投資者必須信任策略師確實遵循模型。zkML提供了一個解決方案,MP可以在部署到特定頭寸時提供金融模型推理的證明。這對于DeFi管理的保險庫可能尤其有用。
智能合約的欺詐監控。與其讓緩慢的人工治理或中心化參與者控制暫停合約的能力,可以使用ML模型來檢測可能的惡意行為并暫停合約。
分散的、無信任的Kaggle實現。可以創建一個協議或市場,允許MC或其他感興趣的方驗證模型的準確性,而無需MP披露模型權重。這對于銷售模型、圍繞模型準確性進行競賽等方面非常有用。
生成式AI的去中心化提示市場。生成式AI的提示創作已經發展成為一門復雜的工藝,最佳輸出生成提示通常具有多個修改器。外部方可能愿意從創作者那里購買這些復雜的提示。zkML在這里可以有兩種用法:1)驗證提示的輸出,以向潛在買家確保提示確實創建所需的圖像;
2)允許提示所有者在購買后保持對提示的所有權,同時對買家保持模糊,但仍為其生成經過驗證的圖像。
用保護隱私的生物識別認證替代私鑰。私鑰管理仍然是web3用戶體驗中最大的障礙之一。通過面部識別或其他獨特因素抽象私鑰是zkML的一種可能解決方案。
公平的空投和貢獻者獎勵。可以使用ML模型創建用戶的詳細人物畫像,根據多個因素確定空投分配或貢獻獎勵。當與身份解決方案結合使用時,這可能特別有用。在這種情況下,一種可能性是讓用戶運行一個開源模型,評估他們在應用程序中的參與情況以及更高層次的參與,比如治理論壇的帖子,以推理他們的分配。然后提供這個證明給合約,以獲得相應的代幣分配。
用于web3社交媒體的過濾。web3社交應用的去中心化性質將導致垃圾信息和惡意內容的增加。理想情況下,社交媒體平臺可以使用一個社區共識的開源ML模型,并在選擇過濾帖子時發布模型推理的證明。案例:關于Twitter算法的zkML分析。
廣告/推薦。作為一個社交媒體用戶,我可能愿意看到個性化的廣告,但希望將我的偏好和興趣對廣告商保密。我可以選擇在本地運行一個關于我的興趣的模型,將其輸入到媒體應用程序中為我提供內容。在這種情況下,廣告商可能愿意為最終用戶支付費用,以實現這一點,然而,這些模型可能遠不如目前生產中的定向廣告模型復雜。
智能合約平臺Matic Network推出LINK喂價工具:智能合約平臺Matic Network 19日宣布,將全面推出五種LINK喂價工具(Price Feeds):Matic /USD、USDC/USD、ETH/USD、USDT/USD和DAI/USD。雖然在以太坊之外有很多Chainlink集成,但其中大多數仍在開發中或間接使用以太坊feed。(Cointelegraph)[2020/11/19 21:24:19]
游戲內經濟再平衡。可以使用ML模型動態調整代幣發行、供應、銷毀、投票門檻等。一個可能的模型是一個激勵合約,如果達到一定的再平衡門檻并驗證了推理的證明,就會重新平衡游戲內經濟。
新類型的鏈上游戲。可以創建合作的人類對抗AI游戲和其他創新的鏈上游戲,其中無信任的AI模型充當一個不可玩的角色。NPC采取的每個動作都會與一個任何人都可以驗證的證明一起發布到鏈上,以確定正在運行正確的模型。在Modulus Labs的Leela vs. the World中,驗證者希望確保所述的1900 ELO AI選擇棋步,而不是Magnus Carlson。另一個例子是AI Arena,一個類似于Super Smash Brothers的AI格斗游戲。在高風險的競爭環境中,玩家希望確保他們訓練的模型沒有干擾或作弊。
zkML生態系統可以廣泛分為四個主要類別:
模型到證明編譯器:將現有格式(例如Pytorch、ONNX等)的模型編譯成可驗證的計算電路的基礎設施。
廣義證明系統:構建用于驗證任意計算軌跡的證明系統。
zkML特定的證明系統:專門構建用于驗證ML模型計算軌跡的證明系統。
應用程序:致力于獨特zkML用例的項目。
在zkML生態系統中,大部分關注都集中在創建模型到證明編譯器上。通常,這些編譯器將使用Pytorch、Tensorflow等高級ML模型轉換為zk電路。
EZKL是一個庫和命令行工具,用于在zk-SNARK中進行深度學習模型的推理。使用EZKL,您可以在Pytorch或TensorFlow中定義一個計算圖,并將其導出為帶有JSON文件中一些示例輸入的ONNX文件,然后將EZKL指向這些文件以生成zkSNARK電路。通過最新一輪的性能改進,EZKL現在可以在約6秒和1.1GB的RAM內證明一個MNIST大小的模型。迄今為止,EZKL已經得到了一些顯著的早期采用,被用作各種黑客馬拉松項目的基礎設施。
動態 | 以太坊智能合約編程語言新版本Solidity0.5.11已發布:據github數據顯示,針對以太坊智能合約的編程語言新版本Solidity0.5.11已發布。據悉該版本更新了諸多功能,并能幫助開發者修復錯誤編碼。[2019/8/16]
Cathie So的circomlib-ml庫包含了用于Circom的各種ML電路模板。電路包括一些最常見的ML函數。由Cathie開發的Keras2circom是一個Python工具,使用底層的circomlib-ml庫將Keras模型轉換為Circom電路。
LinearA開發了兩個用于zkML的框架:Tachikoma和Uchikoma。Tachikoma用于將神經網絡轉換為僅使用整數的形式并生成計算軌跡。Uchikoma是一個工具,將TVM的中間表示轉換為不支持浮點運算的編程語言。LinearA計劃支持使用域算術的Circom和使用有符號和無符號整數算術的Solidity。
Daniel Kang的zkml是一個基于他在《Scaling up Trustless DNN Inference with Zero-Knowledge Proofs》論文中的工作構建的ML模型執行證明的框架。在撰寫本文時,它能夠在約5GB的內存和約16秒的運行時間內證明一個MNIST電路。
在更廣義的模型到證明編譯器方面,有Nil Foundation和Risc Zero。Nil Foundation的zkLLVM是一個基于LLVM的電路編譯器,能夠驗證用流行編程語言(如C++、Rust和JavaScript/TypeScript等)編寫的計算模型。與這里提到的其他模型到證明編譯器相比,它是通用的基礎設施,但仍適用于復雜的計算,如zkML。當與他們的證明市場結合使用時,這可能尤為強大。
Risc Zero構建了一個通用的zkVM,針對開源的RISC-V指令集,因此支持現有成熟的語言,如C++和Rust,以及LLVM工具鏈。這允許在主機和客戶zkVM代碼之間實現無縫集成,類似于Nvidia的CUDA C++工具鏈,但是使用ZKP引擎代替GPU。與Nil類似,使用Risc Zero可以驗證ML模型的計算軌跡。
證明系統的改進是使 zkML 取得成果的主要推動力,特別是自定義門和查找表的引入。這主要是由于 ML 對非線性的依賴。簡而言之,非線性是通過激活函數(例如 ReLU、sigmoid 和 tanh)引入的,這些激活函數應用于神經網絡中線性變換的輸出。由于數學運算門的限制,這些非線性在 zk 電路中實現起來具有挑戰性。按位分解和查找表可以通過將非線性的可能結果預先計算到查找表中來幫助解決這個問題,有趣的是,這在 zk 中的計算效率更高。
動態 | Qtum資助哥倫比亞大學智能合約研發團隊40萬美元:據Cointelegraph報道,開源區塊鏈項目Qtum已向哥倫比亞大學計算機科學系助理教授Ronghui Gu及兩名博士和博士后提供40萬美元的資助,以資助開發類似以太坊(ETH)智能合約的新編程語言。據報道,研發將專注于一種名為“DeepSEA”的新語言的設計和實施,以及其與以太坊式智能合約的整合。[2018/12/20]
出于這個原因,Plonkish 證明系統往往是 zkML 最受歡迎的后端。Halo2 和 Plonky2 及其表式算術方案可以通過查找參數很好地處理神經網絡非線性。此外,前者擁有充滿活力的開發人員工具生態系統和靈活性,使其成為包括 EZKL 在內的許多項目的實際后端。
其他證明系統也有其優勢。基于R1CS的證明系統包括Groth16,因其小型證明尺寸而聞名,以及Gemini,因其處理極大電路和線性時間驗證器而聞名。基于STARK的系統,例如Winterfell證明器/驗證器庫,尤其在通過Giza的工具將Cairo程序的追蹤作為輸入,并使用Winterfell生成STARK證明來驗證輸出的正確性時,非常有用。
在設計能夠處理先進的機器學習模型的復雜、電路不友好的操作的高效證明系統方面已經取得了一些進展。基于GKR證明系統的zkCNN和基于組合技術的Zator等系統往往比通用證明系統更具性能,這一點在Modulus Labs的基準測試報告中有所體現。
zkCNN是一種使用零知識證明來證明卷積神經網絡正確性的方法。它使用sumcheck協議來證明快速傅里葉變換和卷積,具有線性的證明時間,比漸近計算結果更快。已經引入了幾個改進和泛化的交互證明,包括驗證卷積層、ReLU激活函數和最大池化。根據Modulus Labs的基準測試報告,zkCNN特別有趣的地方在于它在證明生成速度和RAM消耗方面優于其他通用證明系統。
Zator是一個旨在探索使用遞歸SNARK來驗證深度神經網絡的項目。驗證更深層次模型的當前限制是將整個計算軌跡適應單個電路中。Zator提出使用遞歸SNARK逐層進行驗證,可以逐步驗證N步重復計算。他們使用Nova將N個計算實例減少為一個可以通過單個步驟進行驗證的實例。采用這種方法,Zator能夠對具有512層的網絡進行SNARK,這與大多數當前的生產AI模型一樣深。Zator的證明生成和驗證時間仍然對于主流應用案例來說過長,但他們的組合技術仍然是非常有趣的。
鑒于zkML處于早期階段,其關注點主要集中在上述基礎設施上。然而,目前也有一些項目致力于應用開發。
Modulus Labs是zkML領域中最多樣化的項目之一,他們既開展示例應用,也從事相關研究。在應用方面,Modulus Labs通過RockyBot(一個鏈上交易機器人)和Leela vs. the World(一個人類與經過驗證的鏈上Leela國際象棋引擎對戰的棋盤游戲)展示了zkML的用例。該團隊還進行了研究,編寫了《智能的代價》,對不同模型規模下的各種證明系統的速度和效率進行了基準測試。
Worldcoin正在嘗試應用zkML來創建一個保護隱私的人類身份證明協議。Worldcoin使用定制硬件處理高分辨率虹膜掃描,并將其插入到Semaphore實現中。然后可以使用該系統執行諸如成員資格證明和投票等有用操作。他們目前使用受信任的運行時環境和安全的安全區域來驗證相機簽名的虹膜掃描,但他們最終的目標是使用零知識證明來驗證神經網絡的正確推理,以提供加密級別的安全保證。
Giza是一種協議,采用完全無信任的方法在鏈上部署AI模型。它使用包括ONNX格式表示機器學習模型、Giza Transpiler用于將這些模型轉換為Cairo程序格式、ONNX Cairo Runtime用于以可驗證和確定性的方式執行模型,以及Giza Model智能合約用于在鏈上部署和執行模型的技術堆棧。盡管Giza也可以歸類為模型到證明編譯器的類別,但他們作為一個ML模型市場的定位是目前最有趣的應用之一。
Gensyn是一個分布式硬件供應網絡,用于訓練ML模型。具體而言,他們正在開發一個基于梯度下降的概率審計系統,并使用模型檢查點來使分散式GPU網絡能夠為全尺度模型提供訓練服務。盡管他們在這里的zkML應用非常特定于他們的用例——他們希望確保當一個節點下載和訓練模型的一部分時,他們對模型更新的誠實性——但它展示了將zk和ML相結合的強大力量。
ZKaptcha 專注于 web3 中的 bot 問題,為智能合約提供驗證碼服務。他們目前的實施讓最終用戶通過完成驗證碼來生成人類工作的證明,驗證碼由他們的鏈上驗證程序驗證,并通過幾行代碼由智能合約訪問。今天,他們主要只依賴于 zk,但他們打算在未來實現 zkML,類似于現有的 web2 驗證碼服務,分析鼠標移動等行為以確定用戶是否是人類。
鑒于 zkML 市場還很早,許多應用程序已經在黑客馬拉松級別進行了試驗。項目包括 AI Coliseum,一個使用 ZK 證明來驗證機器學習輸出的鏈上 AI 競賽,Hunter z Hunter,一個使用 EZKL 庫來驗證帶有 halo2 電路的圖像分類模型輸出的照片尋寶游戲,以及 zk Section 9,它 將 AI 圖像生成模型轉換為用于鑄造和驗證 AI 藝術的電路。
盡管在提高和優化方面取得了飛速的進展,但zkML領域仍然面臨一些核心挑戰。這些挑戰涉及技術和實踐等方面,包括:
以最小的精度損失進行量化
電路規模,特別是當網絡由多個層組成時
矩陣乘法的高效證明
對抗攻擊
量化是將浮點數表示為定點數的過程,大多數機器學習模型使用浮點數表示模型參數和激活函數,在處理zk電路的域算術時,需要使用定點數。量化對機器學習模型的準確性的影響取決于所使用的精度級別。一般來說,使用較低的精度(即較少的比特數)可能會導致準確性降低,因為這可能引入舍入和近似誤差。然而,有幾種技術可用于最小化量化對準確性的影響,例如在量化后對模型進行微調,以及使用量化感知訓練等技術。此外,zkSummit 9上的一項黑客馬拉松項目Zero Gravity顯示出,針對邊緣設備開發的替代神經網絡架構(例如無權重神經網絡)可以用于避免電路中的量化問題。
除了量化之外,硬件是另一個關鍵挑戰。一旦通過電路正確地表示了機器學習模型,由于zk的簡潔性,驗證其推理的證明將變得廉價且快速。這里的挑戰不在于驗證者,而在于證明者,因為隨著模型規模的增長,RAM消耗和證明生成時間會迅速增加。某些證明系統(例如使用sumcheck協議和分層算術電路的基于GKR的系統)或組合技術(例如將Plonky2與Groth16相結合,Plonky2在證明時間方面效率高但對于大型模型的高效證明大小較差,而Groth16在復雜模型的復雜度上不會導致證明大小增長)更適合處理這些問題,但在zkML項目中管理權衡是一個核心挑戰。
在對抗攻擊方面,仍然有待努力。首先,如果一個無信任的協議或DAO選擇實施一個模型,在訓練階段仍然存在對抗攻擊的風險(例如訓練模型以在看到特定輸入時表現出特定行為,這可能被用來操縱后續的推理)。聯邦學習技術和訓練階段的zkML可能是最小化這種攻擊面的一種方式。
另一個核心挑戰是當模型保護隱私時存在模型盜竊攻擊的風險。雖然可以混淆模型的權重,但在給定足夠的輸入輸出對的情況下,從理論上講,仍然有可能反向推導出權重。這主要是對小規模模型的風險,但仍然存在風險。
盡管在將這些模型優化為在zk的限制條件下運行時存在一些挑戰,但改進工作正在以指數速度進行,一些人預計在進一步的硬件加速下,我們很快就能與更廣泛的機器學習領域達到同等水平。為了強調這些改進的速度,zkML從0xPARC在2021年展示了如何在可驗證電路中執行小規模MNIST圖像分類模型的演示,到Daniel Kang在不到一年后為ImageNet規模的模型做同樣的工作的論文。在2022年4月,這個ImageNet規模的模型的準確性從79%提高到92%,并且像GPT-2這樣的大型模型在近期內有望成為可能,盡管目前的證明時間較長。
我們認為zkML是一個豐富而不斷發展的生態系統,旨在擴展區塊鏈和智能合約的能力,使其更加靈活、適應性強和智能化。
盡管zkML仍處于早期開發階段,但它已經開始顯示出有希望的結果。隨著技術的發展和成熟,我們可以期待在鏈上看到更多創新的zkML用例。
DAOrayaki
個人專欄
閱讀更多
金色早8點
Odaily星球日報
金色財經
Block unicorn
曼昆區塊鏈法律
作者:Artist、Hins、Freya、Chance、Chad;導師指導:Jademont、Elaine、Bill@Waterdrip Capital本份研報旨在讓讀者深入了解Web3分布式存.
1900/1/1 0:00:00作者:Dan Elitzer,NASCENT;編譯:Tiny 熊,登鏈翻譯計劃為 DeFi 帶來依賴的多樣性, 而不是依靠單一的預言機.
1900/1/1 0:00:00作者:Ignas,DeFi Research;編譯:白澤研究院“在對加密貨幣進行了深入的研究之后,任何有理解能力的人都可以得出一個結論——它需要被徹底摧毀,因為這是一個巨大的騙局.
1900/1/1 0:00:00金色周刊是金色財經推出的一檔每周區塊鏈行業總結欄目,內容涵蓋一周重點新聞、礦業信息、項目動態、技術進展等行業動態。本文是其中的新聞周刊,帶您一覽本周區塊鏈行業大事.
1900/1/1 0:00:00DeFi數據 1、DeFi代幣總市值:430.36億美元 DeFi總市值及前十代幣 數據來源:coingecko2、過去24小時去中心化交易所的交易量33.
1900/1/1 0:00:00作者:比推BitpushNews Asher Zhang伴隨美國SEC對幣安和Coinbase提起訴訟,加密市場迎來巨震,在恐慌情緒下,投資者應該如何避險?在這場危機背后.
1900/1/1 0:00:00