a16z:如何分阶段实现安全高效的 zkVM?
撰文:a16z crypto
编译:Odaily 星球日报 Golem
zkVM(零知识虚拟机)承诺「使 SNARK 大众化」,允许任何人(即使是没有专业 SNARK 专业知识的人)证明他们已经正确运行了给定输入(或见证)上的任何程序。它们的核心优势在于开发人员体验,但目前它们在安全性和性能方面都面临巨大挑战。为了让 zkVM 的愿景兑现承诺,设计人员必须克服这些挑战。在这篇文章中,我列出了 zkVM 开发的可能阶段,完成这些阶段将需要几年时间。
挑战在安全方面,zkVM 是高度复杂的软件项目,仍然充满了漏洞。在性能方面,证明程序正确执行的速度可能比本地运行慢数十万倍,这使得大多数应用程序目前无法在现实世界中部署。
尽管存在这些现实挑战,但区块链行业的大部分公司都将 zkVM 描绘为可以立即得到部署。事实上,一些项目已经支付了大量计算成本来生成链上活动的证明。但因为 zkVM 仍不完善,这仅仅是假装系统受到 SNARK 保护的一种昂贵的方式,而实际上它要么通过许可来保护,要么更糟的是,容易受到攻击。
我们距离实现安全且高性能 zkVM 还有数年的时间。这篇文章提出了一系列分阶段的具体目标来跟踪 zkVM 的进展——这些目标可以消除炒作并帮助社区专注于真正的进步。
安全阶段基于 SNARK 的 zkVM 通常包括两个主要组件:
-
多项式交互式 Oracle 证明 (PIOP):用于证明关于多项式(或从中得出的约束)的陈述的交互式证明框架。
-
多项式承诺方案 (PCS):确保证明者不能在不被发现的情况下对多项式评估撒谎。
zkVM 本质上将有效的执行跟踪编码为约束系统——广义上意味着它们强制虚拟机正确使用寄存器和内存——然后应用 SNARK 来证明这些约束得到满足。
确保像 zkVM 这样复杂的系统没有错误的唯一途径是形式化验证。以下是安全阶段的细分。第 1 阶段侧重于正确的协议,而第 2 阶段和第 3 阶段侧重于正确的实现。
安全阶段 1 :正确的协议-
PIOP 可靠性的正式验证证明;
-
PCS 在某些加密假设或理想模型下具有约束力的形式验证证明;
-
如果使用 Fiat-Shamir,则通过结合 PIOP 和 PCS 获得的简洁论证在随机预言模型中是安全的正式验证证明(根据需要使用其他加密假设进行增强);
-
PIOP 所应用的约束系统等同于 VM 的语义的形式验证证明;
-
将以上所有这些部分全面「粘合」成一个单一的、经过形式化验证的安全 SNARK 证明,用于运行 VM 字节码指定的任何程序。如果协议打算实现零知识,则还必须对此属性进行形式化验证,以确保不会泄露有关见证人的敏感信息。
本文地址: - 蜂鸟财经
免责声明:本文仅代表作者本人观点,与蜂鸟财经立场无关。本站所有内容不构成投资建议,币市有风险、投资请慎重。