谈起 Layer 2 大多数人会想到以太坊的一众二层项目,比如 Arbitrum、Zksync、Optimism、StarkWare 等,也有人会说 Layer2 概念本起源于比特币闪电网络,后来才被 Vtalik 应用到了以太坊之上发扬光大。这些都是事实,只不过视角不同。
Layer 2 的概念并非比特币或以太坊独有,而是区块链技术中的一个扩容技术的大方向。
Layer 2 是指建立在主网之上的一套链外解决方案,目的是在不牺牲去中心化或安全性(敲黑板!!)的情况下提高交易吞吐量。
而随着 BTC 扩容叙事不断发酵,涌现出了五花八门的 BTC Layer 2 项目。Layer 2 逐渐从以技术为导向的区块链扩容路线变成一个模糊的营销标签。
本文将针对此贴着 BTC Layer 2 标签的项目做一个简单的技术梳理。要注意,在这个由热度主导的市场上,技术对行情的影响往往是次要的。同时由于笔者自身局限,有些技术观点可能会和外界有所出入。欢迎大家加群讨论。
全文不构成任何投资建议。
01 绕不开的老话题 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 了。
02 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(默克尔抽象语法树)
MAST 的意义在于,在 Taproot 升级前,我们要想实现复杂脚本条件,只能通过使用 P2SH 地址,并且必须生成具有相同哈希值的赎回脚本并将其包含到交易中。
而对于 P2SH 的复杂条件,交易体积会变得格外庞大。P2SH 地址里的 BTC,你必须生成具有相同哈希值的赎回脚本并将其包含到交易中。如果脚本中规定的花费条件太多,交易体积会变得格外庞大。
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 签名
Schnorr 签名是 Claus Schnorr 提出的一种数字签名方案,以其简洁高效而闻名。它的优势在于可以将多个签名聚合成一个单一签名,从而优化多签场景下的验证和认证流程。
举例来说,在一个需要 12 个签名的多签交易中,每个签名可能需要占用 20 字节的存储空间,那么总共需要 240 字节来存储这 12 个签名。
而 Schnorr 签名可以将这 12 个签名合并成一个统一的 Schnorr 签名,该签名只需要大约 60 字节的空间。这样就节省了很多存储空间,可以用来容纳更多的交易脚本信息。
Schnorr 签名可为所有 n-n 多签名合约提供隐私保护。其中,最典型的应用就是闪电网络支付通道,因为它本质上是一个 2-2 的多签合约。
而对于通用的 m-n (m<n) 多签合约,可以在 n-n 的情形上拓展,我们可以利用 MAST 将所有可能的解锁条件折叠成分支结构。
以 2-3 多签为例,等效于 A、B 解锁或 B、C 解锁或 A、C 解锁三种情况。这可视为一个多条件脚本,每个条件是一个 2-2 多签,所以也可以用聚合公钥而不是明确多签来定义。
这点便是目前 STX,BEVM 等项目所采用的跨链技术基础:通过创建由几百个二层节点控制 BTC 地址来实现跨链。
03 总结:BTC Layer 2 可行发展道路
基于前面的比较,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 的二层解决方案。要知道的是,这需要非常漫长的时间,也或者永远不会被矿工采纳。