a16z:如何通过零知识证明验证链上机器学习算法?

我使用Chat-GPT构建的国际象棋AI在目前看来相对无害:输出相对一致的程序,不使用侵犯有价值知识产权或侵犯隐私的数据。但当我们想确保我们被告知的在API后面运行的模型确实是运行过的模型时会怎么样?或者,如果我想将认证过的数据输入到链上的模型中,并确保数据确实来自合法方?如果我想确保提交数据的“人”实际上是人而不是试图对我的网络发起拜占庭攻击的机器人呢?零知识证明及其简洁地表示和验证任意程序的能力是一种解决方法。

在实现SNARKs(简洁非交互式知识论证)的证明系统方面的突破已经成为将许多机器学习模型上链的关键驱动力。一些团队正在现有的架构(包括Plonk、Plonky2、Air等)中制作定制电路。在定制电路方面,Halo 2已成为Daniel Kang等人的工作和Jason Morton的EZKL项目中广泛使用的后端。Halo 2的证明者时间近似线性,证明大小通常只有几千字节,验证者时间恒定。或许更重要的是,Halo 2拥有强大的开发者工具,使其成为开发者喜欢使用的SNARK后端。其他团队,如Risc Zero,正在寻求通用VM策略。还有些团队正使用基于求和检查协议的Justin Thaler的超高效证明系统创建定制框架。

对于机器学习模型的启示是,一旦设计了一个准确表示模型的证明系统,实际验证输出的成本将非常便宜。开发者需要考虑的最重要的是证明者时间和内存:以一种可以相对快速证明的方式表示模型,并且证明大小理想地在几千字节左右。要证明机器学习模型在零知识情况下的正确执行,你需要将模型架构(层、节点和激活函数)、参数、约束和矩阵乘法运算编码并表示为电路。这涉及将这些属性分解为可以在有限域上执行的算术运算。

在这个阶段,这确实是一场迎头赶上的游戏。随着零知识证明变得更加优化,机器学习模型变得越来越复杂。已经有一些优化的有前景的领域:证明递归可以通过允许证明用作下一个证明的输入来减小整体证明大小,从而实现证明压缩。还有一些新兴的框架,比如Linear A的Apache Tensor虚拟机(TVM)分支,该框架推出了一种转换器,可以将浮点数转换为零知识友好的整数表示。最后,我们在a16z crypto对未来的工作感到乐观,它将使在SNARKs中表示32位整数变得更加合理。

区块链网络的经济现实几乎正好相反:开发者被鼓励优化他们的代码,使其在链上运行既可行又便宜。这种不对称具有巨大的优势:它创造了一个需要提高证明系统效率的环境。我们应该寻求在机器学习中要求与区块链提供的相同好处,即可验证的所有权和共享的真实观念。

致谢:Justin Thaler, Dan Boneh, Guy Wuollet, Sam Ragsdale, Ali Yahya, Chris Dixon, Eddy Lazzarin, Tim Roughgarden, Robert Hackett, Tim Sullivan, Jason Morton, Peiyuan Liao, Tarun Chitra, Brian Retford, Daniel Kang, Yi Sun, Anna Rose, Modulus Labs, DC Builder。

本文内容部分来自网络,仅供参考。如有侵权,请联系删除。

相关推荐
关于基金的常识(关于基金的常识和知识)
2023-07-22

关于基金的常识(关于基金的常识和知识)

今天更到第三篇了,记得好好学习啦,一共100个知识点,学完就基本能把基金的一些基础知识弄懂了;好了,下面我们继续学习。19、什么是指数增强型基金?指数增强型基金...