为什么说Layer2应该对BTC进行功能拓展
针对Bitcoin Magazine此前颇具意识形态色彩的“比特币Layer2三定律”,Rooch Network的Jolestar老师在推特上发表了自己对比特币Layer2的看法。
此情此景,恰似此前Nervos公链联创Jan,在推特上称“比特币Layer2不应该只考虑安全问题,还应该考虑功能拓展性,以及对BTC货币属性的赋能”。这些言论格外引人深思。
抱着对比特币Layer2相关理论进行“刨根问底”的态度,极客web3特别邀请到Jolestar老师,与Faust在不同价值观的角度,共同探讨比特币Layer2的定义框架,旨在揭示一种从DA与功能拓展角度,对比特币Layer2进行多角度定义的路径。虽然目前大家对于比特币Layer2该如何定义尚未形成共识,但相关的讨论过程仍然具有重要参考价值。
如何从技术或DA角度定义Layer2
雾月:关于如何定义Layer2的问题,其实在以太坊社区也有类似的百家争鸣。按照Jolestar老师在推特的说法,Layer2可以分为“技术或DA角度的定义”,与“功能拓展角度的定义”。那么我想先问下Jolestar老师,你对于从“DA”角度定义的Layer2怎么看?
Jolestar:其实,关键是要让大家明显感受到Layer2和Layer1,以及中心化方案的区别。我认为核心有两点:
Layer2并不创造新的区块空间。创建新区块空间的技术解决方案本质上都是Layer1。
Layer2要利用Layer1来实现DA以及安全。
雾月:Jolestar老师在这里解释下,什么叫“创建新的区块空间”?
Jolestar:这是个好问题。这里所说的区块空间,指的是通过区块链共识机制创造出的“数据存储空间”。区块链创造出的区块空间具备许多特性,比如:完全开放、不可篡改、永久存储/长期存储,蕴含着巨大价值。
Bitcoin作为最去中心化的一个区块链网络,它的区块空间的价值并没有完全发挥出来。而这波Ordinals铭文热,可以理解成对Bitcoin作为数据可用性层(DA)的价值发现。
Ordinals协议定义具有扩展性的数据格式标准,让解析、展示、交换Bitcoin上铭刻的数据有了套统一的方案。而Bitcoin上的扩展协议以及Layer2,该如何充分有效的利用Bitcoin的区块空间,是一个重要的探索方向。
雾月:关于您之前说的“Layer2要利用Layer1来实现DA以及安全”,我这里想问,怎样才算是利用Layer1实现DA?
比如,有些以太坊Layer2(如Redstone),只把DA commiment(datahash)发送到链上,commitment关联着链下数据。虽然DA数据没有被完整发布到Layer1上,但它允许任何人对Commitment发起挑战,要求排序器把完整数据On Chain。这样做算不算创造Layer1之外的区块空间?也就是说,不直接把完整的DA数据发布到Layer1,算不算Layer2?
Jolestar:这里我谈到的“实现DA”的含义,其实非常宽容,并不是说DA数据的发布就要完全依赖于Layer1,就算DA数据不是完全on chain的,只要Layer2的资产安全能够和Layer1产生关联,就行。
不同的Layer2方案,针对的应用场景不同,会有不同的DA实现路径,比如上面雾月提到的DA实现方式就很值得探索。再比如,CEX把储备证明提交到链上,就已经向这个方向靠近了一步。所以说,我这里提及的“利用Layer1实现DA”,要比以太坊基金会所说的那种方式,更宽泛。
Faust:其实,把DA数据完全on chain,是为了让任何人或节点,都能够去信任的获取到新增数据,更进一步说是为了资产安全。DA数据如果不完全on chain,也未必不安全,比如在RGB协议中,只把data Commitment发布到比特币链上,关联着的交易数据都存放在链下,这种方案依然能保证资产安全,因为用户会亲自验证与自身相关的交易行为,如果验证不通过,就不允许这样的交易生效。显然这是十分安全的。
所以在RGB协议的场景下,即便DA数据没有发布到比特币链上,用户的资产仍然安全,如果不考虑用户把数据搞丢了的场景,我会认为这种客户端亲自验证的方式,比直接把资产托付给任何公链都要可靠。即便是把资产直接托管给以太坊网络或Bitcoin主网,也没有自己运行客户端验证来的安全,因为以太坊和Bitcoin都是第三方平台。
所以说,DA是否On Chain/On Layer1,不是Layer2的必要条件,但是应该有对应的机制设计,保障DA数据的发布是可靠的,至少不该“严重威胁”到用户资产安全。
从生态和功能拓展角度看待Layer2
Jolestar:从生态和功能拓展角度定义L2时,我们关注的是L2如何利用或继承L1提供的能力。以Bitcoin为例,所有的Layer2都在讲如何赋能BTC的资产属性,如何让万亿级规模的BTC的资产,产生额外的使用场景,无论是交易,还是质押,都有非常大的想象空间。
而让一个区块链系统的资产到另外一个系统中交易,都需要一个桥,而这里的关键问题是如何让用户信任这个桥,并保证资产的安全。从这个角度,所有通过桥给BTC资产创造使用场景的方案,都可以理解成宽泛的Bitcoin L2。甚至BTC ETF也可以理解成Bitcoin的L2,它是一个完全中心化的托管的桥,通过法律监管保证安全。
所以大家纠结的不是去中心化问题,而是信任问题。去中心化的方案可以降低用户的信任成本,给新的项目带来机会,但Bitcoin上如何构造安全的去信任的桥,是一个关键难题,L2能不能利用Bitcoin的其他特性来提高这个桥的安全性。另外,随着Bitcoin上的扩展协议发展,无论是Ordinals,以及Ordinals之上的扩展协议(BRC20等),Atomicals,还是RGB,Taprootassets等,Bitcoin上的新型资产会越来越多,如何让这个桥具有扩展性,可以快速的支持新的资产类型,是一个巨大的挑战。
Faust:Jolestar老师可能更看好那种宽泛的Layer2定义方案。但按照我个人的看法,Layer2乃至于模块化区块链,是在以太坊社区火热起来的,西方人那边更多还是站在以太坊式的Layer2定义标准,来评判如今的比特币生态,这在很多西方KOL身上可见一斑。
比如Oridnals交易平台Bioniq的CEO@BobBodily,就曾指出比特币生态需要L2BEAT那样的组织来评判Layer2;Citrea的联创更是直接引用L2BEAT发明的一些技术名词,如Optimium等,来概括某些特殊的比特币Layer2方案。Bitcoin Magazine的CEO,更是扬言要直接聘请L2BEAT的人来评审比特币Layer2。[注:Optimium就是指,不在Layer1上发布完整DA数据的 OP Rollup]
如果从以太坊/Celestia的视角来看待很多“比特币Layer2”,会发现目前BTC生态有一个点很重要,就是很多项目方并没有很精确的找准自己的定位,Self Position往往有问题。比如,Celestia这种东西,你觉得算是以太坊Layer2吗?当然不算,但他是Layer2生态版图里的重要DA层模块,是影响力最大的一个。
类似的道理,很多项目不是Layer2本身,而是Layer2所依赖的基础设施或模块,本质就是Jolestar说的那种功能拓展层。这就好比,B^2 Network与B^Hub网络的关系一样,前者是典型的Layer2方案,而后者是Layer2方案所依赖的设施。
现在比特币生态里很多项目的定位有点混乱,为了降低沟通成本,便于让大家理解,就直接把自己定位成Layer2。但事实上,有不少项目是类似于Celestia和Avail的,Layer2组件堆栈中的核心模块,而不是完整的Layer2本身。
具体该怎么分门别类,西方社区尤其是模块化区块链相关社区里的人,肯定一清二楚。相信西方的OG会把“哪些是Layer2本身,哪些是Layer2所依赖的功能拓展层”,给彻底区分开,到时候大家才能更清晰的看清整个Layer2生态体系,不至于像现在这么乱。
Jolestar:这里我有一些与Faust不同的看法。如果我们抛开具体的实现方式,抽象的理解Layer2和其他链下拓展方案,会发现它是一个连续光谱,从最左端的CEX,到最右端的Layer1,中间地带的解决方案都可以囊括到这个光谱范围内。
这个光谱的两端也代表着两种不同的成长模式。CEX基本是完全产品和用户导向的成长方式,而L1构建周期比较长,则是叙事和蓝图优先,而L2则在中间,会是一种混合的成长模式。
采取包容性视角,我们无需过分纠结于何为“真正的Layer2”。业界创造的各种技术和方案,Validium、Plasma、主权rollup、OP/ZkRollup,模块化执行层、去中心化计算、侧链、L2/L3等,都应被视为这一光谱的一部分,行业通过各种排列组合方式探索着新的应用需要的基础设施。
而不同的项目对新应用的假设不同,也决定了它的组合方式和成长模式,它可能是Layer1向左一点,或者CEX向右一点。未来是不确定的,这个阶段很难断言哪种模式会成长起来,但有一点是确定的,行业经过这么多年的摸索,有了上规模Layer1,有了上规模的CEX,也需要有上规模的中间层填补这个沟壑。
可以通过怎样的方式拓展Bitcoin网络
Jolestar:关于这个话题,我想先简单讲讲Bitcoin脚本的可编程能力。
BitcoinScript的编程能力有限,它对资产的编程能力主要表现为三种锁:时间锁,Hash锁,私钥锁。而Taproot让BitcoinScript的复杂度可以上一个量级,这为bitvm这类方案创造了可能。但更关键的问题在于,Bitcoin Script是无状态的,作为一种链上执行的编程语言,它无法读取Bitcoin的状态,比如时间戳、过往区块的nonce、以及UTXO上附加的寄生资产信息等。
比特币script只能依赖交易输入中附带的信息,我们能否利用Bitcoin脚本对链下恶意行为实现仲裁,依然是一个待探索的方向。
另外一个角度是密码学上的创新,包括基于密钥交换来构造博弈机制来保证安全的协议,比如闪电网络,“可提取的一次性签名”等。
在这里我想讲一个叫StackableL2(堆叠式L2)的概念。如果我们通过智能合约来实现Bitcoin的扩展协议的Indexer,在Indexer中解析Bitcoin上的所有UTXO以及附加的状态,允许开发者通过智能合约部署应用到Indexer中,相当于给Bitcoin提供了一种新的智能合约层,这就是我们Rooch Network的方案。
之前我把这种模式叫做智能Indexer,但Indexer的概念给人的感觉就是只读的,所以用了一个新词“Stackable L2”,指所有在L2中包含L1全状态的扩展方案,它完全继承了L1的所有状态。这种情况下,L2的应用即可以读取L1上的所有状态,同时也可以创建新的状态,L1和L2的资产可以通过堆叠组合来形成新的资产。而L2的安全,可以通过模块化的方案来保证。
雾月:能否举个例子说明L1和L2的资产可以通过堆叠组合来形成新的资产?
Jolestar:比如在Bitcoin上有一个铭文来表达一块地。然后L2可以在上面堆叠一个房子,他们整体形成了一种资产,它的价值就高于原始的地块。然后有人再把这个房子打造成一个展览馆,然后价值又不一样了。其实这个模式和现实世界中的资产增值模式是类似的。现实世界中的资产也是通过合成,组合,堆叠方式来实现增值的。
雾月:堆叠式的L2这个概念有点意思,这个想法是怎么产生的,现在有其他类似的项目在做这类事情吗?
Jolestar:我们是从如何继承Bitcoin上的已有状态,无论是UTXO还是铭文来思考的。开始想用一种Merkle证明的方式,Layer2节点只保存Bitcoin的区块头,并不保存比特币网络的“全量状态”。但实现的时候发现,这种方案用户和开发者体验比较差,不能很好的支持铭文等新型资产。所以后面演化到了保存“全量状态”的形式。
我们看到市场上有类似构思的项目,Ethereum社区有一种叫做Booster Rollup的方案,有个叫Taiko的项目,就是在Layer2保存了Layer1的全量状态,L2中的智能合约可以直接读取到L1的所有状态。当然具体实现上我们还是有差异的,比如它是EVM虚拟机,Rooch是Move智能合约,DA以及安全机制上也有不同。
雾月:在上面的场景里,Rooch的Move语言有什么优势吗?
Jolestar:Move中的资产都表达成资源或者Object,而Bitcoin的UTXO以及铭文(Inscription),都可以直接映射为Move中的Object。它们属于用户Owner的Object。Bitcoin上编程能力受限的一个关键原因是很难表达共享状态,而Move有Shared Object的概念,在Layer2配合起来可以提供不错的编程体验。
CKB团队提出的RGB++协议与同构映射,是这类思想的先驱,只不过他们的Cell是比Move语言中的Object,更彻底、更纯粹的UTXO,但核心理念其实差不多。
Move的另外一个优势是它的组合能力,可以在一种资产中嵌套另外一种资产。比如前面那个例子,房子必须是嵌套在地块中的,否则很难实现地块和房子的原子化转让。
Faust:这里面Jolestar提到了RGB++,的确RGB++就是典型的从功能角度去拓展比特币UTXO的方案。RGB++也不只是适用于CKB自身,也适用于Cardano、Fuel或是Sui等和UTXO或类似状态存储模型沾边的公链。
从这个角度看,CKB、Cardano、Sui、Rooch都可以作为比特币的功能拓展层,这一点无可厚非。现在西方社区过分纠结于“安全性”,而忽视了比特币UTXO功能的拓展,是我们该重视起来的。
雾月:Rooch Network现在是一个什么状态了?上面的方案技术上有哪些挑战?
Jolestar:我们正在准备RoochBTC先行网的启动,以及启动后的运营活动。RoochBTC先行网会包含Bitcoin上的全量UTXO状态以及铭文,正在做最后的数据校验以及升级机制方面的改进。
Bitcoin上的全量数据大约有几百G,如果把UTXO以及铭文全量解析出来用Move语言来表达,数据量会再增加几倍。现在各种铭文协议比较多,铭文协议的标准化实现也不完备,很难一次性全部支持,我们需要提供一种动态支持新铭文协议的机制,然后根据社区的反馈逐步增加新协议的支持。
现在测试网已经上线了,欢迎对Bitcoin以及Move感兴趣的开发者和用户来体验,以及尝试开发应用。