硬核解读:零知识证明(ZK) 为什么重要?

FundamentalLabs
2022年4月26日 13:11
收藏
ZK 的前景是美好的,它可以让一些过去不可能的事情变成现实。

作者:Glaze & Fundamental Labs 研究团队

 

概要

 

ZK 的前景是美好的,它可以让一些过去不可能的事情变成现实。近年来,ZK 领域发生了很多突破性的进展,例如更强的性能、可升级性和不需要信任初始化。这些改进都将 ZK 推向了应用阶段。因此,如果我们要看到一个新的 ZK 证明系统,我们可以从以下维度进行评判:

  • 一笔交易和十笔交易的证明时间
  • 一笔交易和十笔交易的验证时间
  • 一笔交易和十笔交易打包后的证明大小
  • 可信初始化
  • 参考字符串长度
  • CRS 支持
  • SRS 支持
  • 递归证明支持
  • 能否抵抗量子计算机
  • 安全性基于任何密码学假设

 

ZKEVM 是 ZKRU 的下一个里程碑,ZKEVM 有三个阶段:

  • 共识级
  • 字节码级
  • 语言级

ZKRU 刚刚进入应用阶段,生态并不完善。开发者们还没有发掘出 ZK 的所有潜力。人们仍不断从这些前沿理论中得到启发,以下是值得关注的方向:

  • 充分利用高 TPS 和低手续费的应用程序
  • Layer2 之间的通信协议/应用程序
  • 聚合流动性
  • 开发工具/框架
  • 基于云的开发工具
  • 具有独特功能的跨 Layer2 Layer1 应用程序
  • 不同的 ZKVM
  • ZK 桥
  • 在其他链上应用 ZK
  • 拥有递归功能的 Layer2
  • ZK 在 DAO 和社区治理中的应用
  • 商业化 ZK 算法
  • 芯片和云计算

ZK 的应用聚焦在两个方面:Rollup 和隐私。Rollup 比隐私有更好的前景。隐私在某种程度上和区块链的开放精神相违背。另外,隐私可能有合规问题。在 Web2 时代,我们没有看到隐私应用程序达到龙头的位置。所有应用的隐私保护水平在不断提高,但龙头应用往往不是主打隐私的引用,而是易用性最强的应用。隐私是有代价的,大多数情况下牺牲了用户最关心的易用性。

当我们看 ZK 隐私项目时,以下几点较为重要:

  • ZK 只是技术,我们要专注产品力和团队
  • ZK 是个复杂的技术,会拖慢开发进度
  • ZK 有利于 DAO 治理和身份认证
  • ZK 是机构上链的必备技术

 

直觉

 

一句话介绍 ZK(Zero Knowledge Proof):证明者(Prover)说服验证者(Verifier)相信某些声明是真的,但除了声明是真的之外,验证者没有获得其他信息。

ZK 是为匿名而设计的。试想我们可以证明我们的身份证号码是有效的,但是验证者并不能获得我们的身份证号码。这在信息过度索取的今天,具有重大意义。

让我们来看一个更加生动的例子。小明和小红在玩数独。小红想向小明证明她找到了数独的答案,但同时又不透露这个答案,因为小明还没解出这个数独。你将如何设计这个证明?

image

我们把数独写到卡片上。每张卡片上有一个数字。将他们按照答案排列好,正面朝下。小明可以随机选择一列,一行或者一块。小红将拿出小明所选择的那些卡片,随机打乱后,将这些卡牌翻过来,正面朝上。如果这些卡牌是不重复的 1-9,那么小明知道小红解出了数独的某一部分,但也或许是运气。重复以上步骤,如果每次都是正确的。那么就几乎不可能是小红运气好,而是小红真的知道答案。虽然小明得知小红解出了数独,但是小明仍旧不知道数独的答案。

image

如果你还是有点疑惑,欢迎观看这个视频。UCLA 的计算机教授将以 5 种难度形式,解释什么是 ZK。

 

常见零知识证明流派

 

在介绍零知识证明流派之前,大家要注意我们常说的 ZK-SNARK 不是一种算法,而是一种流派。ZK-STARK 是一种具体零知识算法的名字。

我们最常见的可能是 ZK-SNARK。SNARK 的缩写是 succinct non-interactive arguments of knowledge。SNARK 最特殊的点在于他的 N,非交互性。

  • 简洁性(Succinct):验证所需要的计算资源远远小于重新跑一遍需要证明的程序。
  • 非交互性(Non-interactive):证明者和验证者不需要每一轮都沟通。他们只需要在一开始完成可信初始化(Trust Setup):其他验证者也可以在可信初始化之后加入验证。
  • Argument:如果证明者有着无比强大的算力,那么他可以生成假证明。如果这种情况发生,主流的公私钥加密模式也不再安全。
  • 知识(Knowledge):证明者需要知道一些其他人不知道的秘密,才能生成证明。

ZK-SNARK 最大的问题在于它需要可信初始化(Truest Setup)。可信初始化会生成参考字符串(Reference String)。如果 RS 被泄露,那么任何人都可以生成虚假证明。此外,如何设计多人参与的可信初始化也很具有挑战性。RS 还只能被用于指定的程序。对于其他的程序,我们需要另外的可信初始化。因此 ZK-SNARK 不可能用于通用计算。另外一点,RS 不能升级。如果我们升级了程序,可信初始化要重新运行。

为了解决这一系列的问题,科学家们找到了两个方向:

  • Transparent Setup:可信初始化生成公共参考字符串(Common Reference String)。CRS 是公开的,不需要保密。Fractal,Halo,ZK-STARK,SuperSonic 都是采取了这一条路线。这一条路线的问题是生成的证明占用太多的存储,来到了 kB 的量级。对于区块链来说,存储是非常昂贵的。
  • Universal Setup:可信初始化生成了结构化参考字符串(Structure Reference String),但它需要保密。SRS 让可信初始化可以用于不同的程序,这让通用计算的证明可能实现。Marlink,SuperSonic-RSA 和 Plonk 都采用了这条路线。

业界广泛采用以下几种算法:

  • Groth16:Zcash 一开始使用了这种算法。它是零知识证明中的跑分对照组,因为它具有证明快,生成的证明小的特点。它的缺点是需要可信初始化,并且一次可信初始化只能针对一个程序。它拥有最完善的工具链。
  • Sonic:支持 Universal Setup. SRS 的大小和程序大小成线性关系。生成的证明是固定大小,但是验证需要消耗很多的计算资源。Sonic 让通用计算的零知识证明变为可能。
  • Fractal:支持递归(Recursion)。生成的证明占用较多空间。
  • Halo: 支持递归,但并不满足简洁性(Succinct)因为证明时间是非线性的。Halo2 是目前主流使用的证明系统。
  • SuperSonic:第一个实际的,可以应用的 Transparent ZK-SNARK。
  • Marlin:程序可以升级。性能处于 Sonic 和 Groth16 之间。
  • Plonk:程序可以升级;参与者按照顺序加入可信初始化。这让进行有很多人参与的可信初始化不那么复杂;Plonk 使用 Kate commitments 而不是多项式承诺(ZK-SNARK 的第一步是将计算问题转化为多项式问题)。许多现代化的零知识证明系统都构建与 Plonk 之上。Plonk 有着非常优秀的工具链。

如果你想挑几个算法仔细研究,Groth16,Halo,Plonk 是最好的选择。

CRS 是 Transparent Setup 路线中生成的公共参考字符串。SRS 是 Universal Setup 路线中生成的结构参考字符串。证明的大小将决定要占用 Layer1 多少的存储空间。证明和验证的时间决定了计算资源的消耗。

image

Source: Comparing General Purpose zk-SNARKs

下图是零知识证明算法的 Benchmark,基于这个实验

image

Source: Comparing General Purpose zk-SNARKs

以下有更多的 Benchmark 和算法对比:

Benchmarking Zero-Knowledge proofs with isekai | by Guillaume Drevon | Sikoba Network | Medium

Zero-Knowledge Proofs: STARKs vs SNARKs | ConsenSys

Community Proposal: A Benchmarking Framework for (Zero-Knowledge) Proof Systems (zkproof.org)

Comparison of Different zk-SNARKs

总结以下,当我们看到一个新的 ZK 算法时候,以下指标是我们需要在意的:

  • 一笔交易和十笔交易的证明时间
  • 一笔交易和十笔交易的验证时间
  • 一笔交易和十笔交易打包后的证明大小
  • 可信初始化
  • 参考字符串长度
  • CRS 支持
  • SRS 支持
  • 递归证明支持
  • 能否抵抗量子计算机
  • 安全性基于任何密码学假设

ZK 在最近几年走出实验室,逐渐步入应用。ZK 两个主要应用方向是 Rollup 和隐私。ZK 对于隐私产品的变革是显而易见的,得益于 ZK 可以让验证者不获得任何额外信息。Rollup 依赖于 ZK 的两大特性:简洁(Succinct)和递归(Recursion)。简明的特性有助于验证者节省大量的计算资源。验证者不需要重新运行整个程序。递归特性有助于节省存储空间。通过递归,区块链可以保持一个固定的大小。这也有利于去中心化,因为这样的区块链节点在什么样的硬件上都可以跑起来。

image

 

ZK 应用开发流程

 

独立开发一个 ZK 应用非常复杂,开发需要掌握以下技能:

算法,底层算数,优化技能。开发者需要这些技巧来解决一些有限域算术、多项式承诺和椭圆曲线问题。

ZK 证明系统,如 ZK-SNARKs、Plonkish 和如何可信初始化。开发人员需要选择适当的 ZK 证明系统,并对其进行定制。

电路编程技能。开发者需要讲常用密码学算法编写成电路,如 Merkle Tree 和 Hash。

应用和密码学协议开发。

有效的开发工具可以加速开发过程,也可以降低复杂性。例如,像 Circom 这样的工具可以解决底层代数和证明系统。开发人员可以忽略代数和 ZK 证明系统,专注于电路编程和应用开发。

 

Rollup 机制

 

Rollup 的想法很简单。由于链上计算较为昂贵,因此 Rollup 希望安全地将计算移动到链下,并只在链上存储计算结果。

哈希树的状态根存储在 Rollup 合约中。Rollup 智能合约从 Layer2 提交的信息中更新状态根。

image

Source: An Incomplete Guide to Rollups (vitalik.ca)

image

Source: An Incomplete Guide to Rollups (vitalik.ca)

ZK Rollup(ZKRU) 使用零知识证明来确保从 Layer2 提交的新状态根是正确的。验证者只需要验证这个证明就可以确认新状态根的正确性。验证者并不需要一个个重新执行 Layer2 提交的交易。这大大节省了验证者的工作量,提升了 TPS。这节省计算量的部分体现了零知识证明的简洁特性。依赖于零知识证明的简洁性,完备性,合理性,ZKRU 得以安全地提升 TPS。(完备性和合理性是证明系统的必备特性。完备性 Completeness:如果证明是有效的,验证方一定会相信证明方的断言。真的假不了;合理性 Soundness:虚假断言不可能生成有效的证明。假的真不了。)

ZKRU 整体来说优于 Optimistic Rollup(OPRU)。OPRU 的 TPS 略差,并且需要更长的提款周期,因为它依赖于欺诈证明(Fraud Proof)。那么等 ZKRU 全面铺开以后,不就是 ZKRU 碾压 OPRU 了吗?并且 OPRU 目前的生态并不算过于领先。OPRU 并没有坐以待毙,他们尝试将 ZK 融入自家的解决方案来提升 TPS,解决原生提款周期过长的问题。例如,他们将 ZK 应用于状态变化,这样就可以缩短欺诈证明所需要的时间了。

 

角色

 

在 Rollup 的体系中,一共有三个角色:

  • 用户:用户在 Layer2 提交交易。他们从 Layer1 充值资产至 Layer2
  • Rollup 节点:Rollup 节点负责维护 Layer2 网络的正常运行。它们需要生成证明,执行交易,打包交易,参与欺诈证明
  • Layer1: Layer1 保证了 Layere2 的安全性,并负责共识的达成。大部分 Layer1 目前都是以太坊。

image

Source: Understanding rollup economics from first principles

 

经济模型

 

经济模型中最重要的就是成本和收入。对于 Layer2 来说,支出基本上是以下几个:

  • 生成证明的计算成本
  • 切换状态的计算成本
  • Layer1 交易手续费
  • Layer1 数据存储成本

其中 Layer1 数据存储成本最为昂贵。这张图展示了数据的传递。首先用户递交交易给 Rollup 节点。Rollup 打包多笔交易并生成证明,存储在 Layer1 中。

image

Source: Understanding rollup economics from first principles

这张图展示了 Rollup 在 Layer1 上的支出已经它们的收入:

image

Source: L2Fees.info in 3/28/2022

Layer2 最常见的收入是手续费和 MEV。手续费基于网络的情况,MEV 则取决于用户的交易。Layer2 也会发行属于自己的代币,并且奖励给 Rollup 节点。

 

常见 ZKRU

 

这张图展示了常见 Layer2 以及他们的市场占比。目前 Arbitrum 占据市场半壁江山。

image

Source: https://l2beat.com/ on 3/28/2022

下图展示了不同 Layer2 使用的不同技术:

状态验证(State Validation)

欺诈证明(Fraud Proofs):允许白名单执行者监控链上交易,并指出错误状态。

零知识证明(ZK proofs (ST)):使用 ZK-STARKs 来证明状态的正确性。

SN:ZK-SNARKs

仅在退出验证(Exits Only):退出网络时,状态会被验证。中间状态并不会被验证。

互动证明(INT):需要多笔交易来解决纠纷。

一轮(1R):只需要一轮证明来解决状态纠纷。

数据可用性(Data availability)

链上(On chain):构建证明需要的所有数据都在链上。

外部数据委员会(External DAC): 构建证明需要的所有数据都不在链上。数据委员会负责保护和提供数据。

外部(External): 构建证明需要的所有数据都不在链上。

升级(Upgradability)

是(Yes): 可以随时升级,不需要任何公告。

21 天延迟或无延迟(21 day or no delay): 有 21 天的延迟,除非安全委员会多签通过了立即升级。

故障序列(Sequencer Failure)

L1 交易(Transact using L1):用户可以在 L1 提交一笔交易来强制 L2 打包自己的交易。

强制交易/L1 退出(Force trade/ exit to L1):用户可以在 L1 提交请求来强制 L2 打包自己的提款请求,但这意味着用户需要找在系统之外找到交易对手方。

强制 L1 退出(Force exit to L1):用户可以在 L1 提交请求来强制 L2 打包自己的提款请求。

构建区块(Propose blocks(ZK)):用户需要自行运行节点来构建区块。这个区块包含了用户想要打包的交易。这要求用户自行计算 ZK 证明。这对算力有很大要求。

L1 退出(Exit to L1):用户只能在 L1 提交提款请求。

验证失败(Validation Failure)

逃生舱(Escape hatch(MP)):用户可以在无需信任的情况下拿回押金。用户需要提交资金的哈系树证明。押金将会以上一次状态中的平均价格退出。

构建区块(Propose blocks):用户需要自行运行节点来构建区块。

image

Source: https://l2beat.com/ on 3/28/2022

image

Source: https://l2beat.com/ on 3/28/2022

Ethhub 列出了 ZKRU 的几个主要优缺点:

优点

降低用户手续费

优于 OPRU 的性能, 手续费,提款周期

区块可以并行运算,有利于去中心化

更高的 TPS

更短的提款周期,优于欺诈证明

缺点

计算证明需要大量的资源

ZKRU 的可信初始化较为中心化

量子计算可能会损害安全性

安全假设包含不可验证的信任

目前大部部分 ZKRU 只支持支付和有限的功能。zkSync 是 Gitcoin 的支付层。ZKRU 大多使用自定义虚拟机,并不兼容 EVM。例如,StarkEx + Cairo 和 zkSync 1.0 + Zinc。

ZKEVM 是 ZKRU 的下一个里程碑。ZKEVM 可以划分为三个等级:

共识级:ZKEVM 和主网上的 EVM 等价。生成的状态根是通用的。以太坊在未来计划实现主网上的 ZKEVM。

字节码级:ZK 证明系统在这个阶段非常重要,需要对 EVM 友好。字节码级的 ZKEVM 生成的状态根与 EVM 的状态跟格式不一样,因为 ZKEVM 采用不一样的密码学算法。EVM 使用的那些对于 ZK 证明系统不友好。Scroll 和 Hermez 采用这个解决方案。

语言级:在这个级别,并没有真正的 ZKEVM。一个转译器将 Solidity 编写的智能合约或者字节码转译成自定义虚拟机可以执行的格式。zkSync 和 Starkware 都是采用这个解决方案。这个方案的缺陷是,并不能兼容 EVM 的所有功能。

以太坊基金会的 Justine Drake 计划在 2022 年底看到可用的字节码级 ZKEVM,但会有以下限制:

与主网相比,较小的 Gas Limit。

中心化节点由于生成证明需要大量的算力。用户将在 2023 年使用他们的 GPU 生成证明。2024 年,ASIC 将投入使用。节点运营者将从 CPU 到 GPU,FPGA,最后到 ASIC。

由于 ZKEVM 的工程复杂度,ZKEVM 会存在 Bug。

为了进一步降低手续费,一些 ZKRU 正在实现 Volition,将数据存储的地方从以太坊到链下。

市场上目前有 16 个 ZKRU,其中 7 个发行了代币,总市值 150 亿美金,占加密货币总市值的 0.67%。

 

Polygon

 

Polygon 目前在实现 4 个 ZK 产品:

Miden:实验性质的 ZKRU 通用计算平台,TPS 1k+ ,15 min 提款,5 秒产出 1 个块,隐私交易。

Nightfall:Nightfall 是一个 ORU,集成了 ZK 来实现隐私交易。一笔交易需要 9k Gas,110 TPS,为安永会计师事务所设计。

Hermez:EVM 兼容的 ZKRU,2k TPS。目前网络已经上线,几乎没有交易量(数据来自区块浏览器)。

Zero:通用 ZKRU 计算平台,支持递归。只需要 0.17s 就可以生成证明。证明大小 45 kB。一个账户只占用 5 bits。

 

zkSync

 

zkSync 由 Matter Labs 创立于 2019/12 基于 Plonk 开发。目前 zkSync 支持支付功能以及有限的智能合约功能。智能合约需要用 Zinc 进行开发。

zkSync 2.0 测试网在 2022/2 上线,兼容 EVM。Matter Labs 将大部分 OPCODE 电路化实现在不修改证明系统的前提下,实现 EVM 兼容。目前 zkSync 2.0 并不支持 ADDMOD,SMOD,MULMOD,EXP,CREATE2 和 KECCAK256。在这种解决方案下,Solidity 成为了一等公民。

zkSync 2.0 的 Gas Price 是根据以太坊主网 Gas Price 和 ZK 证明成本动态变化的。受以太坊主网 Gas Price 影响的原因是 zkSync 会将数据打包存储到以太坊主网。

为了进一步降低手续费,提高 TPS,zkSync 计划发布 ZKPorter。用户可以选择将他们的账户数据存储在 ZKPorter 上来降低手续费。如果一个账户数据存储在 ZKPorter 上,则它所有的交易都将由 ZKPorter 确保数据可用性,交易不再能提交到以太坊主网上。

以下是关于 zkSync TVL 和资金种类的图表。大部分 zkSync 上的资金都是稳定币。

image

Source: Dune on 3/28/2022

image

Source: Dune on 3/28/2022

 

Starkware

 

Starkware 在 2018/5 由 Zcash 核心团队成员创立。

Starkware 有两个产品:StarkEx,StarkNet。

StarkEx 是一款 SaaS 产品,为项目方提供 ZKRU 解决方案。目前客户包含 dYdX,DeverseFi,Immutable,Sorare。dYdX 每周有 4k 活跃用户。

image

Source: Layer 2 Public Dashboard · Metabase (dydx.exchange)

image

Source: Layer 2 Public Dashboard · Metabase (dydx.exchange)

StarkNet 是更加开放的 ZKRU 相比于 StarkEx,任何人都在可以在上面部署合约。StarkNet 目前不兼容 EVM。StarkNet 使用 Cairo 来编写智能合约。

Starkware 也在推进 ZKEVM。他们用了和 zkSync 不一样的解决方案。他们使用 Warp 来将 Solidity 编写的智能合约转译成 Cairo。这个解决方案并不如 zkSync 的解决方案,对 Solidity 的兼容性较差。

StarkNet Alpha 兼容 ZKEVM 在 2021/11 上线。目前每日交易数量为 1033(数据来自区块浏览器)。

 

Loopring

 

Loopring 是一个基于 ZKRU 的交易所,提供低手续费的交易体验,可以达到 2k TPS。

Loopring 在 2018 发行了代币 $LRC。目前市值为 13 亿美金。Loopring 总共有 65k

用户,每天用户增长数为 167,每日交易量为 10896(数据来自区块浏览器)。

dYdX 是 Loopring 强力的竞争对手。在未来,当 ZKEVM 正式投入应用,会涌现出一大批 DEX,因为 Solidity 的开发速度比开发 Layer2 快很多。新的项目 Fork 也很快。整个交易所的竞争将非常激烈。

 

ZKRU 中的机会

 

在过去,我们经常听到一些高 TPS,低手续费的链标榜自己为以太坊杀手。随着时间的推移,大部分以太坊杀手杀死了自己。剩下的链都找到了自己的发展方向,如 DeFi,GameFi。这些链也有了自己的特色应用和完整的生态。

现在开发一条高 TPS,低手续费的链不难,难就难在生态和特色应用。因此我们不能只关注纸面性能数据,而要注重用户,生态和特色应用。

Layer2 具有的特点是高 TPS,低手续费,完整的生态。虽然不少 Layer2 ZKEVM 主网还没上线,但是已经和很多项目达成了合作。

Moonbeam 目前的状态就很像一条 Layer2。它背靠 Polkadot,和大 DeFi 项目有合作,有完整的 DeFi 生态和跨链桥,但是缺少特色应用。下图是 Moonbeam 的 TVL 图。

image

Source: Defillama on 3/29/2022

因此完整的生态对于 Layer2 是不够的,Layer2 还需要发掘出它的特色。

 

特色应用

 

能够充分利用 Layer2 长处的特色应用将是 Layer2 之间竞争的关键。目前我们发现的是类似 dYdX 的交易所可以充分利用低手续费,高 TPS 。另一个有潜力的应用便是链游,他们的需求与交易所类似,也是低手续费,高 TPS。

 

跨 Layer2 应用

 

Layer2 们共享同一个 Layer1,因此构建跨 Layer2 应用将安全的多。我们期待看见开发者利用这个特性,实现一些具有创新的应用。这些应用将不能被复制到跨链生态中,因为只有 Layer2 才共享同一个 Layer1。例如 Starkware 提出了聚合跨链流动性的构想,所有流动性存储在 Layer1,但是可以在 Layer2 中进行使用。

 

开发组件

 

开发 ZK 应用是复杂的,开发者需要了解代数,证明系统,电路编写和协议开发。因此他们需要一些合适的开发工具来加速开发,做适当的抽象,省去一些底层的开发。

除此之外,定制化 Layer2 也将在未来有绝佳的市场。这类型的开发框架可能类似 Cosmos SDK 和 Polkadot 的 Substrate。

当一个应用变得热门,它不可避免的需要占据更多的计算资源。为了降低手续费,它可以选择做一条自己的链,迁移到 Layer2 和自己定制一条 Layer2.

Axie Infinity 便面临着一样的问题。在那个时候,Layer2 还不成熟,定制 Layer2 的成熟方法也根本不存在。因此 Axie Infinity 只能自己开发一条链,来自定义手续费。这带来了几个问题:

  • 不能和以太坊共用生态
  • 无法享受以太坊的流量
  • 跨链桥安全性

在不远的未来,迁移到 Layer2 或许是一个不错的选择,但是在 Layer2 开发终将面临一样的问题。应用并没有完全的自主性,还是会面临一些限制,所以最有前景的选择是定制化做一条 Layer2。如果那时候跨 Layer2 非常的成熟,Layer2 和以太坊的交互也很方便,定制化的 Layer2 的使用体验将无比丝滑。

 

与以太坊结合

 

Layer2 如何与 Layer1 结合也是一个有意思的方向。只有 Layer2 和 Layer1 良好结合,用户才更容易从 Layer1 迁移到 Layer2。这包含了更好的资产桥和通讯协议。

 

不同的 VM

 

ZKEVM 是 ZKRU 的下一个里程碑。ZKEVM 分为三个级别:

语言级别:在这个级别,其实并不存在 ZKEVM 。我们有一个 ZK 友好的自定义 VM 和一个转译器。转译器将 Solidity 编写的智能合约翻译成这个自定义 VM 可以执行的形式。zkSync 和 Starkware 都采用这个形式。这个形式的好处是开发速度快,但是无法兼容 EVM 的所有功能。

字节码级别:在这个级别我们有一个完全兼容的 ZKEVM 。我们的证明系统对于 EVM 非常友好。缺点是这一级别生成的状态根和主网 EVM 的状态根根式不一样。Scroll 和 Hermez 正在实现这一级别的 ZKEVM ,预计在年底可以推出。

共识级别:共识级别的 ZKEVM 运行在主网上,这一级别的 ZKEVM 和 EVM 别无二样。

除了 ZKEVM ,我们可能也会看到其他虚拟机,例如 ZKWASM 等。

 

Layer2 在其他链

 

zkLink 在 Solana 推出了 Groth16。ZKRU 在其他链上或许也有机会。ZKRU 可以赋予项目更大的自由,以及隐私性。对于企业来说,他们有必要保护客户的隐私。因此 Layer2 也是让这些企业上链的一个机会。

 

ZK 桥

目前大家都在努力实现一个无需信任的跨链桥,但所有的桥都需要相信第三方。虽然这些桥都要求参与者抵押资产,但我们很难具体计算作恶的成本和收益。ZK 可以应用在跨链桥中,用来生成交易证明。这样我们就不需要相信预言机所传递的信息,只需要对证明进行验证就好。目前 ZK 跨链桥的问题在于如何生成区块的证明,而且扩展性堪忧。不同的链需要开发不同的电路来生成对应的区块证明。

 

ZK 商业算法

商业算法广泛出现在专业领域,例如线性求解器,GPT-3等。如果 ZK 始终维持着高入门门槛,开源便不能帮助其降低开发和维护成本,因为没有人有能力来为其做贡献。在这种情况下,便会出现 ZK 商业算法。目前大部分 ZK 从业者拥有 Ph.D. 学位。

 

定制化芯片

随着更多的用户流入 Layer2,Layer2 将捕获更多的价值。矿工们也将进行军备竞赛,购买性能更强大的矿机。在以太坊的路线图中,未来将集成 ZKEVM 。Filecoin 目前也投入了 ZK,矿工需要是生成证明。这也就是说矿工必须需要一枚可以快速生成零知识证明的芯片。

纵览以太坊和比特币矿机,一开始矿工们使用触手可得的 CPU 和 GPU 进行挖矿。在这个阶段,软件开发者需要为算法适配硬件加速。在这之后 FPGA 出现了。FPGA 具有更好的能耗比,更强的性能,并且是可编程的。用户可根据算法的不同,对 FPGA 进行编程,来适应算法。ASIC 最后出现,因为它的设计,量产需要更长的时间。ASIC 具有最好的能耗比,最强的性能,但是缺点是生产周期长,并且不具备可编程性。

未来是属于 ASIC 还是 FPGA 将取决于这些 Layer2 会不会频繁切换证明系统。每年都有更好的证明系统被开发出来。如果 Layer2 频繁进行切换证明系统,只能适用于单一计算任务的 ASIC 将被迫不断推出新产品,但同时 Layer2 切换证明系统也会带来很多工程化上的问题,例如重新适配 ZKEVM。

 

递归

递归可以使区块链有更小的体积。更小的体积意味着节点可以运行在低端设备中。这非常有利于去中心化。简洁的特性使区块链可以无副作用的提升 TPS。因此递归和简洁将可以打破区块链的不可能三角:安全性,去中心化和 TPS。

 

隐私

 

ZK 已经被用于很多隐私项目中。例如,Tornado Cash,Zcash,Dark Forest。保护隐私分为三个阶段:

交易隐私:用户可以隐藏他们的交易。

通用计算隐私:目前以太坊上的所有计算过程都是公开的。任何人都可以看到输入,输出,和状态转换。通用计算隐私将隐藏这些计算过程。

函数隐私:有时调用函数的名称会泄露信息。例如,mint() 往往意味着铸造代币。函数隐私将隐藏函数的调用记录。

目前隐私赛道的总市值约为 100 亿美元,约占整个加密货币市场的 0.45%。每日交易量约为 10 亿美元。

 

Tornado Cash

 

Tornado Cash 是一个基于智能合约的隐私交易工具。它可以用来匿名转账,现在支持以太坊, BSC,Polygon,Optimism,Arbitrum,Gnosis 和 Avalanche。

存款,获得凭证,提款。用户就可以完成一笔隐私转账。在新版 Nova 中,用户可以选择任意的提取金额。ZK 用于生成提款凭证。

下图展示了 Tornado Cash 的 TVL 和用户增长。

image

Source: Dune on 3/28/2022

image

Source: Dune on 3/28/2022

下图展示了 $TORN 的价格。$TORN 是 Tornado Cash 的治理凭证以及提供流动性的奖励。

image

Source: Trading View 3/28/2022

 

Zcash

 

Zcash 是一个使用 ZK-SNARK 来实现隐私交易的区块链。与基于智能合约的 Tornado Cash 不同,Zcash 使用了一条链来实现隐私。

下图展示了 Zcash 链上每日交易量。

image

Source: Zcash Transactions Chart on 3/28/2022

下图是 $Zcash 的价格走势。

image

Source: Trading View 3/28/2022

 

Zecrey

 

Zecrey 是一个支持以太坊、Polygon、BSC、Near 和 Avalanche 的隐私支付应用。它处于保护隐私的第一层,交易隐私。Zecrey 提供一个浏览器钱包,用户可以用它匿名转账,交易代币。这些匿名性都由 Zecrey Layer2 保证。因此用户需要先将钱存到 Zecrey Layer2 中才可以使用这些匿名功能。 Zecrey Layer2 是 ZKRU 基于 Plonk。Zecrey 还支持资产跨链。目前 Zecrey 每日交易量大约为 10 笔(数据来自区块浏览器)。

image

Source: Zecrey

 

Suterusu

 

Suterusu 是一个支持以太坊、BSC、Fantom 和 Polygon 的隐私支付应用。它使用 Layer2 来保护用户的交易隐私。它还有一个跨链桥,可以在以太坊和 BSC 之间转移 $SUTER。未来它计划推出 NFT 匿名转账以及匿名拍卖。Suterus 采用 ZK-ConSnark,这种算法不需要信任设置。

Suterusu 共有 15k 用户以及 24k 笔转入。目前用户增速非常缓慢。Suterusu 的市值大约 1000 万美金。

image

Source: Suterusu

 

Dark Forest

 

Dark Forest 是一款多人网络游戏。玩家需要占领更多的星球,获得更多的资源。玩家可以向其他星球输送能量来占领它们。星球的位置是保密的。玩家需要利用哈希碰撞自己找到这些星球。ZK 被用来证明与位置有关的操作:

行星初始化

行星资源的转移

在 Dark Forest v0.6 第一轮中,有 1700 名玩家参加。其中 700 人得到了进入下一轮的机会。在第一轮中,玩家们一共提交了 200 万笔交易,花费了大约 1.5 万亿 Gas。假设它是在以太坊上,Gas Price 是 80,那么这些玩家的手续费总共是 120 ETH。

 

Stealth Airdrop

Stealth Airdrop 允许用户匿名地领取空投。用户首先使用他们满足空投领取条件的钱包来生成零知识证明,接着他们可以用其他钱包和这份证明来获得空投代币。

Stealth Airdrop 代表了 ZK 在治理方面的运用。在现实世界的治理中,我们也广泛应用匿名这个特性。例如在投票中,如果你发现有影响力的人物都投了赞成票,你也会受其影响,更有可能投出赞成票。因此匿名投票可以帮助用户独立投票。

在 2021 年,以太坊基金会对于 ZK 的资助主要集中在 ZKEVM 和治理方面。以太坊基金会主要资助了两个项目,其中一个就致力于解决投票贿赂问题。

A16Z 也实现了类似的东西 a16z/zkp-merkle-airdrop-contract。

zkProof of Buffiness
这个项目在 ETHDanver 上发布。用户可以生成 ZK 证明来展示他们拥有一个 Buffiness,而不透露他们的个人身份信息。这是 ZK 在身份认证相关的应用。

image

Source: zkPoB

 

总结

 

隐私市场较小。隐私项目很早就出现了。Zcash 始于2016 年。然而,整个隐私市场只占加密货币市场的 0.45%。起步晚的 Layer2 也远超隐私市场。

将会受益于更高的隐私标准。在不牺牲易用性的情况下,用户会追求更好的隐私保护。特别是在手机行业,谷歌和苹果正在推动更严格的隐私标准。欧盟也提出保护消费者隐私的法规。像 Let's Encrypt 这样提供 SSL 证书的基础设施公司更严格的意思标准中受益。在未来,当 ZK 因为更好的隐私保护而会被这些巨头公司采用时,ZK 基础设施将有巨大的机会。

ZK 是金融机构入驻的必备条件。一些机构在尝试上链,他们有责任保护好客户的隐私。因此 ZK 在这个场景下将成为区块链的标配,来提供隐私功能。

有利于 DAO 治理和身份。匿名在民主治理有着重要应用。ZK 可以实现匿名投票,让投票者独立思考,不被他人的决定所干扰。身份验证也可以从 ZK 中受益。用户可以在不显示其实际地址的情况下展示其资产。

忽略 ZK,专注于产品的易用性。ZK 可以更好地保护隐私,但一个产品并不全是 ZK。ZK 是一种技术,我们更需要强调产品的易用性。通常,更好的隐私保护并不意味着易用性,但易用性是最关键的。因此,要更加关注易用性、市场和团队。

 

另一个有趣的项目

 

ZKRepel

ZKRepel 在 GR13 中成功母子 5000 万美金。ZKRepel 是要给在线 Playground,开发者可以快速体验如何编写电路,并生成证明。ZKRepel 比较像早期的 Remix。

大环境上,我们看到了从本地开发到云开发的范式转变。在这之中有一些著名的产品,如Codesandbox,Codepen,Codespaces。有了这些产品,开发人员可以在任何地方任何时间使用他们的开发环境。开发者也可以快速建立新的开发环境。Github 提出面对日益复杂的软件开发,开发环境作为基础设施是必不可少的。Github 内部开发环境已经迁移到了自家的 Codespaces。

目前没有关于 ZK 开发者数据的明确统计。从 Github 上的数据来看,ZK 开发者比 Solidity 开发者少了 500 多倍。

image

Source: ZKRepel

 

更多的 ZK 项目

 

image

Source: How to fund your ZK Project?

以下项目专门自主或者投资 ZK 项目。

ZKTech Gitcoin Grants: 第一轮中为 19 个项目中匹配了 10 万美元。

0xPARC Grants:支持以太坊和其他去中心化平台在应用层面的创新。

zkDAO:由 zkSync 和 BitDAO 支持的新推出的 2 亿美元基金,以支持 zkSync 生态。2 亿美元中的 7.5% 将用于Grants。

Polygon ZK基金

Aztec Grants:目前的重点是跨链桥、工具和分析。

Harmony ZK 基金:专注于 ZK 和隐私研究的 1000 万美元基金。

ZK Validator::专注于 ZK 的基金。过往投资有 Aztec, Penumbra, Ironfish, Anoma, zkSync, Aleo, Diversfi。

Aleo 推出的 ZPrice

Nil Foundation:致力于数据库和密码学方面的项目。

 

总结

 

ZK 的前景是美好的,它可以让一些过去不可能的事情变成现实。近年来,ZK 领域发生了很多突破性的进展,例如更强的性能、可升级性和不需要信任初始化。这些改进都将 ZK 推向了应用阶段。因此,如果我们要看到一个新的 ZK 证明系统,我们可以从以下维度进行评判:

一笔交易和十笔交易的证明时间

一笔交易和十笔交易的验证时间

一笔交易和十笔交易打包后的证明大小

可信初始化

参考字符串长度

CRS 支持

SRS 支持

递归证明支持

能否抵抗量子计算机

安全性基于任何密码学假设

ZKEVM 是 ZKRU 的下一个里程碑,ZKEVM 有三个阶段:

共识级

字节码级

语言级

ZKRU 刚刚进入应用阶段,生态并不完善。开发者们还没有发掘出 ZK 的所有潜力。人们仍不断从这些前沿理论中得到启发,以下是值得关注的方向:

充分利用高 TPS 和低手续费的应用程序

Layer2 之间的通信协议/应用程序

聚合流动性

开发工具/框架

基于云的开发工具

具有独特功能的跨 Layer2 Layer1 应用程序

不同的 ZKVM

ZK 桥

在其他链上应用 ZK

拥有递归功能的 Layer2

ZK 在 DAO 和社区治理中的应用

商业化 ZK 算法

芯片和云计算

ZK 的应用聚焦在两个方面:Rollup 和隐私。Rollup 比隐私有更好的前景。隐私在某种程度上和区块链的开放精神相违背。另外,隐私可能有合规问题。在 Web2 时代,我们没有看到隐私应用程序达到龙头的位置。所有应用的隐私保护水平在不断提高,但龙头应用往往不是主打隐私的引用,而是易用性最强的应用。隐私是有代价的,大多数情况下牺牲了用户最关心的易用性。

当我们看 ZK 隐私项目时,以下几点较为重要:

ZK 只是技术,我们要专注产品力和团队

ZK 是个复杂的技术,会拖慢开发进度

ZK 有利于 DAO 治理和身份认证

ZK 是机构上链的必备技术

链捕手ChainCatcher提醒,请广大读者理性看待区块链,切实提高风险意识,警惕各类虚拟代币发行与炒作, 站内所有内容仅系市场信息或相关方观点,不构成任何形式投资建议。如发现站内内容含敏感信息,可点击 “举报”,我们会及时处理。
ChainCatcher 与创新者共建Web3世界