至今为止,我们在 Web3 体验到的绝大部份协议都是具备一定程度的信任假设,当我们希望进一步追求“去中心化”时,我们不可避免地要牺牲一部分的隐私性。比如当协议提供 MEV-Protection 的时候,大概率使用的是 Private Mempool,用户需要假定这部分的节点提供方将诚实地工作,即存在第三方的信任假设,而事实上这对于所有的协议皆如此——存在一定程度的信任假设。根据我们先前一份研报观察,对于机构、大户而言,隐私保护是他们考虑是否将资产迁移链上的重要因素之一。这也意味着,一些第三方链上数据平台可能会加剧 MEV-Searcher、黑客对大户、机构的针对性攻击,因此引入链上隐私保护无疑天然适配他们的需求。
在此之前,我们也写过隐私赛道上针对暗池交易的项目 Singularity 的研报(扩展阅读:详解 Singularity:透明区块链上的隐私交易)。
那么问题来了:对于隐私保护,我们可以做什么?
常规听到的四大隐私计算方案有:全同态加密(FHE,Fully Homomorphic Encryption)、多方安全计算(MPC,Muti-Party Computation), 可信执行环境(TEE,Trusted Execution Environment)和零知识证明(ZKP,Zero Knowledge Proof)。他们其实在解决的是不同情况下的场景需求。
首先,对于加密数据而言,这串数据的所有权决定于谁拥有了解密 / 加密密钥。通常来看,隐私数据可分为个人可见、团体可见。
对于 FHE,MPC,TEE 来说,他们都可以解决团体可见数据的难题。但是,FHE 要求高昂的计算资源,MPC 要求所有验证者在线,TEE 要信任服务提供商。当前行业对这几者的探索仅适配少数场景,比如暗池交易、私钥管理等。而虽然 ZKP 输出的结果信息有限(即“是非”题),并大多仅适用于个人可见数据,但其应用场景被现在的用户充分探索,比如跨链桥、Layer2、KYC 等。即便在未来,如果 FHE 和 MPC,乃至其他隐私计算方案的盛起,也不会因为蚕食效应 / 市场竞争而舍弃 ZKP,因为:
我们可预见 ZKP 的广泛应用场景将井喷式出现,但是这种需求以当前主流的 Layer1 来看,还难以承担,不仅要面临高昂的 Gas Fee 还需要等候网络进行验证。而 Modular ZK As A Service(MZaaS)作为一个 ZKP 服务商的设计框架很好地解决了上述问题。MZaaS 提供一系列 ZKP 相关服务以减低 ZKP 生成复杂度以提高效率。而这些服务可以进一步拆分成以下子类别:
在了解 ZKP 市场之前,想让我们对 ZKP 生命周期有一个整体的概念。基本上 ZKP Proving System 都遵循下述的流程:
假设现在我们有一个用于记录用户账户余额的 Merkle Tree,正常情况要更新账户余额,我们需要按照下述流程进行:
但在 ZKP 加持下,这个流程按照如下进行:
在这个过程中,验证者本身无需对 Merkle Tree 进行反复验证,只需相信验证结果即可(前提是电路构建无误)。
如果从高纬度进一步将 ZKP 拆解,那么从定义问题到构建电路的过程都是前端进行(以高级语言编译),而后端(以低级语言编译)负责将这个电路嵌入 / 结合某一证明系统以生成 ZKP,具体来看是先将电路结合 Information-Theoretic Protocol,后以 Cryptographic Compiler 进行编译成一个适用的 ZKP System,比如 Groth16。
性和完整性的能力。健全性是说,如果一个声明在证明系统中得到证明,那么它就是真的。完备性则保证,如果一个声明为真,那么它在系统中是可证明的。
前面提到的 Information-Theoretic Proof System 都做出了在现实生活中难以实施的理想假设。例如,它可能假定验证者是可信的,对证明的访问受到限制。但 Cryptograph 的特性使得这些假设在特定环境下可以实现,例如常见的数学难题:
Information-Theoretic Proof System 和 Cryptographic Compiler 结合后,便可以得到 ZKP System,因此 ZKP 的各项特征都会随着组合不同而出现改变:
如果在点对点的场景中,做恶分子知道该随机值,那么他可以伪造该系统的输出并生成正确的 ZKP。
从上文也可以看出,不同的结合可以延伸出多种类型的 ZKP 系统。概括来说,主要可以分为 ZK-SNARK、ZK-STARK 和 Bulletproof,以下几个核心差别,可以方便我们更好理解:
图源:https://github.com/matter-labs/awesome-zero-knowledge-proofs?ref=blog.pantherprotocol.io
图源:https://medium.com/@emilpepil/history-of-the-formation-of-zkp-151dd7001ffa
目前 ZKP 赛道主要以两大方向发展:隐私、扩容。
主要指的是采用了 ZKP 作为提高可扩展性的解决方案,包括 Layer2 可用性证明、跨链等。目前常见的方案有 Starknet、ZKsync、Polyhedra 等。通常可以分为 Layer1/Layer2、协议两种构建体系。在 Layer1/Layer2 构建体系中,Rollup 交易和应用程序在 ZKEVM 上执行,并具备零知识证明特性。一个理想的 ZKEVM 应该是等效于 EVM,意味着可以完全兼容 EVM 现有的协议、开发体验。根据 Vitalik 博客中提到,当前的 ZKEVM 共可分成 5 个类别:
图源:https://vitalik.eth.limo/general/2022/08/04/zkevm.html
以太坊设计之初也没有设想未来会以 ZKEVM 的的方式进行扩容,因此开发难度无疑是很高的,因此 ZKsync、Starknet 的选择也是为了尽早推出市场一个泛用型的 ZKEVM,而事实上他们应当被称之为 ZKVM,因为他们对以太坊的兼容性(面向开发者)比较低,但换来的则是更高的架构灵活性、更低的 ZKP 生成成本。
这类型的 ZKVM 可以脱离 EVM 体系的限制成为一条 Layer1,开发人员用高级语言编写针对特定虚拟机架构的代码,然后编译成 ZK 电路,或者使用特定领域语言(DSL)(如 Circom)编写代码,直接生成 ZK 电路。
图源:https://medium.com/alliancedao/how-to-leverage-zkps-as-a-web3-builder-ae504783973d
如果单独考虑 ZK Layer2 市场规模,根据 L2Beat 数据来看,目前 ZK Layer2(包括 ZK Rollup、Validium)的 TVL 大概有 $5.015 B,占总 Layer2 中 Layer2 TVL 和以太坊 TVL 分别是 10% 和 7%。如果将 OP Rollup 市占率作为 Benchmark,ZK Rollup 目前还有大概 10 倍 TVL 的增长空间,预计推出额外 10 - 12 条新的 ZK Layer2。
当中 Linea、Starknet 和 ZKsync 为前三,分别占有 $1.22 B,$1.06 B, $855 M,Three-Firm Concentration Rate 为 62%,意味着当前 Layer2 竞争被少数项目垄断。进一步观察 Layer2 TVL 增长情况,TVL 增速主要出现在 2024 年 2 月 20 日,其原因是 Starknet 原生代币的流入&增值,目前链上仍保留着 75% 的 Starknet 原生代币。
当中 Linea 属于 Type2 ZKEVM,Starknet 和 ZKsync 为 Type4 ZKEVM。且前三名都为 ZK Rollup 而非 Validium,前者以以太坊作为 DA,后者 DA 将放在链下由 DAC 管理。在 Validium 中,Immutable X 的 TVL 达到近 $200 M,位列第一。另外值得注意的是,OP Rollup 中,TVL 最高的前 10 个 Layer2 大多都是采用了 OP stack,意味着某一 Stack 的市场占有率很高。但在 ZK Rollup 中,TVL 最高的前 10 个 Layer2 基本选择开发自己的 ZK Stack。
图源:https://l2beat.com/scaling/summary
图源:https://l2beat.com/scaling/summary
除了上述 Layer1/Layer2,ZKP 在扩容的主要场景还有协议层,比如跨链。跨链中引入 ZKP 主要服务于轻节点验证、Maker&Sender 的跨链基建,比如 Polyhedra、Orbiter Finance 等。在轻节点原本验证过程中,目标链部署的合约需要持续地获取源链的区块头以做后续的跨链信息校验,将不可避免地消耗 Gas,但如果将校验过程放在链下,链上只储存一个 Commitment,那么这个存储成本将会大幅减少,且不会因为源链的更新频率越高,而 Gas 成本越高。而 Commitment 的构建方式可以用 ZKP 进行,可以有效地压缩一笔或多笔交易。在 Maker&Sender 模式,ZKP 结合了欺诈证明,进一步减少了 ZKP 生成。在市场规模方面,以 Orbiter Finance 为例,虽然目前每个月大概有 $628 M 交易量和 $1.48 M 的 TVL,但是在高周转的情况下,ZKP 的需求也会提高。
主要指的是以 ZKP 作为其隐私安全保障方案的协议 / 网络,包括 Zcash、Aztec、Tornado Cash。
与注重扩容的发展方向相比,注重隐私的解决方案的开发工作较少。现有的隐私应用主要集中在支付隐私方面,可编程性不高。将隐私和可编程性结合起来是一项具有挑战性的任务。注重隐私的解决方案有两种构建方式:
根据 Defillama 显示,当前隐私赛道 TVL 大概为 $709 M,Three-Firm Concentration Rate 占据接近 99%,分别是 Tornado Cash($595 M)、Railgun($96.97 M)、Aztec($9.45 M)。其中 Tornado Cash 和 Railgun 为协议,Aztec 属于 Layer2。
图源:https://defillama.com/protocols/Privacy
其中 Tornado Cash 面临着合规性的打压,也意味着很多“合规隐私“需求将逐步迁移到其他协议、网络,Concentration Rate 只会逐渐下降。另外,市场目前很多的第三方数据平台、中心化节点提供商都有损抗审查性,部分大户、机构希望通过更安全、隐秘的方式进行大额资金转移。截止 6 月 3 号,受 OFAC 审查的区块大概有 37%,这些是公开 Mempool 所无法避免的。
图源:https://www.mevwatch.info
这也进一步延伸了合规性的要求,因此 KYC 等服务商也十分重要。但往往用户还是希望最大程度保有个人隐私,ZKP + KYC 的潜在场景会随着隐私交易的提高而提高,目前市场的主要服务商是 zCloak,zkMe 等。在传统 KYC 过程中,当我们需要委托多个 KYC 服务商时,我们需要进行反复的验证,但在 ZKP + KYC 的情况下,其他服务商可以尝试验证该 ZKP 以保证身份有效性。而且 KYC 过程中,服务商需要记录一些必要信息,比如身份证等敏感信息,如果在多个服务商进行,那么信息泄露风险也会线性激增。
正如我们之前提到的,ZKP 生成需要大量計算资源。以常见的 ZK-Rollup 为例,ZKsync 的 ZKP 生成时间大概是 1 个小时。进一步拆解的话 ZK-SNAKS 的 ZKP 生成过程主要涉及多标量乘法(Multi- Scalar Multiplication,MSM)和数论变换(Number Theoretic Transform,NTT)。这两项过程就能占到证明生成时间的 80% 到 95% 。而 ZK-STARKs 虽然用了不同的算法,但也同样面临低效率的问题。
另外近年来,ZKP 系统提供了一系列不同权衡的选择,种类繁多且不断地扩展。例如,更快的证明速度的取舍是更大的证明大小或内存使用量。具有各种定制功能的证明系统种类繁多,并在不断扩展。但以太坊并不能够支持不断发展的证明系。例如,只有 BN-254 椭圆曲线能够在低成本基础下支持。但如果迁移到更安全的曲线(如 BLS12-381),是很复杂的任务,更别说要去兼容新的 ZKP 系统。
再者,在 Layer1 验证 ZKP 方面,验证 STARK 的成本约为 5,000,000 Gas,而基于 Plonk 的证明则低于 290,000 Gas fee。如果直接在以太坊中验证的证明系统,目前有几个局限性,例如,基于内积论证的证明系统,如 Mina 的 Kimchi(通过 Pickles 实现高效递归)或基于 Brakedown 的 Binius(具有平方根大小的证明),他们所涉及的运算量或证明大小比较大,因此验证成本也会十分昂贵。为此我们可能需要转制成 Ethereum-Friendly 的 ZKP。
因此如何提高效率成为了下一个 ZKP 发展要探讨的方向,除了在算法 / 电路上进行改变,当前主要的解决方案可以分为两大类:
首先,我们从上文应用场景中能够发现,ZKP 的应用场景中并不是所有交易都会进行生成,所以我们可以归类为两种生成方式 ( 以跨链为例):
所以在 Half ZK 场景下,不是所有的 Prover 都充分利用。当我们将 Prover 的角色拆分成 Requester 和 Prover,并且创建出 Prover 共享平台 /Marketplace,就能够提高 Prover 的利用率,并在 Full ZK 的场景中潜在减少 ZKP 生成的所需的时间。但问题来了,如何选定 Prover?
如何选出 Prover 的具体设计其实可以分多个维度思考:Performance、Cost、Decentralization。本质上跟共识机制的不可能三角相似,比如选择了多节点验证以确保去中心化,但无疑反复验证只会提高验证时间(Performance 降低)。根据 Taiko 探索的各种 ZKP 经济模型,他们总结了下图。笔者在此不进行过多着墨。
图源:https://www.theblockbeats.info/news/45260
首先要厘清 Aggregation 和 Verification Layer 的区别:前者只是将 ZKP 进行某种方式压缩,比如 Recursion、Folding;后者在此基础上添加了初步验证(Soft Finality)的过程。而 Soft Finality 的过程可能是要依赖外部合约 / 网络,需要一定程度的信任假设。
在实际 Aggregation 过程中,不同项目采取的架构略有不同,但大体有以下四个环节(以 Polymer 采用的 ZKTree 为例):
Verification Layer 可以通过 Soft Finality 提供即时的验证,并与各种系统集成(不局限在以太坊),对于安全性追求相对不高的需求时,可以通过 Soft Finality 以追求更高的效率。而且通过 Verification Layer 也可以让并行计算成为一种可能,进一步摆脱以太坊的技术债务。更重要的是他能够让验证成本降低。根据 Nebra 实际测试,在以太坊链上提交的每份证明可节省多达 184k Gas(约 75%),在链下提交的每份证明可节省多达 207k Gas(约 85%)。另外 Aligned Layer 也预估在 Groth16 和 STARKs 验证成本要比原本在以太坊验证节省 29 倍和 80 倍,且使用的是家用级别的硬件。
Cloaking Layer 是 zCloak Network 的一款新产品,专注于为 ZKP 提供验证层服务。其核心思想是利用 Internet Computer(ICP)的超高效率和超低成本,使用基于 WebAssembly(WASM)的 Canister 合约,对每个 ZKP 进行直接验证。然后再基于同样的信任假设,使用阈值签名技术将验证结果发送到任意目标公链上,实现覆盖全链的 ZKP 验证服务。(扩展阅读:Cloaking Layer — a ZK Verification Infra for All Chains)
图源:https://zcloaknetwork.medium.com/cloaking-layer-a-zk-verification-infra-for-all-chains-1162d3fcc37b
首先,Cloaking Layer 的核心是 ICP Canister,可以直接以 WASM 形式运行 ZKP 的验证器(Verifier),对 "SNARK" 和 "STARK" 证明进行直接验证。ICP Canister 可以理解为 EVM 链上的智能合约,具有部署后不可篡改,运行结果需要全网共识等特点。与 EVM 合约需要用 Solidity 语言进行编写不同,Canister 合约可以很好地支持 WASM 编译对象。由于目前绝大多数 ZKVM 系统如 Polygon Miden、RISC0、SP1、Jolt 等都是用 Rust 编程语言编写的,很容易就可以编译为 WASM,所以 Canister 很适合担任 ZKP 的验证器的角色。
ICP 公链由多个子网(Subnet)组成,每个子网包含数量众多的节点(Replica)。一个 Canister 合约部署之后,会在每个子网节点内保存一份,运行时也会在每个节点中独立运行,然后子网对所有节点的运行结果进行比较并取得共识,从而保证 Canister 的运行结果正确无误。当 Cloaking Layer 收到 ZKP 后,每个节点内部署的验证器 Canister 都会对该 ZKP 进行独立计算和验证。一旦证明结果在子网内取得共识,子网就会使用阈值 ECDSA 签名技术对验证结果进行数字签名。经过签名的验证结果可以被发送到任意支持 ECDSA 签名验证的公链,如比特币、以太坊和 Solana 进行使用。
重点:
目前市场的方案估值都差距比较大
目前大部分方案已经在 Testnet
预估平均降低验证成本 10 倍 +,其中 Cloaking Layer 的效能最高
大部分信任假设是基于 Layer1
大部分项目仅针对以太坊进行“验证扩容”
Cloaking Layer 与目前其他 Verification Layer 方案最大的不同在于其信任假设的部分。目前申请成为 replica(ICP 的节点)要求极高,既需要 ICP 基金会的审批,也需要承担更高的节点的硬件配置需求(比 Solana、Sui 等节点配置较重的 Layer1 要更高),因此在门限 ECDSA 签名的效率中仍保持着一定的信任限制,本质上还是要依赖于网络有 2/3 的诚实节点。另外,由于 ICP 节点性能优势,Cloaking Layer 无需借助繁杂的 ZKP Recursion Scheme 以实现 ZKP 压缩,这种方式也最直接、方便。
最简单有效的做法就是用 Layer1 的抗审查机制,只要 Verification Layer 中的 Verifier/Unified Prover 无法拦截递交交易,那就可以继承 Layer1 的抗审查能力。实际理解就是用户 / 协议可以直接递交 ZKP 到 Verification Layer 在 Layer1 的智能合约(ICP 上是 Canister ),并存进一个等候队列中等待被 Verifier/Unified Prover 打包。按照 Arbitrum 的方式来看,任何人都可以在 Sequencer 没有相应的一段时间后将交易纳入 Layer2 的交易历史中。
通过以上思考,我们可以通过提供额外的手续费以优先打包,如果规模比较大,也可能发展出类 MEV 市场的 ZKP-EV (Extractable Value) 市场。
所有 Verification Layer 都会提供 Soft Finality,并且由于这些 Verification Layer 的性能都要比以太坊高,所以在验证速度上来看也是优于以太坊。但如果需要经过 Layer1 的 Hard Finality 那么这个时间就要比没运用 Verification Layer 的时间要长,这个也是保有 Hard Finality + Aggregated ZKP 的一个弊端。因此对于 Hard Finality 要求比较谨慎的协议来说,现阶段的 Verification Layer 不一定是足够好的解决方案,应当引入 Slashing 模块、声誉系统、保险机制以在效率和安全性中取得平衡。可参考我们过往的文章(扩展阅读:TeleportDAO:数据验证安全与效率之弈,轻节点设计最新实践)。
当前所有的 ZaaS 的商业模式仍比较模糊,常规做法有二:服务费、发币获利。在服务费中,常规的 As a Service 模式下,服务费可以用订阅费、佣金(按次计算)进行收取。在 ZaaS 情境中,这种服务费可以有更多的想象力,比如上文提到的 ZKP-EV 市场,用户可以提交优先费以获得优先打包的权利。同时协议方可以通过分润模式进行合作。总的来说服务费模式玩法想象力还是较为多元,但前提是市场较为成熟。而发币获利则相对适配大部分的场景,甚至无需市场成熟,但是业务的现金流本质上是与代币价值脱钩的,除非通过强硬的 Buyback 承诺绑定(比如 MakerDAO 的 MKR)。所以这样的做法无疑会让品牌形象进一步收到代币影响。所以虽然当前的市场规模预期很大,但实际收益表现还有待市场验证。
随着 Web3 行业趋紧成熟,尤其当涉及链上隐私数据计算,隐私计算赛道的潜力也会进一步被发掘,ZKP 无疑是其中的领跑员。相比起其他隐私计算方案,ZKP 更天然适配于计算资源紧缺的系统,比如区块链。我们也已经从 ZK VM、Validity Proof、ZK Mixer 等方案看到了 ZKP 扩容与隐私保护的有效性。因此 ZK As A Service 对于 ZKP 进一步拓展使用场景有着举足轻重的影响。
Eureka Partners 相信 ZaaS 在行业内的重要性,但是我们仍需保持谨慎观察该赛道现存的商业性问题 —— B2B As A Service 商业模型如何盈利(上文延展讨论也有提及 ZK-As-A-Service 收益来源)。从传统模式上看,这类型的服务需要依赖成体系、成熟的市场需求,既要保证终端用户对产品有着可持续的需求,更要确保 B 端买家对 As A Service 服务商有着忠诚度,进一步加剧服务商之间的内部竞争,常见的差异化体现在价格、服务品质、覆盖率等。同理,在 ZK As A Service 不可避免地需要面临着上述内外部的难题。而目前该服务处在市场 PMF 阶段,市场需求以及教育仍在缓慢建立,下个阶段则可能出现更多的协议采用 ZK As A Service ,而且服务商可以顺利通过收取服务费(比如 Commission Fee、Verification Fee Shared 等)建立健康的现金流,最后走向成熟的行业。
最后,非常感谢 zCloak 的张晓博士对文章支持与修改建议。
https://medium.com/casperblockchain/verified-merkle-tree-updates-without-zk-90d8f5100ccd
https://www.zkcamp.xyz/blog/information-theory
https://x.com/iam_preethi/status/1656411033366396929
https://crypto.stackexchange.com/questions/92018/which-is-the-relation-between-zero-knowledge-
proofs-of-knowledge-and-circuits
https://web.archive.org/web/20090521024709/http://merlot.usc.edu/csac-f06/papers/Wang05a.pdf
https://medium.com/@emilpepil/history-of-the-formation-of-zkp-151dd7001ffa
https://www.paradigm.xyz/2022/04/zk-hardware
https://medium.com/alliancedao/how-to-leverage-zkps-as-a-web3-builder-ae504783973d
https://vitalik.eth.limo/general/2022/08/04/zkevm.html
https://mirror.xyz/msfew.eth/Yl64OK3lLG48eJpVB3GxqFEhmWOm6yMlAo9sc1VrQP4?
ref=blog.pantherprotocol.io
https://x.com/jaosef/status/1730313497513476326
https://l2beat.com/scaling/summary
https://defillama.com/protocols/Privacy
https://docs.zksync.io/zk-stack/concepts/finality.html#finality-on-zksync-era
https://figmentcapital.medium.com/decentralized-proving-proof-markets-and-zk-infrastructure-f4cce2c58596
https://dune.com/nebra/zkp-verify-spending
https://medium.com/@eternal1997L/icp 没落的原因 - 特立独行的技术与冷清单薄的生态 -51dd7a9362fb
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。