ZK² Rollup 包含了两层或多层 SNARKs,递归证明增加了方案实现难度。

推荐阅读:《以太坊网络隐私保护实用指南

原文标题:《隐私方案 ZK² Rollup:如何在以太坊上实现高速、廉价的隐私交易》(Aztec: Fast Privacy with ZK² Rollup)
撰文:Thomas Walton-Pocock
编译:洒脱喜

据以太坊联合创始人 Vitalik 表示,隐私协议团队 AZTEC 正在研发 ZK-ZK Rollup 方案,以在以太坊主网上实现每秒数百笔的隐私交易,同时可降低每笔隐私交易的成本。

一文了解 AZTEC 开发的 ZK² Rollup:在以太坊实现高速廉价的隐私交易

对于 ZK Rollup 方案,一些读者可能已经有所了解,那这个 ZK-ZK Rollup,又是个啥呢?我们来看 AZTEC 官方给出的解释:

啥是 ZK² Rollup

AZTEC 团队正在为 PLONK 证明进行 ZK-ZK Rollup 的研发工作,以减少在以太坊主网上进行隐私交易的 gas 成本。

传统的 ZK Rollup 利用了 SNARKs 的「简洁性」属性来扩展公共区块链,这种技术允许将大量交易「汇总」为一笔聚合交易,因此以太坊可以一次执行 100 笔或 1000 笔交易,而所消耗的 gas 成本就相当于一笔以太坊交易的花费。

所以 ZK-SNARKs 也可以是一种用于扩容的核心工具,此外,我们已经认识到用户可以使用 ZK-SNARKs 来保护隐私。那两者可以同时兼得吗?

答案是:「yes」。

AZTEC 目前正在积极部署 ZK-ZK Rollup,或简称 ZK²,因为它包含了两层或多层 SNARKs:

  • 「低层」ZK-SNARKs 每个都代表了一笔隐私交易;
  • 「上层」ZK-SNARKs (即 Rollup SNARK),则简洁地证明了低层 SNARK 的正确性;

注意:这个术语有点粗糙,因为实际上不需要将「上层」汇总为 ZK (零知识),一旦创建了「低层」SNARKs (隐私交易),这些交易的隐私就得到了保证。事实上,Rollup 只依赖于缩写「SNARK」中的「S」属性,意思就是「简洁」。我们需要花费高昂的成本来检查隐私交易,并用一个简洁的 Rollup 证明来替换它们,然后它的成本就会分摊给所有的交易。

一文了解 AZTEC 开发的 ZK² Rollup:在以太坊实现高速廉价的隐私交易100 笔交易「汇总」到单个 SNARK 证明

AZTEC 很快就会允许你在以太坊主网上以 100 tps 的速度发送隐私交易,这同时兼顾了余额隐私和用户隐私。

而在理想情况下,Rollup 理论上是可以达到 2,000 tps 的。

那为何隐私 Rollup 交易会如此困难呢?

是什么使 ZK² Rollup 如此困难?

递归:证明的证明

在标准的 ZK Rollup 中, Rollup SNARK 证明是非常适合 SNARK 的数学推理,围绕公共 token 传输的逻辑可以很容易地转换为「算术电路」。

但是对于 ZK² Rollup 而言,你需要在另一个 SNARK 电路(上层 Rollup SNARK)中验证一个 SNARK 证明(下层隐私 SNARK)。

这就被称为递归(指在 SNARKs 中证明 SNARKs 的行为)。

而递归是很困难的,因为你要么需要非常特殊的数学条件,要么你就会面临像山一样庞大的计算量。

具体来说,你需要以下条件之一:

  1. 要找到所谓的「配对友好」曲线循环,而这是非常罕见的存在,而且在它们存在的地方,其安全性是非常低的,你需要选择非常大且计算成本很高的数字系统来描述它们(例如,MNT4 和 MNT6 曲线),或者
  2. 模拟电路中的二进制算术,而二进制算术又可以用于模拟素数域运算。这需要大量使用范围证明(range proofs),而范围证明(range proofs)是很消耗成本的;

状态更新

除了计算上的不利因素之外,状态更新的管理比公共 ZK Rollup 要具有更多的开销。ZK² Rollups 需要更多的状态更新,并且需要发送更多的数据:

  1. 对于标准(公开) ZK Rollup 而言,用户可以使用基于帐户的模型,这需要每笔交易进行 2 次状态更新。但是,为了防止统计攻击,保护隐私的 ZK² Rollups 就需要用到 2 倍的数据,其中 2 个状态变量被添加到状态树中,另外 2 个变量被添加到 nullifier 树中。
  2. 也许一个更大的瓶颈,是数据传输要求,传统的 Rollup 涉及每笔交易 4–8 字节的负载,而隐私隐蔽 Rollup 涉及每笔交易 32–64 字节的负载,而在以太坊的数据,仍然是昂贵的。

可证明随机性

AZTEC 还需要验证随机性的来源(将「交互式证明」转换为「非交互式证明」的魔法,这样你就不必每次在花钱时都要忍受与以太坊进行痛苦的交互)。

这种随机性意味着哈希。而在 SNARKs 中的哈希就是一个真正的问题:

  1. 对 SNARK 友好的哈希算法(例如 Pedersen 哈希)缺乏传统哈希函数的伪随机性:将输入的一部分更改为 Pedersen 哈希,你就会知道输出会发生什么。 由于缺少此属性,我们无法轻松生成证明者无法操纵的数字;
  2. 我们可以转向不太被广泛接受的 SNARK 友好哈希函数(例如 Poseidon, Rescue),但「已定型」和「广泛采用」这两大属性,是我们对密码学原语信心的基础,而在有价值的密码学系统中部署这些未被证明的哈希函数,可能还为时过早;
  3. 因此,我们别无选择,只能求助于对 SNARK「不友好」哈希算法(例如 Blake2 或 SHA256),而它们大量使用了二进制逻辑和范围证明(range proof)。

然而,AZTEC 在 2020 年已取得了一些关键的研发突破,这包括其最新发表的研究论文 PLOOKUP,这使得实践者能够在 SNARKs 高效地进行一些对 SNARK 非友好的任务。

在结合其他创新的情况下,递归的大门就被打破了。

PLONK: 一种新的 ZK 标准

据悉,AZTEC 的 SNARK 证明是使用该公司 CTO Zac Williamson 和现任首席科学家 Ariel Gabizon 创建的称为 PLONK 的最新数学成果构建的。

在过去的几个月里,一些领先的扩展性和隐私项目选择加入了 PLONK 生态系统,其中包括:

  1. Dusk Network 最近宣布他们改用 PLONK;
  2. Matter Labs 正在透明设置环境中实现 PLONK;

AZTEC 的通用 SNARK 系统描述了一种连接电路的新方法(R1CS 是现有的标准),而转换标准总是要付出代价的,这需要重写行业标准代码库。随着 TurboPLONK 的推出,关于「自定义门」的选择公认标准,目前仅是在形成的初期阶段。

来源链接:medium.com