区块链视力”。任何已签名的端点(例如,Cloudflare的SXG服务,第三方公证人)都会产生可以验证的数字签名,这可能对于证明来自可信任方的出处和真实性非常有用。 4.分布式推理或训练:您希望以分布式的方式执行机器学习推理或训练,并允许人们向公共模型提交数据。为此,您可以将已有的模型部署到链上,或者设计一个全新的网络,并使用零知识证明来压缩模型。Jason Morton的EZKL库正在创建一种用于摄取ONXX和JSON文件并将它们转换为ZK-SNARK电路的方法。最近在ETH Denver的一个演示表明,这种技术可用于创建基于图像识别的链上寻宝游戏,游戏创作者可以上传照片,生成图像的证明,玩家可以上传图像;验证器检查用户上传的图像是否与创作者生成的证明足够匹配。EZKL现在可以验证多达1亿个参数的模型,这意味着它可以用于在链上验证ImageNet大小的模型(这些模型具有6000万个参数)。 其他团队,如Modulus Labs,正在为链上推理对不同证明系统进行基准测试。Modulus的基准测试涵盖了多达1800万个参数。在训练方面,Gensyn正在构建一个分布式计算系统,用户可以输入公共数据,并通过分布式节点网络进行模型训练,同时验证训练的正确性。 5.人证明:您希望验证某人是一个独特的个体,而不损害其隐私。为此,您将创建一种验证方法,例如生物识别扫描或以加密方式提交政府ID的方法。然后,您将使用零知识证明来检查某人是否已经过验证,而不会泄露关于该人身份的任何信息,无论该身份是完全可识别的,还是像公钥那样的伪名。 Worldcoin通过他们的人证明协议来实现这一点,该协议通过为用户生成独特的虹膜代码来确保抗攻击性。关键的是,为WorldID创建的私钥(以及为Worldcoin用户创建的加密钱包的其他私钥)与项目的眼球扫描器本地生成的虹膜代码完全分离。这种分离完全将生物识别标识符与可能归因于某人的任何形式的用户密钥分离。Worldcoin还允许应用程序嵌入一个SDK,使用户可以使用WorldID登录,并通过允许应用程序检查人是否拥有WorldID来利用零知识证明来保护隐私,但不允许跟踪个别用户(更多细节,请参阅此博客文章)。 这个例子是用零知识证明的隐私保护特性来对抗较弱且恶意的人工智能的形式,因此它与上述其他示例(例如,证明你是一个真实的人类而不是机器人,同时不泄露任何关于自己的信息)有很大不同。 模型架构和挑战 在实现SNARKs(简洁非交互式知识论证)的证明系统方面的突破已经成为将许多机器学习模型上链的关键驱动力。一些团队正在现有的架构(包括Plonk、Plonky2、Air等)中制作定制电路。在定制电路方面,Halo 2已成为Daniel Kang等人的工作和Jason Morton的EZKL项目中广泛使用的后端。Halo 2的证明者时间近似线性,证明大小通常只有几千字节,验证者时间恒定。或许更重要的是,Halo 2拥有强大的开发者工具,使其成为开发者喜欢使用的SNARK后端。其他团队,如Risc Zero,正在寻求通用VM策略。还有些团队正使用基于求和检查协议的Justin Thaler的超高效证明系统创建定制框架。 证明生成和验证器时间绝对取决于生成和检查证明的硬件以及生成证明的电路大小。但这里需要注意的关键点是,无论代表的程序是什么,证明的大小总是相对较小,因此验证证明的验证者的负担是受限的。然而,在这里有一些细微之处:对于像Plonky2这样使用基于FRI的承诺方案的证明系统,证明大小可能会增加。(除非最后使用像Plonk或Groth16这样基于配对的SNARK包装,这些证明不会随着所证明陈述的复杂性而增长。) 对于机器学习模型的启示是,一旦设计了一个准确表示模型的证明系统,实际验证输出的成本将非常便宜。开发者需要考虑的最重要的是证明者时间和内存:以一种可以相对快速证明的方式表示模型,并且证明大小理想地在几千字节左右。要证明机器学习模型在零知识情况下的正确执行,你需要将模型架构(层、节点和激活函数)、参数、约束和矩阵乘法运算编码并表示为电路。这涉及将这些属性分解为可以在有限域上执行的算术运算。 这个领域还处于起步阶段。在将模型转换为电路的过程中,准确性和保真度可能会受到影响。当模型表示为算术电路时,前面提到的模型参数、约束和矩阵乘法运算可能需要近似和简化。当将算术运算编码为证明的有限域中的元素时,可能会丢失一些精度(或者在不进行这些优化的情况下生成证明的成本在当前的零知识框架下将不堪重负)。此外,机器学习模型的参数和激活通常以32位进行编码以提高精度,但是今天的零知识证明无法在必要的算术电路格式中表示32位浮点运算,而不产生巨大的开销。因此,开发者可能会选择使用量化的机器学习模型,其中32位整数已经转换为8位精度。这些类型的模型有利于表示为零知识证明,但是被验证的模型可能是较高质量初始模型的粗略近似。 在这个阶段,这确实是一场迎头赶上的游戏。随着零知识证明变得更加优化,机器学习模型变得越来越复杂。已经有一些优化的有前景的领域:证明递归可以通过允许证明用作下一个证明的输入来减小整体证明大小,从而实现证明压缩。还有一些新兴的框架,比如Linear A的Apache Tensor虚拟机(TVM)分支,该框架推出了一种转换器,可以将浮点数转换为零知识友好的整数表示。最后,我们在a16z crypto对未来的工作感到乐观,它将使在SNARKs中表示32位整数变得更加合理。 “规模”的两种定义 零知识证明通过压缩实现规模化:SNARKs允许你将一个极其复杂的系统(如虚拟机或机器学习模型)数学表示,使得验证它的成本低于运行它的成本。另一方面,机器学习是通过扩展实现规模化的:如今的模型随着更多数据、参数以及参与训练和推理过程的GPU/TPU而变得更好。中心化公司可以以几乎无限制的规模运行服务器:收取API调用的月费,并支付运营成本。 区块链网络的经济现实几乎正好相反:开发者被鼓励优化他们的代码,使其在链上运行既可行又便宜。这种不对称具有巨大的优势:它创造了一个需要提高证明系统效率的环境。我们应该寻求在机器学习中要求与区块链提供的相同好处,即可验证的所有权和共享的真实观念。 尽管区块链激励了优化zk-SNARKs,但计算相关的每个领域都将受益。 致谢: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。 来源:金色财经lg...