1. 引言
零知识证明技术的2大基石为:
- 1)succinctness:相比于直接运行整个计算本身,验证该计算完整性证明要简单很多。
- 2)zero-knowledge:可在不泄露计算隐私的情况下,证明计算的完整性。
生成零知识证明是计算密集的,相比于直接计算其本身要昂贵很多倍。因此,存在某些无法生成零知识证明的计算,因为即使在最好的硬件上也无法实用地创建证明。但是,随着密码学领域的发展,近些年的硬件和分布式系统使得为某些更密集计算的创建零知识证明成为可能。使得可创建一些协议来为密集计算生成证明,从而扩展出新的应用领域。
2. zk用例
零知识密码学是当前Web3空间最流行的技术之一,开发者可利用零知识密码学来构建扩容应用和(或)隐私应用。
具体的zk用例有:
-
1)使用zkRollups来扩容以太坊:类似公链这样的分布式系统具有有限的算力,因为所有参与节点(计算机)需自己运行并验证每个区块内的计算。使用zk proof可在链下执行这些交易,计算出一个zk proof,并在链上验证该proof,从而在不牺牲去中心化或安全性的前提下,实现扩容。具体的zkRollup扩容方案有:
- Starknet
- Scroll
- Polygon Zero, Polygon Miden,Polygon zkEVM
- zkSync
-
2)构建隐私保护应用:zk proof的零知识属性,使得可隐藏待证明计算的某些部分,这有助于创建保护用户隐私和个人数据的引用。具体的隐私保护应用有:
- Semaphore:
- MACI:
- Penumbra:
- Aztec Network:为以太坊的隐私zkRollup扩容方案,其中的用户余额以及交易对任意外部观察者是完全隐藏的。
-
3)身份原语和数据治理:
- WorldID:Worldcoin正在构建WorldID,为隐私保护proof-of-personhood协议。支持任何具有WorldID的用户,在不泄露其具体身份的情况下,以密码学方式证明其是唯一地人类且之前未做某个行为(类似社交网络的注册)。
- Sismo:
- Clique:
- Axiom:
-
4)Layer 1协议:由于zk proof可帮助转移计算,并是计算隐私,从而支持创建隐私和(或)简洁(size小且易于验证)的layer 1,如:
- Zcash
- Mina
3. zkML的动机和当前的努力
机器学习是人工智能的一个子领域,涉及算法的开发和应用,使计算机能够自主学习和适应数据,并通过迭代过程优化其性能。GPT-4和Bard等大型语言模型是最先进的自然语言处理系统,它们利用大量的训练数据生成类人文本,而DALL-E 2、Midtravel和Stable Diffusion等文本到图像模型则以惊人的保真度将文本描述转换为视觉表示。机器学习技术的快速发展,通过利用数据驱动的见解和预测来改善决策和优化结果,在应对包括医疗保健、金融和交通在内的各个领域的复杂挑战方面具有重要前景。随着这些模型变得越来越复杂,它们将彻底改变许多行业,改变我们的生活、工作方式以及与技术的互动方式。
在一个人工智能生成的内容越来越类似于人类创建的内容的世界里,零知识密码学的潜在应用可以帮助我们确定特定的内容是通过将特定的模型应用于给定的输入而生成的。这可以提供一种方法来验证来自大型语言模型(如GPT4)、文本到图像模型(如DALL-E2)或任何其他模型的输出,如果为它们创建了零知识电路表示的话。这些证明的零知识特性允许我们在需要时也隐藏部分输入或模型。一个很好的例子是在一些敏感数据上应用机器学习模型,用户可以在不向任何第三方(例如医疗行业)透露其输入的情况下知道对其数据的模型推理结果。
注意:当我们谈论zkML时,我们谈论的是创建ML模型推理步骤的零知识证明,而不是ML模型训练(这本身就已经是计算密集型的)。
零知识系统与高性能硬件相结合的当前技术水平仍差几个数量级,无法证明像当前可用的大型语言模型(“LLM”)这样大的东西,但在创建较小模型的证明方面已经取得了一些进展。
开源社区现有的zkML资源见:
- https://github.com/zkml-community/awesome-zkml
Modulus Labs团队最新名为“The Cost of Intelligence”的论文中,基于大量不同size的模型,对现有ZK证明系统进行了benchmark。使用类似plonky2证明系统,在强大的AWS机器上,当前可为 有约1800万个参数的模型在50秒左右生成证明。下图展示了随着神经网络中参数的增加,不同证明系统的性能扩展:
另一个致力于改进zkML系统最新技术的举措是Zkonduit的ezkl库,ezkl支持为使用ONNX导出的ML模型创建zk证明。这使得任何ML工程师都能够创建其模型的推理步骤的zk证明,并向任何verifier证明输出。
有几个团队致力于改进zk技术,创建优化的硬件来加快zk证明的计算,特别是对于资源密集型任务,如prover和verifier算法。随着zk技术的成熟,由于专用硬件、证明系统架构(证明大小、验证时间、证明生成时间等)和更高性能的zk协议实现的改进,将有可能在较小的时间内在功能较弱的机器上证明更大的模型。期望这些进步将允许出现新的zkML应用程序和用例。
4. zkML用例
为了决定zkML是否可以用于给定的应用程序,我们可以检查zk密码学的属性如何帮助启用某些用例。可以用维恩图来说明:
- Heuristic optimization
- Fully Homomorphic Encryption
- ZK proofs vs. Validity proofs:
- Validity ML
- ZKML
- Computational integrity (validity ML)
- ML as a Service (MLaaS) transparency
- ZK anomaly/fraud detection
- Privacy (ZKML)
参考资料
[1] Worldcoin 2023年2月23日博客 An introduction to zero-knowledge machine learning (ZKML)