原文作者:Ray
原文来源:ArkStream Capital 公众号
目前来看,区块链所有设计的出发点,本质都是围绕区块。交易构成区块数据,共识机制决定区块生成、验证和顺序。按照交易的角度思考,交易经过用户私钥签名发起,经由网络广播,进入全网交易内存池,区块构造者/MEV 搜索者/定序器挑选交易,提交交易列表给区块构造者,区块构造者/区块生产者向网络提交区块,区块验证者验证区块合法有效以后确认上链。按照区块的角度思考,区块要完成构造、提交上链和上链确认三个步骤。去中心化的设计机制,会为交易或区块的每个环节增加全网成本和安全性,以此实现机器信任。合法的最长区块链,我们称之为主链/一层网络/基层链/Layer1。
在软件设计开发领域,设计模式有单一职责、设计架构有分层架构,设计原则有高内聚低耦合,这一切的理论和指导为的都是以模块化的思想重构软件。区块链的模块化,可以从数据可用(数据层)、逻辑执行(执行层)和共识机制(共识层)三个主要层面进行划分。如果将扩容对应到这三个层面,那么,分别会有数据层扩容、执行层扩容和共识层扩容。为了简化,我们按照主链变动与否,分为链上扩容和链下扩容。链上扩容方案有增加区块大小、分片、调整共识机制。链下扩容方案有隔离见证、状态通道、侧链、Plasma、Rollup。DeFi 的爆发和 NFT 的盛行让以太坊网络的扩容需求日益激增,2021 年 12 月,Vitalik 发布了《Endgame》,描绘了以太坊的未来将会是中心化出块、去中心化验证以及多 Rollup 并存的。在 Vitalik 的大力支持下,Rollup 成为了以太坊链下扩容的主流方案。在众多的 Rollup 细分方案中,按照技术类型,可分为 Optimisitc Rollup(ORU)和 ZK Rollup(ZKR),他们之间主要的区别是交易有效性保证方案不一样,Optimistic 采用博弈的欺诈证明,ZK Rollup 采用数学的零知识证明。
不管是 Optimistic Rollup、还是 ZK Rollup,它们都要在继承以太坊的安全性和数据可用性前提下,处理大量的交易和支持智能合约的通用计算。Optimistic Rollup 是将大量的交易数据进行压缩,然后把压缩以后的交易数据和状态根提交到以太坊。另外,Optimistic Rollup 网络设有挑战者的角色,它们可以对提交到以太坊的数据进行欺诈证明,然后再经由 Optimistic Rollup 网络共识回滚无效的交易。至于 ZK Rollup,批量处理交易数据的时候,使用了零知识证明技术,在保证了交易数据有效性的基础上,直接将证明提交到以太坊,即时达成状态的最终一致性。在智能合约通用计算方面,Optimistic Rollup 是直接延用以太坊 EVM,而 ZK Rollup 的团队要么是研发 zkVM、要么是采取 zkEVM 的道路,所以,dApp 的项目可以在 Optimistic Rollup 无缝迁移,而在 ZK Rollup 网络大部分都需要做可大可小的改动。
不同种类的 Rollup,设有特别的网络参与者,ORU 有提出欺诈证明的挑战者,ZKR 有进行计算和聚合零知识证明的计算证明者和聚合者。Layer2 通过将二层网络的交易批量处理(Rollup)以后,提交到一层网络特定的智能合约,由此获得一层网络的安全性和数据可用性。此时,一层网络的去中心化程度、区块验证机制都会成为二层网络交易有效性的背书。
在 Layer2 网络技术方案和架构,相比于采用博弈模型的 ORU,采用零知识证明,能进行数学验证的 ZKR 将更有技术优势,只是后者发展相对缓慢,需要更多的时间,因此也有大量的项目在这个领域进行前瞻式的探索。接下来,我们将探讨多个 ZKR 相关项目。
Starkware:基于自研 STARK 协议,发明 Cairo 电路编程语言及其 zkVM 的技术服务商。产品线有专用型的 StarkEx 和通用型的 StarkNet。StarkEx 定位是服务特定应用需求的二层网络扩容引擎,已经服务不少客户,例如 Sorare、Immutable、dYdX(V3)、DeversiFi(rhino.fi)、Celer 等,现在也有超过 6 亿美金的 TVL、2 亿多的交易量等业务数据。
StarkNet 定位是通用的、可组合的、去中心化的 ZKR。整个 StarkNet 的核心参与者:StarkNet OS、STARK Prover 和 Blockchain Dispatcher。StarkNet OS 类似于 EVM 在以太坊的角色,承担交易排序和交易零知识证明计算任务分派。STARK Prover 是交易零知识证明的证明方,负责计算证明。Blockchain Dispatcher 是 L1/L2 网络之间通信的桥梁。
Figure1: StarkNet Intro
Figure2: StarkNet Messaging Mechanism L2->L1
StarkNet 官方网关 StarkGate 已经发布上线,会不定期开放限制额度的存取款体验,现在桥接的资产总数大概为 775 个 ETH。Cairo 语言风格偏向 Golang 和 Python 之间,新增电路编程语言的原生类型:Field Element(felt),开发通用库偏少,主要是官方提供。不支持 zkEVM,也即不支持 Solidity 代码的直接编译部署,需要先通过 Warp 转译器转成 Cairo 代码再做部署,Solidity 部分特性明确不支持,其中影响比较大的是 SHA256。StarkNet 的生态项目涵盖钱包、DEX、DAO 等多个赛道,以原生项目为主,和以太坊 dApp 项目重合度较低,具体可以参考官方生态网站。从区块浏览器可以看到,目前没有频繁的交易数量,每个 Block 的平均交易数是 115 笔左右。
StarkNet 发布了多次 Alpha 版、当前处于 Constellations 阶段,正在研究和实现去中心化的 StarkNet OS 和 StarkNet Prover。
Figure3: StarkNet Decentralization Roadmap
zkSync:基于 PLONK 协议(1.0 版本)和自研无需可信设置的、透明的 RedShift 协议(2.0 版本/未来),支持 Solidity/Vyper 编程的 zkEVM 的 ZKR。zkSync 1.0 之前推出 Zinc 电路编程语言和对应的 SyncVM(zkVM),现在基本停滞,改为支持 Solidity/Vyper 编程的 zkEVM,也即 zkSync 2.0。现在处于 zkSync 2.0 测试网迭代阶段,未来 100 天将会发布主网和实现 zkEVM 开源。除了数据上链的 zkRollup 方案,zkSync 也推出数据不上链的 zkPorter 方案。zkSync 2.0 用 Operator 操作者和 System Contracts 系统合约的设计完成 L2 到 L1 合约部署功能、L2/L1 通信功能等。当前的 Operator 操作者由 zkSync 团队运行,未来将进行去中心化改造。由于 zkSync 宣称 EVM 字节码的兼容性,且作为社区驱动型项目,zkSync 获得不少以太坊知名 dApp 项目方支持,例如 1inch、Yearn Finance、Aave、Chainlink 和 The Graph 等。zkSync 的生态项目可以通过官方生态网站查询,Live 状态的有钱包、衍生品交易平台和桥等。从区块浏览器可以看到,提交确认的区块有接近 10 万,总交易数超过 1 千万,平均每个区块交易数为 100 笔。zkSync 2.0 测试网运行约有半年,一直在进行 zkEVM 的实现和以太坊 JSON-RPC 的兼容。zkSync 的 2.0 版本可能是最快上线的兼容 zkEVM 的 ZK Rollup,待其上线后,将很大程度上降低用户门槛,进一步吸引用户使用该 L2 网络。
Figure4: zkSync 2.0 100 Days to Mainnet
Scroll:原生 zkEVM 方案、集成 ZK 各项前研技术(多项式承诺、Lookup Table、递归证明)和 GPU/ASIC 硬件加速的 ZKR。Scroll 的 L2 网络由 Node(Replayer、Sequencer、Coordinator)和 Roller 组成,以及对应的 L1 上面的 Bridge 和 Rollup 智能合约。推荐大家直接阅读官方发表的架构讲解文章,非常通俗易懂。这里我们简单说说:Sequencer 接收 L2 交易,处理 L2 交易列表,构造区块和状态根,Coordinator 监控区块和分发区块的执行栈给 Roller,Roller 计算 zkEVM 的电路和生成聚合电路证明,再返回给 Coordinator,Coordinator 通过 Replayer 提交到 L1 的 Rollup 合约,Replayer 也承担 L1/L2 通信桥的功能。由于 Scroll 和以太坊基金会 PSE(Privacy & Scaling Explorations)共同在隐私和扩容问题研究一年多时间,Scroll 的 zkEVM 方案非常原生。从 Scroll 公开的代码仓可以看出,zkEVM 方案是与 PSE 一致联动的,而 L2 的 Node 会基于以太坊 Go-Ethereum(Geth)实现。近期 Scroll 有 Pre-alpha 测试网的注册。
Figure5: Scroll Architecture
Figure6: Scroll Workflow
Polygon(MATIC):最开始提出的时候是以太坊的侧链,在转变策略后,Polygon 并购了多个 L2 解决方案,开始进行大范围的扩容探索,这里我们将对其中几个涉及 zk 的 L2 方案进行简单的介绍。
Figure7: Polygon Scaling Solutions
Polygon zkEVM(Hermez):Hermez 1.0 采用去中心化竞价模型的 PoD(Proof of Donation)共识机制以及 ZKR 做的主打支付功能 L2,主网在 21 年 3 月上线,区块浏览器,断断续续有批量产生的交易。Hermez 2.0 调整为 zkEVM 方案的 L2,共识机制升级为 PoE(Proof of Efficiency)。Hermez 2.0 的 L2 架构图如下,可以看出和 Scroll 的架构很类似,我们就不再复述 L2 各方角色交互的基本流程和作用。在 zkEVM 发挥核心作用的是 zkProver(同比 Scroll 的 Roller),我们一块看看 zkProver 的内部组成。zkEVM 以多项式形式表达状态流转(参考上一篇文章的虚拟机部分,多项式形式/约束直接理解为零知识证明的电路)。
Figure8: Skeletal Overview of zkEVM
zkProver 内部包含 Main State Machine Executor(Executor),Secondary State Machines(STARK Recursion Component),STARK Builder(CIRCOM Library)和 SNARK Builder(zk-SNARK Prover),括号为另一种理解方式,参考图。
1. Main State Machine Executor:是将交易的 EVM 字节码用 zkASM(zero-knowledge Assembly language)进行解释和设置多项式约束,与此同时,Polynomial Identity Language(PIL)用于编码多项式约束。
2. Secondary State Machines:将 zkEVM 的交易对应的状态流转进行拆分,用对应多个状态机去计算和验证交易的正确性。
3. STARK Proof Buidler:计算生成符合 STARK 多项式约束的证明(计算速度快)。
4. SNARK Proof Builder:计算 STARK 的 SNARK 证明(缩小证明的大小),PLONK/Groth 16 暂定。
Figure9: A Simplified zkProver Diagram
Figure10: Simplified Data Flow in the zkProver
至于 Hermez zkASM/PIL 等介绍,都可以在官方资料文档看到,很齐全,并且各个功能模块的代码仓已经开源且有持续维护。
Figure11: Polygon zkEVM Open Source
概括而言,Hermez 2.0 是结合 Plonkup
Lookup、Starkware 的 STARK 协议,采用新汇编方案实现的 zkEVM 型、PoE 共识去中心化的 L2。计划 2022 年 Q3 发布测试网,2023 年发布主网。
Polygon Zero:基于 Plonk 协议和 FRI 技术的自研 Plonky2,zkEVM 兼容的 L2。Polygon 花费 4 亿美元收购的 Mir 项目更名而来。Zero 的资料主要是在 Mir 的官网和 Polygon 的博客查看。Zero 宣称的特点是支持递归、高效快速、证明大小很小。项目代码仓一直在更新,且其中包含 evm 的模块。由于资料较少且时间久远,暂时不清楚 Zero 未来的路线,目前来看,Plonky2 的架构可能更偏向于技术服务型的框架,近期宣布开源 Plonky2。
Figure12: Polygon Zero Processing A Block
Polygon Miden:基于 STARK 协议,支持多语言开发(含 Solidity)、兼容 EVM,推出电路编程语言 Miden Assembly 汇编及其 Miden VM 的 L2。Miden VM 是 Distaff VM 的进化版,集成了 Facebook 开源的证明系统库 Winterfell。从官网的架构图,Miden 有 Operator 的设计,但这部分内容、EVM 兼容和 L2 路线和进展都没找到任何官方资料文档。Miden 现在的代码仓以 VM 为主,兼容 EVM 部分也没有看到说明和实现方案。
Figure13: Polygon Miden Intro
Polygon Nightfall:主打隐私的、混合了 Optimistic 和 ZK 两种 Rollup 方式的企业级 L2。本质依然是 ORU 的 L2,但是结合了 ZKP 的技术加强隐私保护。Nightfall 是由安永公司创建,与 Polygon 合作是为了在企业级区块链方面进行更多的探索。主网计划在 2022 年发布。
Figure14: Polygon Nightfall Intro
Mina:除了 L2,还有一些项目基于 ZKP 对 L1 进行扩容上的探索,比如 Mina,一个基于递归 SNARK 开发的轻量级区块链(L1)。整个区块链网络维护最新区块的 SNARK 证明即可保证整个区块链的正确性,大小维持在 22KB。网络有维护完整数据的 Archive Node,执行共识机制生产区块的出块者和处理零知识证明计算的 SNARK 生产者。Mina 提出用 TypeScript 编写的 zkApp,如果要实现对应 zkApp 业务逻辑,需要开发者实现内部的 Prover 和 Verifier 函数。Mina 主网在 2021 年 3 月发布上线,网络架构和 L2 的批量交易类似,Archive Node 相当于数据可用层的维护者,出块者相当于定序器,SNARK 生产者类似于 Scroll 的 Roller、Hermez 2.0 的 zkProver 角色,但是 zkApp 的应用定位比较局限,既没有 zkVM 的通用性,也不支持 zkEVM。后续可以继续跟进 Mina 的 zkApp 迭代进展。
综上,ZK 在扩容领域的技术发展依然在如火如荼进行中,尤其是 zkEVM 的实现,L2 网络架构的实现和去中心化改造。从 ETHGasstation 近 30 天前二十燃烧 Gas 合约大户来看,主要是 Opensea、DeversiFi、Uniswap、USDT、USDC、Metamask Swap、Axie Infinity、NFT Worlds 等项目。L2 要想得到广泛应用,必须获得这些 DEX、NFT 的 MarketPlace、GameFi,以及金融衍生品等具有高频交易场景的项目支持。尽管部分 L2 项目的生态处于领先,但是,zkEVM 的落地,很有可能实现弯道超车,导致 L2 赛道的重新洗牌。zkEVM 的落地有利于吸引 L1 现有项目的迁移,很多 Web3 开发者也正摩拳擦掌,期待在以太坊网络上构建更大规模、更高频交互的颠覆性产品。
如果说 Web3 代表着个体主权的觉醒,那么,隐私将是 Web3 不可或缺的一环。随着行业的发展,DeFi 的可组合性和 NFT 给社交带来的变化,都让我们越发感受到了资产所有权相对于中心化托管的安全和便利,而链上完全透明的信息则进一步激发了我们对隐私保护的需求。但面对各个国家不断升级的监管政策,隐私保护怎么做,做到什么程度,则是一个值得讨论的问题。
近期,美国财政部出台政策直接对以太坊生态的隐私支付平台 Tornado Cash 进行制裁,进而导致与 Tornado Cash 交互过的地址被 USDC 发行商 Circle 拉入黑名单,以及 Tornado 网站页面、代码仓 Github、官方电报、官方 Discord 等一并关停。我们认为,人人都有保护自己隐私的诉求和权力,隐私产品的滥用并不意味着它们自身带有原罪,隐私产品的设计初衷是在于保护用户常规的转账支付隐私。不可否认,不法分子/黑客对其的使用的确带来很多问题,但关键并不是取缔隐私产品,而是努力寻找办法兼顾隐私和合法合规,例如 ZCash 对于全球 AML/CFT 反洗钱标准的兼容尝试以及 Tornado Cash 提供的资产合规证明工具。
现在加密行业里涉及的隐私实现方案,因为各自的使用场景不同(隐私支付、隐私交易和隐私通用计算),选用的方案也有不少差异,主要涉及到的有以下 6 类:
1,混币 CoinJoin/混币器 Mixer:主要是用于隐匿支付,基于 UTXO 模型,本质是创作多笔相同的输入和输出的Token转账来达到隐匿支付。可以在一定程度实现隐匿支付。不过,如果真要地址分析和控制,大不了是控制全部输出的取款地址即可。为了克服混币方案的问题,达世币是提出隐私支付层的概念,让隐私支付层参与存款地址的混合,以及减少存取地址之间的关联。Tornado 则是结合 ZKP 切断存取地址之间的关联。
2,环签名:多个地址组成环,环内某个地址的签名可以不依赖其他地址即触发环签名,以及实现环内地址签名的隐私性。门罗币最早的方案。
3,同态加密:直接对密文进行计算和输出结果。我们认为该项技术属于前沿型技术,和零知识证明类似,但是对于密文操作的开销非常大。现在在这个技术方向探索的有 Polychain Capital 和 Coinbase Ventures 投资的 Sunscreen。
4,安全多方计算(MPC):在没有可信第三方参与的前提下,让多个参与方可以安全不泄露地进行计算。万向区块链董事长肖风博士发起的 PlatON 在这方面有比较长时间的研究使用。
5,TEE(Trusted Execution Environment):可信执行环境,类似于黑盒子的概念,将输入传入 TEE,然后 TEE 执行出结果以后,加密输出。现有使用该项技术的主要是 Oasis 和 Secret Network。
6,ZKP:利用零知识证明技术实现隐私支付和隐私通用计算。隐私支付的新项目有 Iron Fish,PoW 网络+UTXO 模型+Groth16 的 zk-SNARK,和 ZCash 的设计很相似,没有提到是否支持隐私编程。隐私通用计算项目最出名的是 Aleo、Aztec 和 Espresso。
讲完基本的实现方案,我们挑选一些涉及到零知识证明的项目展开学习和分析。
Tornado Cash:我们经常看到的介绍是,用户向 Tornado 存款,取得存款凭证,然后在取款的时候,任意用户(地址)使用存款凭证即可取出资金,如此实现的隐私支付交易。这样的说明是从使用体验角度出发的,但是,并没有深入到 Tornado 的内核。Tornado 实现隐私的技术有两点:混淆资金进出的整存整取资金池,切断存取地址关联的 ZKP。
混币池相对容易理解,所以,我们将分析重心放在 ZKP。由于现在 Tornado 的前端网站和代码仓都关停,难以找到官方的资料,所以,我们直接从链上交易和合约代码进行分析,用户实际与 Tornado 要做的操作只有两种:存款和取款。这都是通过 Tornado Cash 的路由合约进行,路由合约会调用具体存取金额(1ETH/10ETH 等)的合约。存款操作 Tornado 返回用户 Note,向链上提交 Commitment。取款操作向链上提交 Proof、Root、NullifierHash。这几个参数,它们由 Tornado 的中心化代码构造生成,是理解 ZKP 使用的关键。
我们将 Tornado 类比为一个负责存取款的银行,以太坊类比为公开的金库,即可较为容易地理解用户在 Tornado 的操作步骤:
1,存款:用户填写存款单据,银行使用单一专门的保险箱(Commitment)保管存款单据,并且根据随机编号生成两个密码,一个密码用于给保险箱上锁,一个密码用于记录资金的存取状态,然后,将上锁的、具有资金存取状态的保险箱放入公开金库的某个秘密随机位置。银行将保险箱、随机编号和保险箱存放位置信息返回用户(Note)
2,取款:用户把随机编号和保险箱存放位置告诉银行,银行可以通过计算得知:保险箱的秘密随机位置(Root),资金的存取状态(NullifierHash),以及保险箱的开锁密码(Proof)。一切检查验证无误的情况下,完成取款以及更新资金存取状态;
通过 Mixer 混币器和零知识证明,Tornado 在以太坊主网上实现了隐私支付的功能,且在发行 Token 后,TVL 达到了 10 亿美金的体量,可见其巨大的影响力和用户需求。
Figure15: Tornado Cash TVL and MarketCap
Aztec:主打隐私保护和隐私资产互操作性的 zk-Rollup Layer2 网络,采用自主研发的 Plonk 协议,推出了 zk.money 隐私支付产品,近期推出连接桥 Aztec Connect,未来将会推出 Plonk Rollup 的扩容二层网络。在 Plonk Rollup 二层网络里,将会推出电路编程语言 Noir 支持隐私智能合约。Plonk 协议需要进行可信设置,不过,Aztec 采用了 MPC(多方安全计算)解决可信设置。MPC 的可信设置是让多个值得信赖的公众知名人士共同去背书。Aztec 在 2020 年 1 月用点火仪式完成了 MPC 的可信设置。产品的迭代路线是逐层推进的,从早期的 zk.money,到近期的 Aztec Connect,以及未来的 Plonk Rollup,Aztec 团队在一步一步地完善自己的产品定位,以及对应 Plonk 协议的调整和优化(TurboPlonk、UltraPlonk)。在 Aztec 1.0 时期对于 Aztec 协议做了大幅的介绍,现在是 Aztec 2.0 时期,官网找不到太多网络整体的设计,所以,我们沿用 Aztec 1.0 的文档进行学习。
zkAsset:隐私资产,于 EIP1724 提出,用于将以太坊公开透明的资产转为隐私资产,通过零知识证明确认资产转入 Note 注册表以后会铸造对应的 zkAsset,类似于 Secret 的 Shield 资产(类似于 Tornado Cash 的存款过程,不过,Aztec 在链上进行增加了隐私资产的概念)。
Aztec Cryptography Engine(ACE):将证明分发给验证和根据证明验证结果更新 Note 注册表的状态。
各种 Validator(Join Split、Bilateral Swap Validator......):验证者工具(类似于 SDK),可以让开发者集成做隐私资产的互操作。例如:Join Split 可以拆分合并 Note。
Figure16: Aztec 1.0 Architecture
在 2021 年 6 月上线后,Aztec 的 TVL 峰值一度到达 1400 万美金,而现在稳定在 400 万美金左右。相比于 Tornado 的体量,Layer2 的隐私网络受众似乎要小很多,一定程度上可能受制于其更高的门槛。且受 Tornado 事件的影响,与以太坊主网产生交互的其他隐私产品也受到了一些牵连, 这可能是日后需要开发者们探讨的问题。
Aleo:Aleo 是为用户和交易增加隐私功能,同时兼顾可编程性的新型 Layer1 区块链网络,内置的 SnarkOS(去中心化的操作系统),类似于 EVM 的角色。提出 ZEXE(Zero Knowledge EXEcution)的概念,和 TEE 的定义很相似,只是用零知识证明去实现。具有可选的隐私模型,对开发者提供一整套的开发工具链。Leo 语言,Aleo Studio(IDE)、Aleo Package Manager。最新激励测试网从单纯的 PoW 共识调整为 PoSW(Proof of Succinct Work),将零知识证明的计算转移成为出块的条件。现在在 Aleo 的区块链浏览器可以查看验证状态的转变、以及对交易记录进行零知识证明计算的 Proof。
Figure17: The Future of Zero Knowledge with Aleo
Espresso:对于 Aleo 和 Aztec 各自的特点都有所研究和改进,基于 ZK Rollup 的 L2 和可配置资产隐私的 L1 双层网络。可配置隐私资产允许资产创建者设置资产的收发地址、收发数量、持有数量等的隐私查看规则和资产冻结规则。对于 ZEXE 的概念提出自己的 VERI-ZEXE,对于 Aztec 的 TurboPlonk 和 UltraPlonk 提出自己优化版的 PLONK,并将 Rust 实现版代码命名为 Jellyfish 和开源。当前,Espresso 的 L1 网络正在研发。可配置资产隐私在以太坊测试网内测,或者可以通过官网安装包进行本地体验。
Figure18: Espresso Systems Configurable Asset Privacy for Ethereum
Zecrey:双层网络,支持多链 ZKR 的 L2、以及具有跨链功能和隐私保护的 L1,但是不支持 zkEVM/zkVM。L1 的隐私是基于 BulletProofs 协议改良版(LNCS)/ Sigma 协议的混淆资金池,直接在公链层面向用户提供隐私转账和隐私交易的功能。L2 的 ZKR 使用的是 PLONK 协议。参考官方白皮书的架构图,有一大部分是 L1/L2 进行 ZKR 的设计,我们拿出来分析学习。
Layer-2 Commiter:收集交易和构造 L2 区块。
Block Monitor:L2 区块状态更新者。
Prover Network:L2 交易 Rollup 之后,进行 ZKP 证明的计算网络。
TSS-based Verifier Network:验证者网络,将收集 Prover Network 的证明,然后提交到 L1 的智能合约。
Tx Monitor / Layer-2 State Monitor / Executor:L1/L2 的桥。
L2 到 L1 进行 ZKR 的时序设计基本一致,部分角色命名和分工略有不同:
Committer 收集交易,构造 L2 区块,Prover
Network 监听区块,为 Committed 状态的区块计算证明,TSS-based Verifier Network 收集证明,将证明提交到 L1 的智能合约,Block Monitor 监听 L1 区块打包情况,确认后更新 L2 区块状态。
Zecrey 现在处于测试网研发阶段,已经集成 Ethereum、Polygon、NEAR、Avalanche 和 BSC 五个公链测试。从官网路线图看,2022 年 Q3 将会发布主网。
Figure19: Zecrey System Architecture
Manta Network:波卡生态的包含多资产隐私支付协议和 AMM 隐私交易协议的 DeFi 隐私协议栈(隐私平行链)。参考官方的架构图,可以作为波卡生态各个平行链的隐私中转站。具体隐私方案分别是:基于 Zcash 的 UTXO 隐私支付模型,增加了多资产的支持以及隐私支付通道的技术。使用类似 ZEXE 的方案实现 AMM 隐私交易,内置了零知识证明的电路。
Figure20: Manta Architecture (Implemented as a Parachain)
Anoma Network:以 Intent(意图)为中心、有可组合性的隐私保护,可以去中心化发现对手方、解决多链原子结算交易的一层网络。Anoma 架构是参考 Cosmos 的,使用 Tendermint BFT 共识机制,首个主权独立链(Fractal Instance)是 Namada。我们用订单薄的交易平台类比理解 Anoma。Anoma 的 Intent 相当于用户的挂单,挂单可以公开(Transparent)、隐藏(Shielded)或者加密(Private),挂单需要由 Anoma 的 Solver 进行撮合结算(Settle),撮合成功的挂单形成 Anoma 的交易。Anoma 提出自己的 AnomaVM,对应高级函数式编程语言 Juvix 和 VampIR 电路编程语言,AnomaVM 内置支持 ZKP 电路生成和 FHE(全同态加密)。
Figure21: The lifecycle of a transparent, shielded, and private intent in the Anoma architecture
Iron Fish:基于 Zcash 的 Sapling 协议,以 PoW 作为共识的隐私支付公链。进行了多轮激励测试网,预计 2022 年 Q4 上线主网。
基于以上项目的信息,我们可以看到,在隐私保护的领域,零知识证明主要应用在隐私支付和隐私网络的场景中,且大多并非单独使用,而是结合了 Mixer,TEE,MPC 等其他隐私保护的技术。
Figure22: Web3 Privacy Ecosystem
隐私保护赛道依然有不少的项目在探索研发,尤其是最终面向用户的隐私应用方向,结合 DeFi、NFT 等应用场景,还有很多延伸的空间,我们也就不一一列举。回到最初的话题,隐私产品的出现是基于用户的需求,当我们朝着 Web3 前进时,无论是基于区块链的去中心化金融体系,还是未来 Web3 的社交场景,我们都希望能够把更多的链下行为置于链上,那对于用户隐私保护的需求就会越发强烈。在众多隐私保护解决方案中,ZKP 扮演着重要的作用,这也是我们去深度研究的原因。
在前面的章节,我们花了较多的篇幅整理和学习了零知识证明在扩容和隐私方向的项目,零知识证明相关的扩容和隐私项目在一级市场也获得了资本的青睐,我们对这两个赛道项目的公开融资数据进行整理,分别如下两图:
Figure23: Zero Knowledge Investments In Scaling
Figure24: Zero Knowledge Investments in Privacy Protection
可以看出,ZK 扩容项目估值最高的是 Starkware,高达 80 亿,ZK 隐私项目最高的是 Aleo,估值 14.5 亿。考虑到项目在隐私和扩容叙事可以并行出发,甚至一些隐私项目是双层网络,所以,难以比较两个赛道的平均融资金额。单从最高估值而言,扩容赛道在一级市场的认可度是高于隐私赛道。扩容赛道之中,在协议、电路语言、zkVM 和服务项目等多方面有优势的 Starkware 无疑是资本市场的宠儿。另外,其他主打 zkEVM 兼容的扩容项目,也同样获得资本市场的热爱。隐私赛道之中,在电路语言、开发者工具链等方面有优势的 Aleo 比起研发 PLONK 和 PLookup 技术的 Aztec 更为吃香,也侧面说明资本市场对于商业落地型项目的偏重。
二级市场方面,由于币价波动较大,ATH 的流动性基本不足,我们简单参考 FDV 的区间。ZKR 型扩容项目暂未发币,我们借用(ORU)项目 Optimism 进行对标,OP 的 FDV 是 20 亿到 95 亿;而在隐私保护赛道,ZCash 在 15 亿到 45 亿之间,Oasis 在 7 亿到 59 亿之间,Tornado 的 FDV 则从刚上线时的 30 亿,一路下跌到现在仅 9000 万。由此可以看出二级市场对于扩容赛道项目的认可,基本和公链处于同一个层级,而对于隐私赛道则相对比较保守。
由于 ZK 这项技术在学术研究层面不断创新突破,在工程实践层面也不断推进落地,因此,投资机构一直都非常钟爱和热衷。不仅如此,除了本文提到的两个主要赛道,ZK 也可以用于其他场景,例如轻量区块链(Mina)、去中心化身份(Polygon ID)和隐私预言机网络(Chainlink 的 Deco)。从众多知名 ZK 项目之中,我们观察到这些不同的项目发展路线和生态发展路线,或多或少都是在构建二层的公链。与公链的研发技术栈类似,ZK 项目涉及的技术栈依然涵盖方方面面:零知识证明协议、电路编程语言、语言应用库/包、语言开发调试工具链(IDE)、zkVM/zkEVM 设计实现、去中心化共识机制等。
在面对使用零知识证明的扩容和隐私项目时,我们提炼了一些简单的思考列表,汇总如下,用于和项目沟通交流学习。
1,不同的零知识证明协议有各自的优缺点,出于什么考虑进行选择?
2,假设是 zkVM 型项目,要怎么高效、安全地设计开发者友好的电路编程语言?
3,假设是 zkVM 型项目,如何搭建一套开发者生态的工具链产品?
4,假设是 zkEVM 项目,是否支持 EVM 链的智能合约无缝迁移,对于跨合约之间的调用是否有限制(可组合性)?
5,ZK 计算 Proof 的时候,怎样可以采用 FPGA/GPU 等硬件进行加速?
6,项目之中,Prover 和 Verifier 都承担什么作用,是否中心化控制,未来是否有去中心化的设计变化?
7,…共识机制,Token经济设计,合规性设计等其他问题
零知识证明作为亟需沉淀的高新技术,非一日之功,资本的迅速入场并不能带来基础技术的迅速发展。因此,项目标的的选择上面,我们会倾向于寻找当下成熟 ZK 项目的生态项目或者实力强劲的学术型研究组织。比特币是点对点的电子现金支付系统,以太坊是智能合约的世界计算机,彷佛一切都那么相似,ZKP 起源于支付领域的探索,正逐步朝着通用计算的领域发展。作为加密行业的用户和参与者,我们期待看到更多优秀的 ZKP 项目涌现,如果你有任何好的想法,也欢迎随时跟我们沟通联系。
参考链接
https://mirror.xyz/0x8C4d5E90196325FB22Fff37C97D7984a37e51D11/dhOEzNXqotPftpjf2gh7Hz7qZwu3lQRWYmlE_sSe7is 全景式解读 Web3 隐私赛道现状、演变逻辑与典型玩家 |链捕手
https://docs.starknet.io/docs/intro
https://v2-docs.zksync.io/dev/
https://scroll.mirror.xyz/nDAbJbSIJdQIWqp9kn8J0MVS4s6pYBwHmK7keidQs-k
https://docs.hermez.io/zkEVM/Overview/Overview/
https://mirprotocol.org/blog/Scalability-on-Mir
https://aztec-protocol.gitbook.io/zkproofs-proposal/
https://docsend.com/view/ntcsmt7meu84gcqk Zecrey: A Turn-key Solution for Cross-chain and Privacy
https://eprint.iacr.org/2021/743.pdf MANTA: a Plug and Play Private DeFi Stack
https://betterprogramming.pub/understanding-zero-knowledge-proofs-through-the-source-code-of-tornado-cash-41d335c5475f
https://github.com/anoma/whitepaper/blob/main/whitepaper.pdf Anoma: a unified architecture for full-stack decentralized applications
欢迎加入律动 BlockBeats 官方社群:
Telegram 订阅群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方账号:https://twitter.com/BlockBeatsAsia