Halo2:零知识引擎,驱动以太坊隐私未来

GitHub June 2026
⭐ 247
来源:GitHub归档:June 2026
Halo2,一个由隐私以太坊社区维护的开源零知识证明库,正悄然成为隐私交易和Layer-2扩容的密码学基石。其核心创新——无需可信设置的递归证明组合——解决了困扰业界十年的瓶颈,但稀疏的文档阻碍了主流开发者的采用。

Halo2是一个基于Rust的零知识证明系统,源自Halo(Halo:无需可信设置的递归证明组合)协议,最初由Sean Bowe、Jack Grigg和Daira Hopwood开发。隐私以太坊社区已将其分叉并作为独立库积极维护,使其与Zcash生态系统解耦。其核心技术成就是消除了对可信设置仪式的需求——这是zk-SNARKs中历史上脆弱且充满争议的要求——同时仍能实现高效的递归证明。这意味着单个证明可以验证另一个证明,从而实现计算的无界压缩。Halo2使用Plonkish算术化,这是PLONK协议的泛化,为开发者提供了灵活的门约束和自定义查找表。

技术深度解析

Halo2的架构堪称密码学工程的典范。其核心是Halo协议,该协议通过利用内积论证(IPA)进行多项式承诺,实现了无需可信设置的递归证明组合。与Groth16(每个电路需要一次性可信设置)不同,Halo2使用透明设置:证明者和验证者只需要声明和电路描述。这消除了可信设置仪式被攻破的风险——这一漏洞曾困扰Zcash和Filecoin等项目。

该库实现了Plonkish算术化,这是PLONK协议的扩展。在PLONK中,电路被表示为单个多项式等式约束系统。Halo2通过允许自定义门查找论证对其进行了泛化。自定义门是用户定义的多项式约束,作用于一组固定的导线(例如,椭圆曲线点加法的约束)。查找允许证明一个值元组属于预计算表,这对于高效的范围检查或SHA-256哈希至关重要。这种灵活性正是Halo2成为ZK-EVM首选证明系统的原因:EVM操作码如`ADD`、`MUL`或`SLOAD`可以编码为自定义门,而内存和存储访问则可以通过查找来处理。

递归证明组合是Halo2真正大放异彩之处。单个Halo2证明可以在其内部验证另一个Halo2证明。这是通过将验证者的算法实现为Halo2电路来实现的。用于多项式承诺的内积论证特别适合递归,因为其验证者非常轻量——只需要几次标量乘法和哈希计算。结果是无论递归深度如何,证明大小都是恒定的(约1 KB)。这使得证明聚合成为可能:Rollup无需向L1提交数千个单独的交易证明,而是可以通过递归将它们组合成一个证明,从而大幅降低Gas成本。

性能基准测试揭示了其中的权衡。在单证明者场景下,Halo2比Groth16慢,但在递归和灵活性方面表现出色。

| 证明系统 | 证明时间(100万门) | 证明大小 | 是否需要可信设置 | 递归支持 |
|---|---|---|---|---|
| Groth16 | ~5秒 | 192字节 | 是 | 否(原生) |
| PLONK(标准) | ~20秒 | ~1 KB | 否(透明) | 有限 |
| Halo2 | ~30秒 | ~1 KB | 否 | 原生、高效 |
| Circom + Groth16 | ~8秒 | 192字节 | 是 | 否 |

数据要点: Halo2以相比Groth16慢6倍的证明时间,换取了可信设置的消除和原生递归。对于ZK-EVM等应用,电路复杂且递归至关重要,这种权衡是可以接受的。对于简单的单证明应用(例如,私人支付),Groth16仍然更快。

该库使用Rust编写,依赖于`halo2_proofs` crate。GitHub仓库`privacy-scaling-explorations/halo2`是主要分支,拥有247颗星和每日提交。一个值得注意的子项目是`halo2_gadgets`,它提供了可重用的电路组件(例如,SHA-256、椭圆曲线运算)。`halo2_curves` crate处理椭圆曲线算术,支持BLS12-381和BN254。对内部机制感兴趣的开发者应查看`circuit.rs`和`plonk.rs`文件,这些文件定义了核心约束系统和证明者。

关键参与者与案例研究

Halo2的开发由隐私以太坊小组(前身为以太坊基金会的隐私扩容探索团队)推动。主要贡献者包括Ying TongKoh Wei JieJohn David Pressman,他们贡献了大部分提交。该项目与Zcash中的原始Halo实现不同,尽管它与Sean Bowe的工作有共同渊源。

案例研究1:Scroll – Scroll,一个基于zkEVM的Layer 2,使用Halo2作为其证明后端。Scroll的架构由一个证明EVM执行轨迹的zkEVM电路组成。该团队选择Halo2而非Gnark或Circom等替代方案,是因为其Plonkish算术化,这使他们能够高效地编码EVM基于操作码的状态机。Scroll的测试网已处理超过100万笔交易,Halo2证明平均大小为1.2 KB,每个区块的证明时间约为45秒。该团队公开表示,Halo2缺乏文档是一个主要障碍,迫使他们构建内部工具。

案例研究2:Polygon zkEVM – Polygon的zkEVM最初使用自定义PLONK实现,但后来迁移到基于Halo2的证明系统用于其主网测试版。迁移的动机是Halo2卓越的递归支持,Polygon使用它来聚合批量证明。Polygon团队已向Halo2贡献了多项优化,包括使用CUDA内核的更快多标量乘法(MSM)。

案例研究3:Taiko – Taiko,一个完全去中心化的zkRollup,在其证明系统中使用Halo2。

更多来自 GitHub

阿里开源代码审查工具:确定性流水线+LLM智能体,专攻Java安全漏洞阿里巴巴正式发布了open-code-review,这是一款混合型代码审查工具,它将确定性静态分析流水线与基于大语言模型的智能体相结合。该工具已在阿里巴巴的规模化场景中经受实战考验,每天处理数百万行Java代码。它内置了一套经过精细调优的规Git Hooks Manager git-hooks:声明式配置,标准化开发工作流Git 钩子功能强大,但在团队中管理起来却出了名的麻烦。开源项目 git-hooks(⭐419,日增 +0)通过引入一个单一的声明式配置文件(`.git-hooks.yml`)来解决这一问题,该文件定义了所有钩子、触发条件以及要运行的脚本。Shapado:已故的开源问答平台,却是AI知识平台的幽灵导师Shapado(GitHub: ricodigo/shapado,526颗星)是早期一次雄心勃勃的尝试,旨在将StackOverflow模式民主化。它于2000年代末上线,提供了一个免费、自托管的问答平台,基于Ruby on Rails构建查看来源专题页GitHub 已收录 2343 篇文章

时间归档

June 2026378 篇已发布文章

延伸阅读

Scroll上的Halo2:为以太坊L2扩容提供动力的ZK证明引擎Scroll的Halo2实现绝非又一个ZK库——它是其zkEVM的密码学基石,专为高吞吐、灵活的证明生成而设计。本文深度剖析其工程选择、竞争定位及这一开源项目的市场影响。Halo2:Zcash的零知识引擎,重塑隐私与可扩展性Halo2,由Zcash团队开发的递归零知识证明系统,已悄然成为隐私保护加密货币交易和以太坊Layer2扩容的双重支柱。本文深度解析其PLONKish架构、相较于Groth16和Plonk的竞争优势,以及Scroll对其的采用如何预示可验证Zcash的Rust隐私引擎:Halo2革命内幕Zcash正以Rust语言从零重构其隐私基础设施。librustzcash代码库如今驱动着Sapling和Orchard协议,标志着向内存安全、高性能零知识证明的决定性转变,这一技术路线或将定义下一代机密资产的形态。Scroll zkEVM电路深度解析:模块化引擎如何重塑以太坊L2扩容格局Scroll的zkEVM电路并非普通的Rollup组件——它是一个模块化、兼容EVM的证明生成引擎,直接决定了整个网络的Gas成本和吞吐量。本文从技术选型、竞争压力与市场影响三个维度,拆解这一关键开源项目的底层逻辑。

常见问题

GitHub 热点“Halo2: The Zero-Knowledge Engine Powering Ethereum's Private Future”主要讲了什么?

Halo2 is a Rust-based zero-knowledge proving system derived from the Halo (Halo: Recursive Proof Composition without Trusted Setup) protocol, originally developed by Sean Bowe, Jac…

这个 GitHub 项目在“Halo2 vs Circom vs Gnark comparison”上为什么会引发关注?

Halo2's architecture is a masterclass in cryptographic engineering. At its heart is the Halo protocol, which achieves recursive proof composition without a trusted setup by leveraging an inner product argument (IPA) for…

从“Halo2 ZK-EVM proving time benchmarks”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 247,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。