本文介绍了LogUp查找参数方法,以连续只读存储器为例,通过改变trace table的某些列的构造、置换转换约束以及其他一些小细节,使用这种新方法改进了已有实现。LogUp将乘积转换为对数导数之和,从而降低了prover和verifier的计算量。
Succinct 的 SP1 虚拟机中发现了一个漏洞,攻击者可以通过微妙地操纵访客代码中的寄存器 0 来证明错误陈述的有效性。该漏洞源于偏离 RISC-V 规范以及代码库的复杂性。该问题允许恶意行为者生成恶意程序的有效证明,从而可能导致严重的漏洞。
本文介绍了使用大量参数训练大型语言模型(LLM)时面临的计算密集和通信量大的问题,并重点介绍了Nous Research提出的DeMo方法,该方法通过减少通信成本,降低训练成本,并允许使用较差的连接和较低成本的硬件进行训练。DeMo 算法基于梯度的高度可压缩性,通过离散余弦变换(DCT)提取动量中的快速分量,从而显著降低了数据传输量,同时保持了模型的收敛性。
本文深入探讨了STARKs中约束的概念,并通过Lambdaworks库,以Cairo的非确定性连续只读内存的约束实现为例,详细解释了如何使用多项式来总结trace values之间的高度复杂关系。文章详细介绍了连续只读内存的定义,以及如何通过引入排序和辅助列,将验证内存属性简化为验证连续性约束、单值约束和排列约束。
本文回顾了lambdaworks项目一年半以来的进展,包括代码贡献、发布版本、支持的证明系统和密码学工具。展望未来,lambdaworks计划引入更多高效的证明系统(如Circle STARKs和Binius)、优化现有功能、并提供更完善的文档和示例,旨在降低证明验证成本,简化可验证应用的开发,并促进零知识证明技术的普及。
本文深入探讨了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%。