关于Layer 2的话题,大多数人会想到以太坊上的众多二层项目,比如Arbitrum、Zksync、Optimism、StarkWare等,也有人会说Layer 2的概念最初起源于比特币的闪电网络,后来才被Vitalik应用到以太坊上发扬光大。这些都是事实,只是观点不同。
Layer 2的概念并非比特币或以太坊独有,而是区块链技术中的一种扩容技术的大方向。
Layer 2是指建立在主网之上的一套链外解决方案,目的是在不牺牲去中心化或安全性(敲黑板!!)的情况下提高交易吞吐量。
广告 – 内文未完请往下滚动
随着BTC扩容故事不断发酵,出现了各种各样的BTC Layer 2项目。Layer 2渐渐从以技术为导向的区块链扩容路线变成了一个模糊的营销标签。
本文将针对贴着BTC Layer 2标签的项目做一个简单的技术梳理。要注意,在这个由热度主导的市场上,技术对行情的影响往往是次要的。同时由于笔者自身局限,有些技术观点可能会和外界有所出入。欢迎大家加群讨论。
全文不构成任何投资建议。
内容目录
Toggle
绕不开的老话题 Layer 2 与侧链的区别?
BTC Layer 2的技术难点——验证
MAST (默克尔抽象语法树)
Schnorr 签名
总结:BTC Layer 2可行发展道路
关于我们
上文提到了Layer 2技术的目的是在不牺牲去中心化或安全性的前提下为主网扩容,因此在狭义上也并不是一个单一的技术概念,而是包含了多种不同的方案和实现。
目前,最常见的Layer 2技术有两类:状态通道(State Channel)和Rollups。
状态通道是指在主网上建立一个双方或多方之间的通道,然后在通道内进行多次交易,只有在通道开启或关闭时才需要在主网上广播交易。
BTC的闪电网络正式采用了这种方案,通俗地讲,闪电网络的通道可以理解成一个多签地址,Bob和Alice在主网上分别向这个通道(地址)存入BTC后,双方通过闪电网络开展日常交易。
这些日常交易并不上主网,因此节省了昂贵的Gas,待有一天,双方认为不再会进行交易时,双方可以向主网发起提款命令,这个命令的签名可以向BTC主网证明双方在主网之外一系列交易账本的真实性。
在此刻主网的安全共识会介入为Bob和Alice结算并放款,因此发生在闪电网络之上的交易也就具备了BTC主网的安全水平。目前,这种方案没有实现智能合约的先例。
Rollup大家可能更为熟悉,以太坊上的Optimistic Rollups和Zero-Knowledge Rollups都是以太坊的Layer 2扩展解决方案,旨在将复杂的执行和状态存储过程移至Layer 2来提高吞吐量。
通俗地讲,主网会验证Layer 2定期提交到主网上的Proof以保证Layer 2账本的真实性(这个验证过程尤其重要)。
如此,主网就可以“实时”掌控L2账本,待L2资金跨回主网时,ETH主网的安全共识将会介入,主网的Layer 2放款合约可以在不依靠第三方信息来源的情况下,仅凭经过主网共识产生的数据来核实是否可以放款。
读到这里,相信不少读者可以意识到传统的Layer 2的本质是一个安全性与主网相同的跨链桥。有了这个意识,我们就能很好地鉴别侧链了。
侧链是指在主网之外建立一个独立的区块链网络(比如BSC),主网的共识无法鉴别侧链跨链行为的合法性。
通向侧链的跨链桥把主网上资产锁定并映射到侧链上,随后在侧链映射出的资产可以实现交易转账等功能,而在侧链回到主网时,主网的跨链桥合约只会核实侧链跨链发出的放款的消息本身的真实性,而不会验证侧链的账本。
换句话说如果跨链桥项目方作恶,恶意签名,或者侧链直接制造假账本,主网端的资金都会受到损失。
不难看出,如果按照传统的L2定义,观察主网是否可以验证主网之外的账本就能判断一条链是否是Layer 2的关键。
有了这个观念,就不难解释为什么ETH上线晚于BTC,却可以实现反超,抢先异步做出了Layer 2了。
想要弄清BTC Layer 2的技术难点,要先了解为BTC Layer 2创造可能性的BTC Taproot升级。
Taproot由Bitcoin Core贡献者Gregory Maxwell于2018年首次提出。Taproot是一项比特币协议的改进,初衷是提高比特币交易的隐私性和效率。
Taproot的核心思想是让多种条件下的交易看起来像普通的单签交易,从而减少链上数据的占用和泄露,让复杂交易(多签、时间锁)像单个比特币交易那样执行。
Taproot可以 Taproot升级引入了2个重要的技术,用来为未来的BTC Layer 2创造可能。
1)MAST(Merklized Abstract Syntax Tree 默克尔抽象语法树);
2)Schnorr 签名;
MAST是一种将复杂的脚本分解为多个子脚本,并将它们组织成一个默克尔树的结构,只有在满足某个子脚本的条件时,才需要公开该子脚本的哈希值和内容。这样可以节省空间,提高灵活性,增加隐私。
Schnorr签名是一种数字签名算法,可以实现多个签名者合并成一个签名者,并生成一个单一的签名。这样可以简化多签交易,降低费用,提高安全性,增加隐私。
MAST的意义在于,在Taproot升级前,我们要想实现复杂脚本条件,只能通过使用P2SH地址,并且必须生成具有相同哈希值的赎回脚本并将其包含到交易中。
而对于P2SH的复杂条件,交易体积会变得格外庞大。MAST可以很好地解决上述问题,也正因如此才有了BTC Layer 2发展的可能。
MAST是将默克尔树和抽象语法树相结合的一种机制。它类似于P2SH,也就是给指定哈希值的脚本付款,不同的是MAST是给指定默克尔根的哈希值付款。
MAST将一个大的条件集合组装成一棵哈希树,也就是所谓的默克尔树。在这棵树中,每个节点都是由其子节点计算出来的哈希值。
树根是一个哈希值,代表了所有条件的集合。这样在交易中就只需要包含这个根哈希,而不需要把所有条件都列出来,起到缩小交易大小的作用。
首先分别对所有脚本(条件)做哈希计算;然后将计算得到的哈希值与相邻哈希值组合起来进行哈希计算,生成一组新的哈希值。不断重复这个两两哈希计算的过程,直到计算出最后一个哈希值为止。
这个哈希值就是默克尔根。
MAST可以将比特币交易与一棵默克尔树相关联,这棵树上的每个叶子节点代表一个解锁比特币的条件。
要花费这些被锁定的比特币,需要构造一个符合默克尔树上某条路径所对应的条件的解锁脚本。
网络只需要验证这个脚本所对应的条件是否属于默克尔树的原始条件集合,也就是验证这个条件是否存在于默克尔树之上。
一旦网络确认这个脚本(以及对应的条件)属于默克尔根,就知道这个脚本符合锁定比特币的要求,然后继续验证这个解锁脚本。这样我们就不需要把完整的脚本包含在交易中,从而减小了比特币交易的大小。
需要说的是,虽然MAST极大减小交易脚本占用的空间,也提供了复杂的链上操作提供可能性,但语法树这种结构所能实现的逻辑相对来说还是比较有局限性的,因此有些声称“MAST可在比特币上实现类似智能合约的功能。”是不准确的。
目前BTC主网还不支持实现像以太坊Layer 2那样的账本验证功能,也就意味着,BTC Layer 2无法完全照搬ETH Layer 2的技术架构,要想要保证跨链桥安全,需要另辟蹊径。
如果Schnorr签名与MAST二者结合,可以为BTC主网到Layer 2的跨链桥提供一种新思路,这种技术也是目前市面上BTC Layer 2项目的主流技术方案。
Schnorr签名是Claus Schnorr提出的一种数字签名方案,以其简洁高效而闻名。它的优势在于可以将多个签名聚合成一个单一签名,从而优化多签场景下的验证和认证流程。
举例来说,在一个需要12个签名的多签交易中,每个签名可能需要占用20字节的存储空间,那么总共需要240字节来存储这12个签名。
而Schnorr签名可以将这12个签名合并成一个统一的Schnorr签名,该签名只需要大约60字节的空间。这样就节省了很多存储空间,可以用来容纳更多的交易脚本信息。
Schnorr签名可为所有n-n多签名合约提供隐私保护。其中,最典型的应用就是闪电网络支付通道,因为它本质上是一个2-2的多签合约。
而对于通用的m-n(m < n)多签来说,可以视为一个多条件脚本,每个条件是一个2-2多签,所以也可以用聚合公钥而不是明确多签来定义。 这点便是目前STX、BEVM等项目所采用的跨链技术基础:通过创建由几百个二层节点控制BTC地址来实现跨链。 基于前面的比较,BTC Layer 2解决方案显然不能简单地复制以太坊第二层的设计,因为两者之间存在固有的差异。 为了规划正确的前进道路,BTC Layer 2解决方案应专注于安全的核心本质,同时考虑到比特币的独特属性。 比特币基础层采用了简单的UTXO模型与有限的区块空间。 上文提到了即使有MAST的存在,BTC主网依然无法实现过于复杂的OP/ZKP验证逻辑。 这就注定了,BTC与以太坊Rollup不同,比特币第二层解决方案不能定期提交链上的责任记录进行验证。在比特币区块链上存储数据只能作为可用性检查点,而不能进行实际验证。 这一点是目前比较令市场担忧的,对BTC信仰者来讲,没有BTC共识参与的验证,就失去了BTC Layer 2的叙事;对ETH老用户来讲,安全性弱于ETH Rollup的技术方案也并不会有太大吸引力。 去中心化跨链能力问题。 这是至关重要Layer 2的定义,要实现安全等同于主网共识的跨链桥在BTC主网上难度很高。目前传统的比特币跨链技术,如哈希/时间锁、钩子、交换和多重签名,无法提供足够的信任保证。 在比特币2021年的Taproot升级中引入的MAST合约和Schnorr签名的组合为去中心化的比特币跨链带来希望,是实现的BTC Layer 2的主要突破点。 相较于Rollups的链上验证,目前在开发中BTC Layer 2团队需要主要深耕的方向是尽最大可能地提升跨链桥签名的安全性。 至于实现完美的Layer 2,只有比特币能升级BIP层,矿工更新底层代码,支持OP/ZKP验证和比特币矿工的计算执行,才能实现类似ETH Rollup的二层解决方案。要知道的是,这需要非常漫长的时间,也或者永远不会被矿工采纳。 Biteye是亚洲领先的Web3研究社区,通过社区和AI驱动的方式产生前瞻性的投研内容和工具,帮助社区成员探索Web3兔子洞。 微信群:添加小助手@Biteye01入群 Twitter:@BiteyeCN Discord:Discord.gg/ME582FXR4F L2 MAST 比特币