追溯零知识证明技术史:蕴藏下一个千亿应用?
零知识证明技术迄今已经经过 40 年的发展,诞生出多种模型和应用。
原文标题:我们研究了 ZK 的技术史,发现下一个千亿应用蕴藏其上
原文作者:R3PO
原文来源:微信公众号
加密世界的焦点经历了比特币、以太坊、DeFi、NFT、元宇宙和 Web3 的多次变迁,唯独缺少对加密技术本身的关注,除了比特币的椭圆曲线加密算法(ECC)还算有一点大众认知度,其他加密算法基本停留在研究员和开发者的自嗨中。
R3PO 认为这不够去中心化,会严重阻碍 Web3 的进一步扩展,密码学是区块链的基础件,不应该被少数人掌握,而应走向更广阔的领域。
R3PO 希望能用新的书写范式去阐述术语的含义,兼顾专业性和可读性,致力于为机构投资者、项目方发现潜藏在发展中的投资机会、创业方向和切入点,寻找到未被发掘的α收益。
近期大热的零知识证明技术仍是一个不断发展、不断革新的细分领域,但其技术本身又具备足够广阔的应用场景,因此对其进行全景梳理显得十分重要。
零知识证明技术(Zero-Knowledge Proof)并非新概念,细细梳理可知,迄今已经经过 40 年的发展,诞生出多种模型和应用。
进入 Web3 时代,早在 2017 年,V 神便已经注意到 ZK 技术在以太坊上的使用潜力,而最近 Starkware 获得 1 亿美元的融资使其总融资额度达 2.25 亿,这代表机构是以公链级别的估值和潜力来看待 ZK 技术。这将是一个长期鏖战的领域,会暴露出更多的投资机会。
向后推演 20 年,R3PO 认为 ZK 发展至少具备一个甲子的生命长度,因此描绘整个 ZK 的发展历程需要追本溯源,以更好地厘清其发展逻辑,寻找到下一步的潜在机会。
本系列首篇将会从零知识证明起步,超越 ZK 只能应用于 L2 领域的固有观念,带给大家全新的系统性认知。
零起步:ZK 的组装过程
1982:财不外露,便分高低
对于财富的追求自古有之,项羽就说过:「富贵不还乡,如衣锦夜行」,但太多的财富会引人觊觎,有没有一种办法,在既不暴露财富数量的同时又比较出财富的多寡呢?
1982 年,后来的图灵奖得主姚期智便设想过这个问题,这就是著名的百万富翁问题,省略其数学过程,其大致运作模式如下:
- Alice 和 Bob 选择代表自己财富数量的数字 i 和 j,取值区间在 1-10 之间;
- Alice 对 i 进行单向加密,并将加密后的结果 k 发送给 Bob,Bob 得到一个与 i 相关的新值;
- Bob 对 k 进行运算后会得到一个新值 m,并将其传递回 Alice 此时,Alice 可以判断 m 和 i 的关系。
- 这个过程可以继续推演,双方可在不完成信息暴露的前提下最终完成比较。
当然,以上过程并不全面,但足以说明一个问题,我们确实可以在两方之间,并且在不暴露信息的前提下进行计算,如果将两方扩展至多方,将区间扩展至更大范围,那么这就是典型的多方安全计算 MPC (Secure Multi-party Computation) 问题。
百万富翁问题是 ZK 讨论的一个起点:
- 在不暴露财富信息的前提下,符合零知识的定义;
- 在不借助第三方进行评估的条件下,考察的是两者或者参与方之间的直接交互。
1985:零知识证明面世
1985 年,Goldwasser、Micali 和 Rackoff 首次提出 Zero-Knowledge Proof 模型,准确而言是「交互式零知识证明」模型,简单而言就是允许在多次交互的前提下,通过 ZK 技术来验证真假、大小。
此处的零知识并不完全准确,以 Alice 和 Bob 的互动为例,Alice 和 Bob 可以互为验证者和证明者,但是两者间传递的信息不能和财富数量本身有关,这里的零知识是指相关性为零,而并非不传递信息。
而交互式指的是可以多次进行交互,这个过程可以反复进行,直至得出正确结果。
至此,目前所熟知的 ZK 技术迈出了成型的第一步,接下来的一切发展,都是在其上的删减增改。
1991:非交互式零知识证明
当时间来到 1991 年,Manuel Blum、Alfredo Santis、Silvio Micali 和 Giuseppe Persiano 提出非交互式零知识证明,闻名即可知,此次升级重点是进行非交互式的证明过程,也就是在双方之间不进行交互的同时,验证一个定理、假说的真伪性,这看似很反直觉,但是有一个绝妙的例子可以说明:
- Alice 和 Bob 财富自由后变身数学家。Alice 离开 web2 去环游 web3,期间 Alice 继续 ZK 研究。
- 我们假设 Alice 能够在发现一个新定理的证明时,给 Bob 写一张明信片,证明她在研究中取得了新进展。
- 这是一个非交互式的过程,准确的说,它是一个单方向的互动:只从 Alice 到 Bob。即使 Bob 想回答,他也不可能。因为 Alice 没有稳定的(或可预测的)地址,在任何邮件能到达她之前就会搬走。
- 我们约定,只要 Bob 收到邮件,我们不需要查看邮件内容,就可以确定「Alice 取得了研究上的新进展」这个命题为真。
非交互式零知识证明将交互次数减少到最多一次,可实现线下验证和公开验证,前者为 Rollups 奠定了有效性基础,后者耦合区块链的广播机制,可避免多次计算带来的资源浪费。
至此,我们目前见到的 ZK 便已经成为成熟理论模型,但此时的 ZK 更多是数学和密码学领域的研究对象,和区块链并无太多关联,而在比特币出现后,加密技术 + 区块链才成为研究的方向,而 ZK 无疑是其中的佼佼者。
值得注意的是,中本聪本人并不排斥 ZK 技术在比特币网络的使用,更多的是当时的 ZK 技术不成熟,因此最终选择了较为安全的 ECC 算法,而 ZK 本身可以直接应用到 Layer1 区块链上,Zcash、Mina,以及以太坊的伊斯坦布尔升级都涉及到了零知识证明的相关领域。
一相逢:SNARK 介入区块链
2010-2014 Zcash:SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) 实用化场景
在比特币网络出现后,安全和隐私成为人们对区块链的最初认知。市场上出现了一系列基于隐私的公链和应用,如 Zerocash/Zcash 使用的 SNARKs,以及在 Monero 中使用的子弹证明 Bulletproofs(BP)等。
关于【追溯零知识证明技术史:蕴藏下一个千亿应用?】的延伸阅读
Coin Metrics:分析以太坊 Blob 与 EIP-4844 的影响
自3月13日起,多个Layer-2解决方案采用blob交易,超过950,000个blob已发布到以太坊,降低了操作成本。EIP-4844升级提高了L2的可伸缩性和降低交易成本,每天约有10,000个blob发布。blob被设计为18天后过期,防止永久存储膨胀。随着rollups使用blob发布大量数据,blob空间利用率将增加。blob费用根据需求动态调整,4月份因铭文blob激增而增加,但随后又降低。Blob的采用是EIP-4844降低数据存储开销和增强L2可伸缩性的积极信号。然而,跨资产、流动性和用户体验碎片化等挑战仍需解决。随着更多L2利用blob,拥塞可能会再次出现。
Stacks Nakamoto 升级,BTC生态的文艺复兴
Stacks是一个跨链共识区块链,旨在将智能合约功能移植到比特币网络中。其共识机制为转移证明,通过燃烧比特币来参与挖矿。Stacks 2.0主网已推出,获得美国证券交易委员会批准的代币销售。Stacks 3.0升级解决了安全性、性能和可扩展性等问题,引入签名者角色,提高链的可扩展性。Nakamoto升级解决了MEV问题,提高了挖矿过程的公平性和稳定性。升级将在4月22日开始,提高Stacks区块链的透明度和信任度。
2010 年,Groth 实现了首个基于 ECC 算法的,O(1) 常数级的 ZK。也即 ZK-SNARKs 或者 ZK-SNARGs。
- SNARGs:Succinct Non-Interactive Arguments
- SNARKs:Succinct Non-Interactive Arguments of Knowledge
从应用角度来说,此次改进在于「简洁」Succinct 功能上,具体而言,SNARK 致力于压缩信息本身的大小,在 ZCash 中,程序电路是固定的,因此多项式验证也是固定的,这使得设置只需执行一次,交易后续只需改变输入便可复用。
在 2013 年,Pinocchio 协议提升效率至分钟级别证明,以及毫秒级别的验证时间,开销控制在 300 字节以内,这也是 ZK-SNARKs 技术真正首次落地到区块链领域。
这证明了 ZK 技术可以在隐私场景上发挥作用,R3PO 判断后续的隐私路线会具备脱离 L2 单独存在的潜力,Aztec 证明了隐私 DeFi 路线的可行性,而在 tornado 被制裁后,链上金融隐私仍旧是强烈的刚需,这个方向的投资机会仍未被广泛发掘,值得后续期待。
此外,隐私币项目 Zerocash 进一步改进了相关算法,使用的是 SCIPR Lab 优化后的 zk-SNARKs 算法,在理论条件下,可以做到既隐藏付款来源、接受者和金额,并且交易可以控制在 1KB 以内,验证时间在 6ms 之内。
Mina:递归 ZK 压缩数据
Mina 不同于以太坊 L2,其是一条 L1 级别的高性能公链,其运行节点只有 22KB,而之所以能做到如此之小,在于其大幅度利用递归来证明 ZK 确认的有效性,即每一条信息都带有之前的确认结果。
- Step1:zk-SNARKs 证明节点有效性,只需要保存其证明结果;
- Step2:通过递归调用,确保节点有效性的正确传递和检索,不需要保留所有历史数据,实现极致压缩数据的效果;
传递结果的有效性,而非保存全节点数据,这是 Mina 证明行之有效的手段,而在以太坊 L2,ZK-Rollup 可以通过打包多次交易数据,结算一次的方式完成有效性证明,而进一步推演,L2 之上可以叠加 L3,或者 Dapp 应用,这些都是 ZK 可以发展的细分赛道,比如 dYdX 目前运行在 Starkex 之上,以及架构在 Starkware 之上的 L2 ImmutableX,都证明 ZK 的使用潜力,这个赛道的价值目前仍未被全部挖掘,仍留有长期的投资价值。
至此,ZK-Rollup 涉及所有的技术要件就已经基本齐备了,我们已经装备好足够的 ZK 基础知识,并且可以总结 ZK 的以下特点:
- 非交互式:不需要多次验证,只需一次验证就可以广播至全网;
- 零知识:不需要透露信息本身的特征,可在全网进行公开传播;
- 知识:知识不是公开、易得的信息,必须具备独特的价值,比如经济价值、隐私价值等;
- 证明:证明由数学手段确认,安全性经过多年研究和实践检验;
如果将这些技术特点组合起来,我们可以发现,ZK 天然适合 L2 扩容,并且又不局限于 L2,ZK 技术的其他应用会在后文中持续发表,欢迎大家继续关注。
双龙会:STARK 终将取 SNARK 而代之
ZK-STARK:开发难度以 10 年计的种子选手
对比二者的差异,主要在于 STARK 中的 S 是 Scalability 之意,面向的是更加大型数据的复杂使用场景,但其整体上仍旧是一个正在发展中的技术路线。
本文不过多涉及具体 L2 之间的区别,但有一点很明显,除 StarkWare 之外,其他的 L2 项目,包括 zkSync、Aztec、Loopring、Scroll 等都采用的是 SNARKs 技术路线。
究其原因,在于 STARK 的开发难度过大,目前只有 StarkWare 有能力进行自研,但其好处也十分明显,相较于 SNARK,其可承载的运算量也会更大,在运行大型数据时,其安全性会更高,比如游戏、社交、NFT 等方向。
其次,STARK 路线具备抗量子攻击的特性,这在未来十年具备颠覆行业格局能力的可能,比特币采用的 ECC 算法并不能完全具备抗量子破解的可能,如果加入 zk-STARKs 技术,其安全性会显著提高。
可以总结以太坊 L2 的格局,短期 Optimistic Rollup,5 年后 zk-SNARKs 路线,10 年后 zk-STARK 路线终将会胜出。
ZK-Rollup:数据的上探,信息的下钻
介绍完 zk-STARKs 之后,L2 扩容的全部技术特征便已完备,只缺少对 Rollup 的介绍,实际上,Rollup 利用的是 ZK 的验证机制,而摆脱其对数据量的需求:在 L1 负责共识和结算的前提下,由 L2 负责应用的具体日常运营,用户不需要和 L1 直接交互,其体验会高度接近于目前的 App。
更进一步的说,Rollup 在完成信息的打包后,会将验证后的信息加密成知识,随后传递给 L1,以攻破安全性、去中心化和扩展性的不可能三角。
总结
我们从百万富翁问题出发,由 MPC 问题过渡到零知识证明领域,出于经济原因,交互式的零知识证明不完全适用于链上活动,而非交互零知识证明逐渐成为主流。
随着 Zcash 的发展,SNARKs 技术日渐应用到其中,使 ZK 技术从单纯的密码学研究对象变身为区块链领域中使用的工程手段,在隐私、安全、效率方面发挥自己的作用。
以太坊扩容场景,则使 ZK 成就了 L2,Rollup 技术路线战胜其他竞争对手,zk-STARKs 也逐渐发展起来,有望激活挖矿、GameFi、NFT 等更为普遍的使用场景。
在以太坊之外,越来越多的新模式已经逐步涌现,比如可定制模块化 Rollup 路线,又如刚完成 1500 万美元融资的 Eclipse,其路线图会支持 Move 语言和 Solona 网络,以及完成 3000 万美元融资的 Scroll,其希望建立 EVM 等效的 ZK-Rollup。
新故事背后的驱动力是对 ZK 技术的认可,广泛来说,ZK 是一个「大而全,长而远」的领域,大额融资消息的不断传出也说明市场对其接受度在逐步走高,但总体而言,这还是一个新领域,即使仅论其技术路线,也有「内卷」的流派,而其中的投资机会则长期存在,无论是内嵌入底层基础设施,还是落地于具体应用场景,需要我们不断去发掘。
责任编辑:Felix
免责声明:本文仅代表作者个人观点,不代表链观CHAINLOOK立场,不承担法律责任。文章及观点也不构成投资意见。请用户理性看待市场风险,以及遵守所在国家和地区的相关法律法规。
图文来源:R3PO,如有侵权请联系删除。转载或引用请注明文章出处!