零知识证明的证明系统多样性:Groth16的简洁性与Plonk的通用可更新可信设置优劣

区块链技术核心 / 浏览:34

在加密货币与区块链的深水区,零知识证明(Zero-Knowledge Proof, ZKP)早已不是密码学论文里的晦涩公式,而是决定Layer2扩容、隐私转账、甚至去中心化身份能否落地的“硬核基建”。如果你关注过ZK-Rollups(如zkSync、Starknet)或者隐私币(如Tornado Cash),你一定听过两个如雷贯耳的名字:Groth16Plonk。它们就像武侠世界里的两位绝顶高手——一个剑法极简,一击必杀;一个内力绵长,变化无穷。

但问题来了:既然都能证明“我知道某件事且不透露细节”,为什么行业里会分裂成“Groth16党”和“Plonk党”?为什么新项目越来越倾向于Plonk,而老牌隐私应用却死守Groth16?今天,我们不聊数学公式,只聊“江湖恩怨”——从可信设置、证明大小、验证成本到虚拟币牛市里的真实博弈,拆解这两种证明系统的优劣,以及它们如何影响你手中的代币价格。

一、Groth16:那台“为速度而生的F1赛车”

1.1 简洁的极致:证明小到让人窒息

Groth16,由Jens Groth在2016年提出,至今仍是证明体积最小、验证速度最快的通用零知识证明方案。在BN254曲线上,一个Groth16证明通常只有约128字节——这比一条普通的以太坊交易(约110字节)大不了多少。在以太坊主网上验证一个Groth16证明,Gas消耗通常低于30万(约20美元左右,视Gwei而定),而一个简单的ERC20转账也要5万Gas。这意味着,对于高频交易场景(比如去中心化交易所的订单簿撮合),Groth16几乎是“零成本”的存在。

更关键的是,它的验证逻辑极其简单:只需做一次双线性配对运算(pairing),外加几个椭圆曲线点乘。这种“极简主义”直接带来了两个红利: - 链上验证成本极低:在以太坊拥堵时,Groth16的Gas优势就是真金白银。 - 移动端/浏览器端友好:因为验证端不需要复杂的多项式承诺(Polynomial Commitment),所以手机钱包也能轻松验证。

1.2 致命的代价:电路专属的可信设置

Groth16的“阿喀琉斯之踵”在于它的可信设置(Trusted Setup)电路专用(Circuit-Specific) 的。什么意思?简单说,每当你写一个新的电路(比如一个验证“用户余额大于100”的电路),你就得重新运行一次“仪式”(Ceremony)——需要一群参与者共同生成一个秘密参数,然后销毁随机数。如果这个随机数泄露,攻击者就能凭空伪造证明,像印钞机一样盗走资金。

这带来两个现实痛点: - 成本高昂:每次部署新电路,都要组织几十甚至上百人参与“信任仪式”,耗时数周,协调成本极高。像Zcash当年首次运行“Powers of Tau”仪式,动用了全球上百位密码学家。 - 信任风险:只要有一方不诚实(或者被黑客攻破),整个系统的安全性就归零。这就像把金库钥匙交给了一群陌生人,你只能祈祷他们全都失忆。

在虚拟币牛市里,这直接导致了一个现象:Groth16适合“一锤子买卖”的固定逻辑——比如Zcash的隐私转账(电路固定为“验证交易金额”),或者Tornado Cash的固定面额隐私池(电路固定为“100 ETH”)。但如果你要做一个支持任意智能合约逻辑的ZK-Rollup,每次合约升级都要重新做可信设置,那开发团队绝对会疯掉。

二、Plonk:那台“随时改装的越野车”

2.1 通用性与可更新设置的革命

Plonk(由Ariel Gabizon等人在2019年提出)的核心创新在于两条: 1. 通用可信设置(Universal Setup) :只需要做一次“Powers of Tau”仪式,生成一个全局参数,之后所有电路都可以复用这个参数。你不需要为每个新合约重新搞仪式。 2. 可更新可信设置(Updatable Setup) :更妙的是,这个全局参数可以被任何人随时更新——只要有一位新的诚实参与者加入,旧参数就会被“刷新”,即使之前的参与者全部作恶,只要最终有一位是诚实的,系统就是安全的。这相当于把“一次性信任”变成了“持续累积信任”。

这意味着什么?在以太坊生态里,你只需要相信“至少有一个参与者销毁了随机数”,而这一概率随着每次更新而指数级上升。这彻底解决了Groth16的信任瓶颈。

2.2 代价:更大的证明与更高的验证成本

但“通用”从来不是免费的午餐。Plonk的代价体现在: - 证明体积膨胀:一个Plonk证明通常约400-500字节(是Groth16的3-4倍)。在以太坊上验证一个Plonk证明,Gas消耗约40万-60万,比Groth16高出约50%-100%。 - 验证复杂度增加:Plonk需要多次多项式承诺(通常使用KZG承诺)和多次配对运算(通常3-4次,而Groth16只需1次)。这直接导致验证合约的代码量更大,链上Gas更高。 - 内存占用大:对于复杂的电路(比如百万级约束),Plonk的证明者(Prover)需要更大的内存和计算时间,这对硬件要求更苛刻。

在牛市行情中,Gas费动辄100 Gwei时,Plonk的验证成本可能会让高频交易者望而却步。比如一个每秒处理100笔交易的ZK-Rollup,如果每笔交易验证成本多出0.5美元,一天就多烧掉400万美元。

2.3 但Plonk的“隐藏技能”:可定制化电路与递归

Plonk真正的杀手锏,其实不在证明大小,而在灵活性: - 自定义门(Custom Gates) :你可以把特定的业务逻辑(比如“校验两个值相乘后加1”)直接嵌入电路,而不需要用基础逻辑门硬凑。这大大减少了约束数量,提升了证明效率。 - 递归证明(Recursive Proof) :Plonk天然支持“证明的证明”——你可以用一个Plonk证明去验证另一个Plonk证明。这为无限递归的Layer3(比如ZK-rollup之上再叠ZK-rollup)提供了可能。而Groth16虽然也能做递归,但需要为每一层生成新的可信设置,几乎不可行。

这就是为什么zkSync Era、Scroll、Polygon zkEVM等新一代ZK-Rollup全部押注Plonk(或其变种) ——因为它们需要不断升级电路来支持新的EVM opcode,而Plonk的通用参数让“热升级”成为可能。相比之下,如果某天以太坊升级了SHA-256的Gas成本,Groth16的电路就得重新做仪式,这简直是开发者的噩梦。

三、虚拟币热点下的“真实战场”:谁在用什么?

3.1 隐私币的“保守派”:Zcash与Tornado Cash

  • Zcash:至今仍使用Groth16(及更新版的Sapling电路)。为什么?因为它的核心功能(屏蔽交易)的电路是固定且长期不变的。牺牲一点灵活性,换来最低的验证Gas和最小的证明体积,对于隐私币的日常转账至关重要——用户不想为了隐私多付一倍的手续费。
  • Tornado Cash:同样使用Groth16。它的固定面额(0.1 ETH、1 ETH、10 ETH)意味着电路永不改变,所以“可信设置”的劣势被完全规避,而验证成本低的优势被放大。

3.2 扩容项目的“激进派”:zkSync、Scroll、Starknet

  • zkSync Era:使用Plonk的变种(RedShift,但核心思想类似)。它需要支持任意Solidity合约,每次合约部署都是新电路,Plonk的通用参数让它能“无限扩展”。
  • Scroll:同样采用Plonk,并且做了深度优化(比如使用Halo2的IPA承诺替代KZG,以规避KZG对可信设置的依赖——但本质上仍是Plonk家族)。
  • Starknet:严格说用的是STARK(不需要可信设置),但它的证明大小(几十KB)远大于Plonk,因此目前主网仍用递归STARK压缩,最终在以太坊上验证的仍然是类Plonk的结构。

3.3 代币价格的“隐形推手”

如果你关注这些项目的代币(比如ZK代币、STRK),你会发现一个有趣的现象: - Groth16项目(ZEC) 的叙事是“纯隐私、低成本”,但缺乏可组合性,导致DeFi生态匮乏,代币价格长期低迷。 - Plonk项目(ZK、STRK) 的叙事是“通用ZK-VM”,能承载DeFi、游戏、社交,所以市场愿意给更高估值——尽管它们的单笔交易Gas成本更高,但总吞吐量可编程性带来了更大的想象空间。

这背后的经济学逻辑是:在牛市里,市场更看重“增长潜力”而非“单位成本”。一个能部署Uniswap的ZK-Rollup,即使每笔交易贵0.02美元,也比一个只能转账的隐私币有更高的资本流入。而Plonk的灵活性,恰好是“增长潜力”的技术底座。

四、深度对比:一张表看懂“武林高手的招式”

| 维度 | Groth16 | Plonk | | :--- | :--- | :--- | | 证明大小 | 约128字节(极优) | 约400-500字节(中等) | | 链上验证Gas | 约20-30万(极低) | 约40-60万(中等偏高) | | 可信设置 | 电路专用,每次需新仪式 | 通用且可更新,一次设置终身复用 | | 电路升级 | 每次升级需重新信任设置 | 直接修改电路,无需新仪式 | | 递归能力 | 困难(需新设置) | 天然支持,适合Layer3 | | 自定义逻辑 | 受限(只能用基础门) | 支持自定义门,约束数量少 | | 硬件要求(Prover) | 较低 | 较高(内存和CPU占用大) | | 典型代表 | Zcash、Tornado Cash | zkSync、Scroll、Polygon zkEVM |

五、未来趋势:Plonk会一统江湖吗?Groth16会死吗?

5.1 Plonk的“隐忧”:KZG承诺的可信设置依赖

严格来说,Plonk的“通用设置”虽然比Groth16好,但仍然需要可信设置(只是从“每次”变成“一次”)。如果KZG承诺的全局参数被泄露(比如Powers of Tau仪式中所有参与者都作恶),Plonk的安全性也会崩溃。因此,社区正在开发基于FRI的Plonk变种(如Plonky2、Starky),它们用哈希函数替代配对,彻底去掉可信设置——但这又回到了“证明体积大”的老问题。

5.2 Groth16的“复活”:递归与聚合

Groth16并未被抛弃。实际上,很多新项目(如Aztec Network)采用“Groth16聚合+Plonk递归”的混合架构:底层用Groth16生成大量小证明,然后用Plonk递归聚合这些证明,最后提交一个Groth16证明到以太坊。这样既利用了Groth16的验证速度快,又利用了Plonk的递归能力。

5.3 真正的胜负手:硬件加速与专用芯片

在牛市后期,当交易量爆发时,Prover成本(生成证明的算力消耗)会成为瓶颈。Groth16的Prover是线性约束求解,而Plonk的Prover涉及FFT(快速傅里叶变换)多项式求值,计算复杂度更高。因此,我们看到像Cysic、Supranational等公司正在研发ZK专用ASIC芯片——它们优先优化的是Plonk的FFT运算,因为市场主流已经倒向Plonk。这反过来又会降低Plonk的Prover成本,进一步挤压Groth16的生存空间。

六、给开发者和投资者的“实战建议”

  • 如果你在开发隐私币:坚持Groth16。固定电路、低Gas、小证明体积,是用户最核心的诉求。不要为了“未来升级”而牺牲当下体验。
  • 如果你在开发ZK-Rollup:必须选Plonk(或其变种)。EVM兼容性意味着电路天天变,通用可信设置是唯一出路。同时,你需要投资硬件加速,否则Prover成本会吃掉你的利润。
  • 如果你是投资者:关注项目团队是否在“递归证明”和“聚合技术”上有积累。单纯用Groth16的项目,除非有极强隐私护城河,否则很难在DeFi可组合性上胜出。而Plonk阵营的项目,要警惕其Gas成本在牛市高Gwei时期的用户流失风险——但长期看,通用性带来的生态繁荣会弥补这个短板。

七、最后的“题外话”:信任的哲学

Groth16和Plonk之争,本质上是“极简主义”与“通用主义” 之争。Groth16像一把手术刀,精准、锋利、但只能做一种手术;Plonk像一把瑞士军刀,什么都能干,但每样都不极致。

在去中心化的世界里,信任是最稀缺的资源。Groth16把信任集中在“一次仪式”上,风险大但效率高;Plonk把信任分散在“持续更新”中,风险小但效率低。而虚拟币市场的残酷在于——牛市里,人们愿意为“未来可能性”支付溢价;熊市里,人们只愿意为“当下成本”买单。

所以,没有绝对的优劣,只有阶段性的适配。也许未来会出现一种“超级证明系统”,既拥有Groth16的字节级证明,又拥有Plonk的通用设置,还不需要任何可信设置——那将是密码学的圣杯。但在此之前,我们只能在这两种“不完美”中,根据场景和行情,做出那个“最不坏”的选择。

而这场关于“简洁”与“灵活”的战争,远未结束——就像比特币的“数字黄金”叙事与以太坊的“世界计算机”叙事,永远会并行存在,各自吸引着属于自己的信徒。

版权申明:

作者: 虚拟币知识网

链接: https://virtualcurrency.cc/blockchain-technology/zero-knowledge-proof-groth16-vs-plonk-universal-updatable-trusted-setup.htm

来源: 虚拟币知识网

文章版权归作者所有,未经允许请勿转载。

关于我们

 Ethan Carter avatar
Ethan Carter
Welcome to my blog!

最新博客

标签