作者:Haotian,独立研究员 来源:X,@tmel0211
以太坊从Plasma到Validium再到主流Rollup,比特币从侧链到状态通道再到客户端验证,Layer2本质上都在找一套兼顾安全、可扩展性、去中心化的Tradeoff方案。基于此,我对比了ZK-Rollup和最近热议的@BsquaredNetwork方案,从DA实现、可交互操作性、安全挑战等技术实现方面,探讨下比特币layer2的差异性和复杂性。
为了更好地做同比参考,可以先模糊“定义”一组对应关系:
ETH Plasma = BTC 状态通道;ETH Validium = BTC 侧链;ETH Rollup = BTC 客户端验证。
不难看出,以太坊Plasma对应比特币生态Lightning Network,承接了BTC的安全性性,但HTLC合约目前受限于小额支付Payment方向;以太坊Validium对应比特币生态的侧链,扩展性很强悍,但一套独立的共识让它始终不受主流认可;以太坊Rollup我倾向于对应比特币生态的客户端验证,安全性、可扩展性,去中心化特性会取综合权衡点,以太坊Rollup也正因为此成了一条主流焦点赛道。
顺着以太坊ZK-Rollup的思路,我们以比特币客户端验证为突破口,比特币layer2 Rollup方案该如何构建呢?以@BsquaredNetwork为例探讨下:
1)客户端验证部分:
在一个完整的以太坊ZK-Rollup中,链下环节包括Sequencer收集并batch交易,会生成ZK SNARK证明和Merkle树等打包同步到主网Calldata,然后链下会把ZK SNARK证明经过Prover系统的验证,将最终的State diff上传到主网,主网根据State root根再结合Calldata中的区块数据,验证数据的完整性和一致性,最终完成Finality状态确认。
Bsquare的客户端部分,主要包含Rollup layer 和DA layer两大部分,Rollup layer的工作流程大致为:Sequencer 收集并Batch交易,先同步到去中心化存储环境下一份,然后经zkEVM生成Proof证明,与此同时把交易Raw data,Merkle树以及Bitcoin state等数据汇总成Aggregator联合Proof证明一起同步给DA layer的B²nodes。
过程中有两个差异,一方面比特币需要将TXs原始数据同步到去中心化存储环境下,而zk-Rollup默认了本地环境存储;另一方面以太坊可以直接把数据汇总同步到主网Call Data,但比特币主网存储量有限,验证能力缺失,因此Bsquare将这些数据同步到了客户端环境下的B²nodes。
2)Data Availability部分
在以太坊系统中,主网来给Rollup链输出DA能力,Rollup把数据同步到Calldata的操作目的正为主网的DA验证能力,鉴于比特币主网不具备验证能力,DA功能由客户端环境下构建的DA layer来承担。
DA layer中的B²nodes在收到这部分Rollup汇总数据后,会进行电路编译操作,将数据压缩后以Inscription铭文的方式上传到比特币主网。与此同时B²nodes也会运转Prover系统对ZK证明进行去中心化验证生成比特币Commitment承诺,该承诺会连同Rollupdata等汇总数据一同去刻铭文。
这里会产生两个疑问:
1、为何不直接用Celestia这类第三方DA而选择自己构建,这正是比特币生态的特殊性所决定,B²node需要配备indexer索引器对inscribe到比特币主网的铭文进行去中心化解析和索引,同时生成的ZK Proof会议Commitment的形式上传到主网,在刻铭文的时候还需要对数据进行Circuit电路预编译压缩,以确保降低对主网存储空间的占用。
2、既然DA并非由主网提供,为何要把各类Rollup数据以铭文形式同步到主网,这其实是在主网保留一个不可篡改的交易记录,为后续的Challenge过程提供基础。
3)Challenge 部分
在ZK-Rollup中,主网Rollup合约的可通过Calldata中的打包数据和Prover上传到主网的State diff二次校验确保交易的完整性和一致性,这是主网具备验证能力,ZK技术的优势。
然而在比特币的Rollup环境下,由于主网缺乏验证能力,ZK技术价值本质在于SNARKs数据简洁压缩同时确保一致性,倘若在链下环境的Sequencer收集交易过程中就存在数据作假,整个链条的数据都是假的,Finality状态确认并无法拒绝作假的数据,因此要设计一套机制要对“作假”行为进行挑战。
要如何做呢?大家回看我关于BitVM的文章就会知道,BitVM是一种理论假设下可以让比特币实现图灵完备计算的方案,只不过其预编译电路向比特币主网传输TXs的Taproot Tree方式过于消耗矿工费而不现实,如果借鉴BitVM的实现逻辑来进行挑战机制设计就不一样了。
挑战机制会在主网UTXO中锁仓BTC,一旦用户以BitVM的形式向layer2链发起挑战,就可以拿走提前锁仓在比特币主网的资产。而刻录在比特币主网的铭文以及公开透明的B²nodes等Raw data、Merkle树、Commitment承诺等都会成为用户发起挑战的证据,一旦挑战结果证明B²nodes中的一系列数据和主网铭刻的Inscription数据存在不一致问题,B²nodes的节点不仅会失去锁在主网UTXO中的资产,还需要将交易回滚,重新更新索引器和历史数据。
以上不难看出,比特币生态的layer2 Rollup方案有相当的技术复杂性和特殊性:比如客户端验证环节要基于去中心化存储将Sequencer产生的一切数据都留底,为了确保数据可追溯;又比如DA环节要在链下环境构建一套去中心化数据验证系统,并且通过Commitment承诺和刻录铭文的方式来保证DA数据的一致性;又比如即使采用了ZK技术,也需要配备公开透明的挑战机制以确保安全;整个过程要权衡一套去中心化、安全、可扩展性三个矛盾点得到一个公允的方案出来。
探索的雏形答案显而易见:既然比特币主网无法验证,无法DA,那就利用铭文向主网刻录受限的DA+一套基于BitVM电路的图灵完备挑战系统来实现Rollup链的透明性和安全性。以ZK技术+BitVM挑战系统来弥补比特币缺失的DA和验证能力。
既然以太坊Rollup也还存在Rollup合约可Update的多签合约治理隐患,也不能百分百确保安全,大家相信的其实是一套相对透明公开的合约交互机制,那现在做不到绝对BTC共识安全,摆在面前是一套基于BitVM的透明公开挑战机制,虽然技术实现复杂太多,逻辑似乎也Make Sense。
总之,比特币Layer2这套ZK技术+客户端验证+DA铭刻+BitVM挑战的范式若逐渐得到市场认可,你觉得会成为新一轮的比特币layer2 Rollup标榜吗?