PlasmaBlind:消费级硬件上的隐私L2支付,证明低于100毫秒

  • psedev
  • 发布于 1 小时前
  • 阅读 10

PlasmaBlind是一种基于折叠方案的私有、可扩展以太坊L2支付系统。

PlasmaBlind 是以太坊上一种新型隐私且可扩展的 L2 设计方案。它采用一种名为 BlindFold 的折叠方案技术,实现了客户端在 100 毫秒以内的证明生成,并通过一种链接的双 IVC 架构,使聚合器每笔交易的成本约为 270 到 360 毫秒。

PlasmaBlind:在消费级硬件速度下实现隐私 L2 支付

以太坊是开放的、可信中立的,并且对于许多用例来说足够快速。缺失的一块是隐私。每一笔转账都会永久地暴露在公共账本上。任何人只要有一个区块浏览器,仅凭一个关联的地址就能重建出一个人大部分的经济生活。

PlasmaBlind

是弥合这一差距的一次尝试。它是一个基于折叠方案和一种名为 BlindFold 的折叠方案技术构建的 L2 设计方案。PlasmaBlind 隐藏了金额和接收方。用户可以在笔记本电脑上以低于 100 毫秒的速度生成交易证明。单个聚合器处理每笔交易需要 270 到 360 毫秒。所有交易最终结算到以太坊 L1。

这篇由 Pierre 和 Chengru 撰写的技术说明延续了

PlasmaFold

系列的工作。本文是对其密码学思想、协议设计以及基准测试的一次解读。

为什么隐私 L2 很难实现

扩容和隐私在很大程度上是独立发展的。

在扩容方面,Rollup、Plasma 和 Validium 将交易处理从 L1 转移到聚合器上,聚合器将交易打包,并将压缩后的更新发布回链上,同时伴有欺诈证明窗口或有效性证明。在 "zk-rollup" 中,SNARK 证明状态转换的 正确性。它并不隐藏数据。

在隐私方面,如

Zerocash

及其部署的 Zcash 等项目展示了 zkSNARK 如何隐藏支付中的金额和参与者。这些系统是独立的 L1,因此它们的吞吐量受限于基础层的能力。

已有几个团队将基于 zkSNARK 的隐私交易与 L2 结合:

Nightfall

AztecIntmax2 等。每个设计都有自己的选择:证明成本的主体落在哪里,数据可用性如何处理,提供何种隐私保护,用户如何保持其状态同步。这个领域的空间很大。

PlasmaBlind 在用户端和聚合器端都保持了低廉的证明成本,这得益于我们对折叠方案的广泛应用。

折叠方案入门

折叠方案是一种密码学原语。它允许证明者将同一电路的两个满足性实例-见证对 折叠 成一个满足性对,其时间和空间开销与 一个对 的大小成正比,而不是生成全新证明的成本。一个代表性的构造在

Nova

中提出,后来由 SuperNovaHyperNova 等后续工作扩展。

在隐私 L2 中,每个用户生成自己的证明,聚合器必须将许多证明组合成一个区块证明。通常的做法是在另一个证明内部验证每个证明,这会迅速变得昂贵。折叠允许你直接组合底层实例,成本大大降低。

我们 PSE 团队一直在研究折叠方案。大部分实现工作集中在

Sonobe

——我们的开源折叠库,与 0xPARC 共同维护。PlasmaBlind 构建在 Sonobe 之上。

盲化观察与 BlindFold

PlasmaBlind 的命名源于 BlindFold,这是 HyperNova 中发现的一种技术。核心思想是,为了实现零知识,盲化折叠方案就已足够,即使没有完整的 zkSNARK。一些折叠方案,包括 Nova,具备这种盲化属性。如果你将一个满足性实例-见证对 (𝕨, 𝕦) 与一个均匀随机的满足性对 (W⋆, U⋆) 折叠,得到的折叠见证 𝕎 不会泄露原始 𝕨 的任何信息。可靠性仍然将 𝕎 绑定到一个满足性实例。

在 BlindFold 中,证明者只需执行以下步骤:

  1. 在其私有输入上评估电路,生成一个满足性对。
  2. 针对一个随机满足性对执行一次折叠。

得到的 "证明" 是重新随机化后的对。验证是一次折叠检查。这比生成相同电路的 Groth16 或 PLONK 证明要便宜得多,并且在底层承诺方案的标准假设下保证了零知识。

但该证明还不是简洁的。重新随机化后的见证大小与原始见证相同。对于将这些证明输入到聚合器并立即再次折叠它们的系统来说,这没问题。聚合器在区块结束时一次性承担简洁性成本。用户则完全不需要支付这个成本。

PlasmaBlind 做什么

PlasmaBlind 是一个基于 UTXO 模型的支付 L2。用户持有 UTXO,发送 隐藏 交易(隐藏金额和接收方,并将输入 UTXO 作为 nullifier 消耗),并接收新的 UTXO。聚合器根据经过验证的隐藏交易构建区块,并将一个恒定大小的区块有效性证明发布到 L1 上的 Rollup 合约。

该设计基于三个选择。

发送者公钥被揭示;金额和接收方被隐藏。 PlasmaBlind 隐藏了大多数用户所说的 "隐私支付" 的内容:多少钱,以及给谁。它并不隐藏 某个特定发送者在某个特定区块中进行了交易 这一事实。原因是数据可用性:发送者需要验证他们认可(并收到有效性证明)的交易确实出现在预期的区块中,这意味着区块必须揭示谁认可了它。

客户端侧证明使用 BlindFold。 当发送者最终确定一笔交易时,他们根据其秘密数据计算交易有效性关系的电路,导出一个满足性实例-见证对,采样一个随机对,然后将两者折叠。发送给聚合器的交易证明是重新随机化后的对。在用户流程中没有任何通用 zkSNARK 证明器。

余额证明通过基于折叠的 IVC 保持更新。 每个用户维护一个本地余额证明,该证明仅包含他们实际参与交易的区块,而非所有区块。要退出,用户将余额证明交给 Rollup 合约。无需聚合器交互。这使 PlasmaBlind 实现了 即时退出:即使聚合器停止合作,任何拥有当前余额证明的用户都可以在 L1 上提款。

聚合器:链接的双 IVC 链

更难的问题在聚合器端。聚合器从许多用户接收 BlindFold 交易证明,并生成一个恒定大小的区块有效性证明。需要同时完成两件事:

  1. 聚合用户证明。 每个用户的重新随机化对被折叠到一个运行中的累加器对 (𝕎̃, 𝕌̃) 中。
  2. 证明 L2 状态更新。 对于每笔交易,聚合器运行一个状态转移步骤电路(插入到公钥树中,将 nullifier 插入到区间 Merkle 树中,更新已承诺 UTXO 树),并将其执行轨迹折叠到另一个分离的累加器 (𝕎^{blk}, 𝕌^{blk}) 中。

这两个计算基于不同的电路。处理这种情况的标准工具是非统一 PCD:一种更通用的 IVC 版本,允许单个证明跨越不同的电路形状和树形聚合。PCD 可行,但代价高昂。每一步都要支付较大电路的成本,再加上允许两种不同形状共存的额外开销。

PlasmaBlind 采取了一种不同的路线。它运行两条并行的 IVC 链,而不是一条 PCD 链,每条链固定使用自己的电路。一条链只累加用户证明。另一条运行状态更新电路。它们通过状态更新电路内部的一次检查连接起来:在每一步中,它验证正在被折叠到第一条链中的用户证明是否属于第二条链正在处理的同一笔交易。这个链接存在于电路内部,因此 IVC 的可靠性足以保持两条链的一致性。不需要单独的证明组合步骤。

结果:聚合器获得了非统一 PCD 的表达能力,而无需支付其开销。在区块结束时,两条链都被一个 决策 SNARK(对 IVC 证明的最终、简洁、可在链上验证的封装)压缩成一个恒定大小的零知识区块证明。Rollup 合约验证该证明。

与 SuperNova 相比,该技术源于不同的前提:它专注于 链接 具有(部分)共享见证的多个折叠实例。SuperNova 通过在每一步从多个折叠实例中 选择 来支持通用的非统一电路,但不保证这些实例共享见证。SuperNova 可以扩展为手动链接跨步骤的见证,但 PlasmaBlind 在单一步骤中处理链接,具有更小的递归开销。

实际成本是多少

基准测试是初步的,基于消费级硬件:客户端使用 Apple M1 Max(32 GB RAM),聚合器使用 Intel i9-12900K(64 GB RAM)。交易为 2 输入 2 输出和 4 输入 4 输出的隐藏转账,使用 Poseidon 或 Griffin 哈希函数。(Griffin 的安全性最近受到质疑;这些数字应被视为类似形状、更安全替代方案的典型值。)

客户端侧证明(电路综合加上一次 BlindFold 折叠):

配置 交易有效性 余额更新
Griffin, 2 输入/2 输出 32.8 毫秒 43.1 毫秒
Poseidon, 2 输入/2 输出 51.8 毫秒 45.8 毫秒
Griffin, 4 输入/4 输出 60.4 毫秒 46.4 毫秒
Poseidon, 4 输入/4 输出 94.0 毫秒 48.3 毫秒

所有配置均在 100 毫秒以下。

聚合器侧区块构建。 每区块 128 笔交易时,总时间范围从 34.0 秒(Griffin, 2 输入/2 输出)到 45.5 秒(Poseidon, 4 输入/4 输出):大约每笔交易 270 到 360 毫秒。本地实例折叠占主导地位(总时间的 51% 到 60%),其次是用户实例折叠(19% 到 21%)、步骤电路综合(11% 到 22%)和验证(7% 到 10%)。所有四个阶段都随交易数量线性扩展。

吞吐量 取决于部署方式。

  • 中心化。 单个聚合器不发布 nullifier,在 L1 区块时间 12 秒、采用 Intmax2 风格约 4.15 字节短用户 ID 以及每区块 14 个 Blob 目标的情况下,可实现约 36,604 TPS。
  • 去中心化。 有多个聚合器时,系统需要作为区块体的一部分广播 nullifier,因此每笔交易数据增长到约 132 字节。吞吐量下降到约 1,149 TPS,如果将 nullifier 截断为 20 字节,则为约 1,805 TPS。

交易证明大小 随区块树高度(控制匿名集大小)缩放。高度为 4 的 2 输入/2 输出 Griffin 证明大小为 259 KB。高度为 32 的 4 输入/4 输出 Poseidon 证明大小为 1,901 KB。更大的匿名集每增加一个高度阶梯大约需要 11 到 18 KB。

下一步、开放问题以及如何参与

技术说明中包含了完整的构造、电路伪代码以及来自可用实现的端到端基准测试。然而,应将其视为研究原型,因为许多组件仍然缺失或需要改进。没有提供形式化的安全模型和证明。基准测试及与相关工作的比较仍然是初步的。该构造和实现尚未经过同行评审或审计。去中心化聚合器设计已勾勒出轮廓,但尚未完全明确:围绕共享 nullifier 树协调多个聚合器是下一个系统问题。

也存在有意的隐私权衡。发送者公钥会泄露每区块的交易频率。匿名集受纪元树高度的限制,这是一个可由用户和运营商调节的参数。PlasmaBlind 继承了 Intmax2 风格的最小化链上数据,这是其高吞吐量的部分原因,但也是用户假设他们始终可以退出时所依赖的东西。

如果你想参与:

  • 原文链接: pse.dev/blog/plasmablind...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
psedev
psedev
江湖只有他的大名,没有他的介绍。