本文深入探讨了BN254椭圆曲线配对的实现,该曲线是目前以太坊上唯一具有预编译合约的曲线,文章详细介绍了曲线参数、坐标表示、域扩展塔的概念,以及Ate配对算法的各个步骤,包括米勒循环和最终指数化,同时还讨论了子群检查、线函数计算和弗罗贝尼乌斯自同态等关键技术,为理解和实现BN254曲线上的配对操作提供了全面的技术指导。
本文介绍了LambdaClass团队对ZKSync的EraVM(链下虚拟机)的重新实现工作,旨在提高其性能并探索通过BlockSTM添加并行执行的可能性。文章详细描述了开发过程,包括如何从检查字节码开始,逐步实现所有操作码,并使用Era Compiler Test Suite进行测试。此外,文章还深入分析了一个简单的ZKsync Era合约的汇编代码,解释了其执行流程和关键概念。
本文深入探讨了Pinocchio协议的原理及其在Lambdaworks库中的实现,Pinocchio是一种SNARK协议,用于验证计算的正确性,同时保护隐私。文章详细介绍了将代码转换为QAP的过程,并解释了协议的工作原理以及实现安全所需的各种检查,此外还探讨了如何通过最少的额外工作将SNARK转换为零知识SNARK,文章还提供了相应的代码片段。
本文介绍了 Circle STARKs,它通过利用具有最快有限域算术的梅森素数,展示了卓越的性能。Circle STARKs 通过移动到圆群来解决梅森素数上定义的字段的非平滑结构,并密切遵循其经典的 STARKs 类似物,虽然有一些细微之处,但幸运的是,大多数细微之处都对开发人员隐藏了,Circle STARKs 以及高效的查找可以帮助提高通用 ZKVM 的性能。
该团队在两周内用五名新员工完成了以太坊虚拟机(EVM)75%的功能,并通过最先进的编译器后端将 VM 操作码逻辑编译为本地机器代码。他们创建了 EVM-MLIR 项目,旨在提供比 revm 更快的替代方案,并计划将其集成到新的以太坊执行客户端 ethrex 中,以提高性能并增加实现的多样性。基准测试显示,在运行阶乘和斐波那契程序时,吞吐量比 revm 高 300% 到 600%。
本文介绍了零知识证明(ZKP)在Web3中的应用,以及在以太坊上验证ZKP的挑战和高成本。Aligned Layer通过构建去中心化的验证器网络,利用EigenLayer,旨在提供快速且经济高效的证明验证服务,支持多种证明系统,从而降低ZKP的使用门槛,加速其在各种应用中的普及,并与以太坊协同创新。
本文介绍了零知识证明(SNARKs/STARKs)中的证明聚合技术,用于将多个证明合并为一个,以减少验证时间和证明大小的开销。讨论了包括证明递归、曲线循环、折叠方案、SNARKPack和Continuations等多种技术,并分析了它们在Prover时间、验证时间和证明大小方面的权衡,同时提到了像Starknet、Polygon ZKEVM、zkSync等实际应用案例。
CairoVM 性能分析与优化,通过lambda works-felt功能,使用来自密码库LambdaWorks的Felt实现替换了原有的BigInt实现。在多线程环境中,由于缓存未命中导致性能下降。通过重新设计MemoryCell结构,优化了内存布局,减少了缓存未命中,显著提高了多核系统上的虚拟机扩展性,但在ARM架构上,这种优化对执行性能没有明显影响。
本文介绍了基于平方跨度程序的简单SNARK的实现,并对协议的工作原理以及为什么需要不同的检查来实现安全性进行了直观的解释。本文还介绍了如何使用lambdaworks来实现零知识证明(ZKP)的基本构建块,包括有限域、椭圆曲线、哈希函数、签名、公钥加密和对称密钥加密方案等。
本文回顾了自 20 世纪 80 年代中期以来 SNARKs 的发展历程,重点介绍了零知识证明领域的一些关键概念与技术,如zk-SNARKs、sumcheck协议、GKR协议、KZG多项式承诺方案以及Pinocchio、Groth16、Bulletproofs、Plonk、STARKs等多种SNARKs方案,并分析了它们在性能、安全性及应用方面的特点与优势,并展望了未来发展方向,例如新型多项式承诺方案和可定制约束系统。