ZKML——EZKL团队分享

1. 引言

“ZKP之于数字签名” 类似于 “以太坊之于比特币”:

  • 所谓数字签名,是指:“我知道某秘密secrets,使得 F(secrets, public inputs)=pubic outputs”,其中F为fixed function(固定函数)。这是花费coin的原理。
  • 所谓ZKP,是指:“我知道某秘密secrets,使得 F(secrets, public inputs)=pubic outputs”,其中F为任意程序

当由关注链上计算转为关注链下计算时,置入到ZKP中最有趣的程序是机器学习模型,使得AI可在链上高效运行。

2. 为何需要ZKML?以及 何为ZKML?

2.1 为何需要ZKML?

AI在持续发展,但其不运行在链上。

链下ML/AI的特点为:

  • 中心化的
  • 需要信任
  • 需熟悉Python工作流
  • 有大量现有的模型库
  • 有大小公司助力

链上合约的特点为:

  • 去中心化的
  • 无需信任的
  • 可组合式的
  • 扩容性差的
  • 对AI/ML来说太慢且太贵

ZK的特点为:

  • 去中心化的
  • 无需信任的
  • 可组合式的
  • 可扩容的:单个机器证明
  • 有复杂的电路编写语言
  • 难以理解ZKP算法及其背后的数学和安全性。

而ZK + ML 结合:
在这里插入图片描述

2.2 何为ZKML?

所谓ZKML,是指:

  • 可从区块链视角来感知物理世界
  • 使得拥有数字资产的为人类,而不是某域元素
  • 让智能合约可自行判断

在这里插入图片描述

3. 何为EZKL?以及 EZKL通用流程

3.1 何为EZKL?

https://github.com/zkonduit/ezkl(Rust)为 将某ONNX模型(为Pytorch或Tensorflow的输出) 转换为 某零知识证明 的工具:

  • 可 以命令行(或二进制、合约、WASM)方式证明+验证。
  • 逐日增加layers,足以应对小型生产模型。
  • 逐月以2-8倍的速度改进性能。
  • 专注于feature完整性,然后是性能优化。
  • ZKP后端为Halo2。

在这里插入图片描述

在这里插入图片描述

3.2 EZKL通用流程

EZML通用流程为:
在这里插入图片描述
ZKML通用流程分为三大部分:

  • 1)输入授权内容
  • 2)运行机器学习模型(如文本模型图像分类)
  • 3)进行链上验证

3.2.1 授权内容

经证实的且可在zk-snark验证的内容来源有:

所有采用标准签名方案(ECDSA、RSA、Ed25519)的内容都可在zk-snark中 和(或) 链上验证。
需要一个类似https的推送来签署数据。

当前的内容授权计划成员(Content Authority Initiative Members)有:
在这里插入图片描述

3.2.2 运行机器学习模型

借助ONNX编译,Ontogeny recapitulates phylogeny路线图为:

  • 1)(从MNIST到Stable Diffusion)的AI历史中下载下一模型。
  • 2)解决任意模型大小或量化问题,实现任意新节点或gadgets。
  • 3)重复以上流程。

并辅以:

  • Optimization:优化性能。
  • Aggregation:将多个proof合并为一个proof,只需检查合并后的那个proof。会受限于内存,从而限制模型大小。
  • Recursion:在新的snark中验证前一snark proof,可为每个layer做不同的proof。会受限于内存,从而限制模型大小。
  • Fusion:对以python表示的机器学习模型 和 ZKP系统 进行融合。

3.2.3 链上验证

以太坊链上受限于预编译合约及gas开销,很多proof策略最终都基于BN128曲线。
在这里插入图片描述

4. ZKML为链的table stakes

ZKML可:

  • 1)向广大受众兑现区块链的promise将需要更强大但仍然是去中心化的身份解决方案。
    • 全身份解决方案已有几年的时间,但增长将很快。如基于abstraction account的ZKP。
  • 2)ZKML Oracles将更简单、快速、扩容性更强:
    • 可将任意链下数据 推到 链上
    • 打开消防水管获取链上数据
  • 3)ZKML模型为“智能裁判”,可理解歧义事件。

5. ZKML示例

ZKML可用于:

  • 1)ZK KYC
  • 2)预测市场
  • 3)智能合约的全面检查
  • 4)AI + DAO
  • 5)ZK + MPC:基因筛选
  • 6)ZKML + 差分隐私:人口普查
  • 7)ZK Vaults
  • 8)NPC-wars

5.1 ZK KYC

ZK KYC用于:

  • 证明人与id匹配,且该id未被制裁。
  • 监管机构不会接受KYC
  • 但可阻止tornado制裁

5.2 预测市场

ZKML用于预测市场,是指:

  • 采用小模型对文本进行分了
  • 构建某智能合约,若某新闻故事预测正确则获得相应的收入(如选举结果、飓风强度、covid变种等)。
  • 任何人都可下载已签名的故事,运行模型,并提交proof。

5.3 智能合约的全面检查

ZKML用于智能合约的全面检查,是指:

  • 对智能合约 或 abstracted account 的不正常行为 添加ZKML fraud/spam check。

5.4 AI + DAO

ZKML用于DAO,是指:

  • 将现有的人类判断、投票、使用多签签署,替换为,链上AI自动化,如合约履行。

5.5 ZK + MPC:基因筛选

ZK + MPC:基因筛选,是指:

  • 病人想要预测(如发生基因突变的概率),但想要匿名检查,可选择是否以及对谁公开。
  • 筛选模型基于可控数据训练,不对外公开。
  • 模型对模型owner来说是私有的,而数据对病人来说是私有的。
  • 模型owner 和 病人 可在MPC中证明推理,仅公开输出结果,且病人获得认证预测结果。

5.6 ZKML + 差分隐私:人口普查

ZKML + 差分隐私:人口普查,是指:

  • 1)定期将秘密真实数据的承诺值对外公开(不泄露任何信息)
  • 2)对于哪些客户端可免费做原型分析,服务端可创建differentially-private noisy marginal summary:
    • 客户端在本地迭代summary,选择模型M,并发送给data owner(即服务端)。
  • 3)服务端基于真实的全表数据,以ZK模式运行模型,将结果返回给客户端,并向客户端证明:
    • 3.1)真实数据与承诺值匹配;
    • 3.2)使用了该真实数据来创建的noisy marginal summary。
    • 3.3)当基于模型M运行真实数据时,其生成的即为所返回的结果。

5.7 ZK Vaults

ZK Vaults,是指:

  • 像Arrakis(锁仓量为4.6亿美金)协议,可选择:
    • trustless vaults:由预定义的0x…作为管理者,trustless vaults支持LP以无需信任且自动化的方式管理其流动性,与Curve V2方式类似。trustless vaults可为动态的或静态的。
    • managed vaults:由专业做市商以更成熟的策略链下运行,需信任该做市商。managed vaults使得LP可享受最先进的做市策略。
  • 引入ZK来实现:自动化、无需信任的成熟链下策略。
  • 公开策略(如看涨期权vaults、简单的投资组合)可为完全无需信任的,可供任何人运行的。
  • 或,管理者可对某策略进行承诺,在不泄露策略内容的情况下,避免rug pull/style drift。
  • 在对应某DeFi协议的某Uniswap V3 position manager中正在试点。

5.8)NPC-wars

https://github.com/omurovec/npc-wars(TypeScript + Solidity + Rust)为:

  • 允许用户在链上竞争各自AI模型的App。
  • 用户可通过EZKL API上传其onnx文件,EZKL会生成verifier字节码并返回供用户部署。然后用户可创建竞赛 或者 参与已有竞赛。
  • 为避免作弊,会确保用户部署完其verifier合约之后,才可提交竞争。
  • 当所有用户都参与之后,会提交正确结果的哈希值。
  • 所有用户都提交其答案以及相应proof。
  • 一旦所有人都提交了答案,winner可claim其stake。

参考资料

[1] 2022年11月Jason Morton在DevCon 6上分享 视频Zero Knowledge Machine Learning
[2] 2023年3月Jason Morton 分享视频 How to build and deploy on-chain AI/ML with zero-knowledge machine learning with Jason Morton

zkML系列博客

猜你喜欢

转载自blog.csdn.net/mutourend/article/details/132084544