Halo2:Zcash的零知识引擎,重塑隐私与可扩展性

GitHub June 2026
⭐ 908
来源:GitHub归档:June 2026
Halo2,由Zcash团队开发的递归零知识证明系统,已悄然成为隐私保护加密货币交易和以太坊Layer2扩容的双重支柱。本文深度解析其PLONKish架构、相较于Groth16和Plonk的竞争优势,以及Scroll对其的采用如何预示可验证计算的未来。

Halo2是由Electric Coin Company(Zcash背后的团队)开发的零知识证明系统,它消除了对可信设置的需求,同时支持递归证明——即一个证明可以高效地验证另一个证明,从而创建一条无限的可验证计算链。其核心采用了一种“PLONKish”算术化方案,这是对PLONK协议的灵活泛化,允许电路设计者以前所未有的自由度定义自定义门和查找表。这种灵活性使Halo2成为Scroll(一个旨在扩展以太坊的知名zkEVM Layer2项目)以及Zcash自身向更可扩展、最小化信任的屏蔽池过渡的首选证明系统。该系统的多项式承诺方案基于内积论证(IPA),避免了

技术深度解析

Halo2的架构堪称工程权衡的典范。它并非单一协议,而是一个构建在PLONKish范式之上的框架,该范式泛化了原始的PLONK(Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge)协议。其关键创新在于自定义门查找表系统。与标准Plonk将所有约束强制到一组固定门(例如加法和乘法)不同,Halo2允许电路设计者定义任意多项式约束。这是通过将电路划分为不同的“区域”来实现的,每个区域应用不同的门集合,然后使用选择器多项式按行启用或禁用这些门。

多项式承诺方案: Halo2使用基于内积论证(IPA)的多项式承诺方案。这是一个关键的设计选择。IPA承诺是透明的(无需可信设置),并且具有后量子抗性,因为它依赖于离散对数假设而非配对。然而,它们会产生更大的证明(O(log n)大小,通常为几千字节),并且验证速度比Plonk中使用的KZG等基于配对的方案更慢。验证时间与承诺数量呈线性关系,这可能会成为大型电路的瓶颈。

递归证明: 该系统的真正威力在于其对递归证明的原生支持。Halo2证明可以在电路内部验证另一个Halo2证明,使用椭圆曲线循环(例如Pallas和Vesta)。这实现了“证明压缩”——可以将由许多小证明组成的链聚合为一个紧凑的单一证明。正是这种机制使Zcash的“Orchard”屏蔽池能够高效扩展,也是Scroll用来将数千笔Layer2交易批量处理为单个有效性证明的相同机制。

性能基准测试: 下表比较了Halo2与Groth16和标准Plonk在代表性电路(例如,包含256位域元素的Merkle树包含证明)上的性能特征:

| 证明系统 | 证明大小 | 证明时间(单核) | 验证时间 | 是否需要可信设置 | 递归证明支持 |
|---|---|---|---|---|---|
| Groth16 | ~200字节 | 1.2秒 | 2毫秒 | 是(每个电路) | 否(朴素实现) |
| Plonk (KZG) | ~1.5 KB | 2.5秒 | 5毫秒 | 是(通用) | 是(通过自定义电路) |
| Halo2 (IPA) | ~3 KB | 4.0秒 | 15毫秒 | 否 | 是(原生,高效) |

数据要点: Halo2以更大的证明大小和更慢的证明/验证时间,换取了无需可信设置和原生递归证明支持这两个关键优势。对于Zcash和Scroll这类将信任最小化和证明聚合置于首位的应用,这些权衡是可以接受的。对于高频、低延迟的应用(例如中心化交易所的偿付能力证明),Groth16仍然更优。

GitHub生态系统: 参考实现由Electric Coin Company在`zcash/halo2`仓库中维护。截至本文撰写时,该项目拥有908颗星和一个活跃的开发分支。一个值得注意的分支是`scroll-tech/halo2`,它包含针对EVM兼容性的优化以及用于zkEVM的自定义查找表。以太坊基金会PSE团队的`privacy-scaling-explorations/halo2`仓库还包含用于ECDSA签名验证和SHA-256哈希的实验性小工具,扩展了Halo2在加密货币之外的适用性。

关键参与者与案例研究

Zcash (Electric Coin Company): Zcash是Halo2最早且最成熟的采用者。于2022年推出的“Orchard”屏蔽池完全使用Halo2。这取代了较早的Sprout和Sapling池,后者分别依赖BCTV14和Groth16证明系统,两者都需要多方参与的可信设置仪式。迁移到Halo2消除了对该仪式的需求,这是一个重大的信任去中心化里程碑。由Sean Bowe和Daira Hopwood领导的Zcash工程团队贡献了Halo2的核心代码以及使递归高效的曲线循环(Pallas/Vesta)。他们的策略是将Halo2作为一个长期、自主的证明系统,不依赖外部参数。

Scroll: Scroll是一个以太坊Layer2 zkEVM(零知识以太坊虚拟机),使用Halo2作为其证明后端。Scroll的选择具有战略意义:他们需要一个灵活的电路编译器来处理EVM操作码的巨大复杂性,而Halo2的自定义门架构使他们能够将每个操作码实现为专门的组件。Scroll团队为Halo2贡献了重要的优化,包括一种“分块”证明方法,将大型EVM执行轨迹拆分为更小、可并行化的电路。这将在高端GPU集群上生成完整以太坊区块的端到端证明时间从数小时缩短至30分钟以内。Scroll的测试网已处理超过1亿笔交易,证明了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的密码学基石,专为高吞吐、灵活的证明生成而设计。本文深度剖析其工程选择、竞争定位及这一开源项目的市场影响。Zcash的Rust隐私引擎:Halo2革命内幕Zcash正以Rust语言从零重构其隐私基础设施。librustzcash代码库如今驱动着Sapling和Orchard协议,标志着向内存安全、高性能零知识证明的决定性转变,这一技术路线或将定义下一代机密资产的形态。Halo2:零知识引擎,驱动以太坊隐私未来Halo2,一个由隐私以太坊社区维护的开源零知识证明库,正悄然成为隐私交易和Layer-2扩容的密码学基石。其核心创新——无需可信设置的递归证明组合——解决了困扰业界十年的瓶颈,但稀疏的文档阻碍了主流开发者的采用。Bellman:支撑Zcash与zk-SNARK未来的Rust密码学库作为Zcash团队维护的Rust语言zk-SNARK库,Bellman是加密世界隐私保护系统背后默默无闻的功臣。本文深度剖析其Groth16实现、多标量乘法优化,并解释为何尽管学习曲线陡峭,它仍是行业黄金标准。

常见问题

GitHub 热点“Halo2: Zcash's Zero-Knowledge Engine Reshaping Privacy and Scalability”主要讲了什么?

Halo2 is a zero-knowledge proving system developed by the Electric Coin Company (the team behind Zcash) that eliminates the need for a trusted setup while enabling recursive proofs…

这个 GitHub 项目在“Halo2 vs Plonk vs Groth16 performance comparison 2025”上为什么会引发关注?

Halo2's architecture is a masterclass in engineering trade-offs. It is not a single protocol but a framework built on the PLONKish paradigm, which generalizes the original PLONK (Permutations over Lagrange-bases for Oecu…

从“How Scroll uses Halo2 for zkEVM proving”看,这个 GitHub 项目的热度表现如何?

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