本文深入分析了 Starkware 开源的 Stone Prover,一个使用 STARKs 技术生成计算完整性证明的 C++ 库。
本文探讨了Lambda不同的运作方式,强调了观察、迭代、简化等原则在工程实践中的重要性。文章论述了如何在解决问题时建立良好的沟通文化,重视可观测性,并提出敏捷开发和过程管理的有效策略,以提升团队的协作与生产力。
文章讨论了零知识证明系统中FRI和KZG等不同方案的优劣,以及Folding schemes、Lookup singularity和STARKs等新兴策略。强调工程实践中,除了理论计算,还需要考虑内存、硬件加速、代码维护等多种因素。同时,提倡通过基准测试和开源代码来促进零知识证明技术的发展,并鼓励社区对不同方案进行优化和比较。
本文深入探讨了内积参数(Inner Product Argument, IPA)及其在Halo2证明系统中的应用,特别关注了如何巧妙地将IPA用作多项式承诺方案。文章详细介绍了IPA的基本概念、Commit和Open协议,并解释了其在零知识证明和算术电路中的重要性,最后阐述了如何从IPA构建多项式承诺方案。
本文深入探讨了FRI(快速Reed-Solomon交互式Oracle证明)协议,该协议用于证明某个函数接近于低阶多项式,这在构建STARKs等证明系统中非常有用。文章详细解释了FRI协议的原理、实现过程,包括多项式的随机折叠、使用Merkle树进行承诺,以及验证过程,并讨论了该协议的安全性依赖于有限域的大小、哈希函数的安全性以及查询的数量。
本文介绍了在Lambda-Ingo ZK CTF比赛中提出的挑战及其解决方案,包括Plonk中的常见攻击(frozen heart和缺乏blinding polynomials)以及利用FRI生成伪造证明或从witness中恢复信息。作者还提到将在Lambdaworks exercises repo中添加更多练习和案例研究,以便人们学习构建证明系统以及在实现中可能出现的一些常见陷阱和漏洞。
本文探讨了使用Rust构建安全可靠系统的挑战,尽管Rust在内存管理和并发方面有优势,但仍存在内存泄漏、错误处理、线程安全、宏滥用和不安全代码等潜在漏洞。强调了在工程实践中,即使使用最佳实践,也可能出现bug,因此需要谨慎对待潜在的漏洞,并采取措施来最小化风险。
本文介绍了MLIR(Multi-Level Intermediate Representation),这是一个旨在统一不同编译器子系统并从LLVM的开发经验中吸取教训的基础设施项目。
本文深入探讨了PLONK(Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge)的工作原理和协议基础,PLONK 是一种常用的零知识简洁非交互式知识论证(ZK-SNARK)。
本文深入探讨了NTRU密码系统,解释了其公钥和私钥的结构,并展示了如何将NTRU密钥搜索问题转化为在特定格中寻找短向量的问题。文章还讨论了使用暴力破解方法寻找短向量的复杂性,表明对于足够大的维度,这种方法是不可行的。