Citrea 的 ZK-Rollup: 比特币未尽之事
ScaleBit
2024-08-21 18:00
订阅此专栏
收藏此文章



最近,宣称第一个采用 ZK-Rollup 方案的 Bitcoin Layer-2 项目,Citrea,在即将上线测试网之际,受到了来自社区的疑问。其宣传 Citrea 采用了一些欺骗性的话术,将它们的项目进行了过度包装。在这个风口浪尖,毫无疑问就是研究 Citrea 和 BitVM 最好的时机。


一切的起因是:ZKP 在基于以太坊的 Layer2 上大显身手,使得许多项目都在寄希望于 ZKP 是否能够同样的用于 Bitcoin Layer-2 上。显然,大量的开发者(特别是最挑剔的那些人)对比特币 Layer2 的发展非常不看好,而它们的担忧也是很有道理的。常规的 Layer2, 如基于以太坊的 optimisic, zkrollup, 都是通过链下计算,链上验证的方式,对一层网络的数据进行压缩,以及对计算资源进行扩展。单由于 Bitcoin 网络并不支持复杂逻辑的 validation,因此这个方案难以实现。因此,大部分声称自己采用了零知识证明技术的 Bitcoin Layer-2 项目,都采用了一种叫做 Sovereign Rollup 的方案。

The Sovereign Rollup

长话短说,Sovereign Rollup 的关键在于:bitcoin 网络只负责将关键的承诺信息用铭文的方式存储在 Bitcoin Network 中,而验证全部由链下进行(客户端验证)。总而言之,比特币网络中的数据,解释权属于 Layer2 网络。对于一个不清楚规则的参与者,这些比特币网络中的数据毫无意义。但是如果参与者清楚这些数据的使用方式,那么任何一个用户都能够自己建设节点。从这个角度看,Sovereign Rollup 的确具有相当的积极意义,它能够达到 Layer2 网络的一些基本要求,即数据的 finalized 能够被比特币共识所保护,同时其 Layer2 的解析也可以是去中心化的。


听起来第二种方案似乎是第一种方案的妥协,但这点事实上存在极大的争论。大量方案二的支持者认为,Bitcoin 本来就不必和 Ethereum 一样:第一种方案的支持者,事实上依然在用以太坊的观点看待比特币,即,它们认为数据的存储以及验证,都应该发生在 Layer-1。但事实上这并不是必要的,因为数据的验证非常浪费 Layer-1 的效率。在理想的情况下,任何一个智能合约都应该只由一个节点执行,而其他节点只需要验证执行的结果以及其对应的证据就足够了。强制要求所有 Layer-1 的节点进行验证,本身就并不一定是最佳答案。

sovereign rollup 原理: 在链上存证,链下验证


这种哲学正是 Sovereign Rollup 的核心,即基于客户端验证的思想。总之,妥协也好,创新也罢,就在大家已经准备接受 Bitcoin 独有的 Layer-2 技术路线时,BitVM 诞生了。


BitVM

关于 BitVM 到底是什么,对于社区中的大部分人而言是神秘的:BitVM 似乎提出了一个能够在一层进行 ZKP 验证的方案,但是这个方案又最终需要用乐观 Rollup 的方法去执行。早期的 BitVM 还提出要在比特币上模拟 CPU,以实现一切可能的计算 - 听起来就像在 Minecraft 里面使用红石建造计算机一样。这些怪异的说法让多数人对其嗤之以鼻,并采用了更加实际的路线如 DLC 或是账户托管来保护 Layer-2 的资产安全。然而,也有一部分项目认为 BitVM 是 Layer-2 的未来,并且投入了大量的研究,例如今天的主角Citrea。显然,搞清楚 BitVM 究竟是什么至关重要。


为了弄清楚 BitVM 的真相,我们将采用最直接的方式:分析 BitVM 的 Github Repository。总体来看,BitVM 仓库的核心包括:

  • 一个虚拟的 Bitcoin Script 运行环境。

  • 用于拼接 Bitcoin Script 脚本的辅助函数。

目前 BitVM 的构建,主要是通过将 Bitcoin 的 Opcode 进行组合,来实现更加复杂的计算;而并非采用初始版本中提到的,使用 OP_XOR 去构建计算组件。显然,这是一个更加实际的路线。让我们用一个实际的例子来看它到底是如何工作的:通过将 Opcode 进行组合,进行 uint32 类型的整数计算。

BitVM 实际上很像是积木:由基础的 OP_CODE 拼接而成


在这里例子中,我们能够发现两种不同的元素: Opcode,以及已经被封装过的一系列新的 Opcode。其中,带有 OP_ 前缀的是比特币脚本原生的 Opcode,而诸如 u8_add_carry 这样的函数,则代表着已经被封装过的,由 BitVM 自定义的新 Opcode。显然,这个函数 u32_add 本身,也会被用于其他进一步的 Opcode 构造。


这听起来有些小儿科,但不要小看这些功能,它实际上是进一步构造 ZKP 的基础;通过 u32 的计算,就能够逐步构造 bigint,乃至于 bn256 的计算,最终得到证明构造系统。并且从仓库看来,它们已经得到了许多值得一提的成就:它们已经能够构建基于 Groth16 的验证函数!看起来,它们离最终构建出可用的 ZKP 的距离已经不遥远了。


Citrea 与 BitVM

在了解到了 BitVM 的现状之后,我们当然乐见其成,这对整个 Bitcoin Layer-2 的生态都有着极为积极的意义。但是我们也同时注意到,Bitcoin Layer-2 的爆发,和 BitVM 的开发步调之间,存在着一定的不同步。毕竟时间不等人,宣称自己采用了 BitVM 的项目,其实更多应该被理解为“将会采用 BitVM”,毕竟尽管成果喜人,但它还暂时不能够投入商用。这样看来,Citrea 宣称自己为第一个 Bitcoin 上的 zk-rollup,就难免引起争议了。 

在 BitVM 正式完成前,Citrea 是一种自主 Rollup


我们首先最关心的问题是:目前 Citrea 与 BitVM,乃至于 ZKP 之间的关系到底是怎样的?显然,最好的办法依旧是深入 Citrea 项目的代码,来观察目前它们的进展。在分析了它们测试网的官方仓库之后,我们发现了一些有趣的事情:


(1)Sovereign Rollup

Citrea 目前依旧是一个典型的 Sovereign Rollup,而并没有实现真正等效于 Ethereum Layer-2 的 zk-rollup。关于这点,事实上 Citrea 在它们的测试网公告中也提到,即目前 BitVM 与它们的核心组件,Clamentiane (https://www.blog.citrea.xyz/unveiling-clementine/),还没有完成。当前的情况是,它们会将 Citrea 网络中的账户状态保存为一个默克尔树根,并且在比特币上,通过 Inscription 的方式,同时记录默克尔树根的变化以及其对应的 ZKPs。显然,在比特币上进行铭刻是无需任何限制的;因此,这些 ZKPs 和默克尔树根,需要由 Citrea 的节点进行主动的验证。与此同时,比特币只负责对其状态进行最终化,但并不负责保证其正确性。因此很遗憾,Citrea 目前依旧是典型的 Sovereign Rollup;其 BitVM 参与的部分也仅在于节点对 ZKPs 进行主动验证的部分。

自主验证的局限:无法确保链上证据的有效性


(2)RISC0

Citrea 对于它们的 ZKPs 以及 zkEVM 部分,采用了 RISC0 提供的 SDK 作为它们构建的基础。RISC0 是一个 2022 年诞生的,比较新的 ZKPs 解决方案。RISC0 和 Cairo 有着非常类似的愿景 - 通过构建一个 zkVM,令 ZKPs 能够进行任何通用计算;但是相比于 Cairo,RISC0 本身并不是一种语言,它可以直接通过 Rust 当中提供的 SDK 进行构建。之后,再通过其定制的 zkVM 进行计算。除去 RISC0,基于 zk-STARK 的 Cairo VM 也被 Bitcoin Layer-2 所青睐。我们注意到不少项目都在采用这种通用计算 +zkVM 的模式,来替代 zk 语言 + zk Prover + zk Verifier 的模式。这是由于 Bitcoin 中暂时无法提供 zk Verifier,因此对于 Sovereign Rollup 而言,直接采用 zkVM 无疑是更加经济和高效的办法。


结语

首先关于 Citrea 最近的争议,它们的团队很明确的指出了,其对 BitVM 的兼容还尚未完成;这个结论代表了能够完全继承比特币安全性的 Rollup 还没有出现。但是在观察整个项目的过程中,我们也看到了基于 Bitcoin Layer-2,还有着连续不断地创新;同时,还有大量的项目在前仆后继的挑战比特币的 zk-rollup,如 Bitlayer,Alpenlabs,BVM network 等,这些都在驱动着我们持续跟踪和分析比特币当中 Rollup 的进展。



关于 ScaleBit

ScaleBit,BitsLab 旗下子品牌,是一个为 Web3 Mass Adoption 提供安全解决方案的区块链安全团队。凭借在区块链跨链和零知识证明等扩展技术方面的专业能力,我们主要为 ZKP、Bitcoin Layer 2 和跨链应用提供细致和尖端的安全审计。


ScaleBit 团队由在学术界和企业界都有丰富经验的安全专家组成,致力于为可扩展的区块链生态系统的大规模应用提供安全保障。


https://www.scalebit.xyz/

https://twitter.com/scalebit_


END


点击卡片,关注 ScaleBit ~

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

ScaleBit
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开