自2009年诞生以来,比特币(BTC)作为全球第一种加密货币,逐渐成为数字资产和去中心化金融的基石。然而,随着用户数量和交易量的增长,BTC 网络的几个问题变得越来越明显:

  • 交易费用高:当比特币网络拥堵时,用户需要支付更高的费用才能确保交易得到及时确认。
  • 交易确认时间:比特币区块链大约每 10 分钟生成一个新区块,这意味着链上交易通常需要多次区块确认才能被视为最终交易。
  • 智能合约限制:比特币的脚本语言功能有限,因此难以实现复杂的智能合约。

在本文中,我们将闪电网络、侧链和 Rollup 等技术统称为 BTC Layer2 扩容解决方案。这些技术可实现快速、低成本的交易,同时保持 BTC 网络的去中心化和安全性。 Layer2技术的引入可以提高交易速度、降低交易成本、优化用户体验、扩大网络容量,为BTC未来的发展提供关键的技术支撑和创新。

克服比特币的限制:审计 BTC Layer2 扩容的完整指南

目前,Beosin 已成为 Merlin Chain 等多个 BTC Layer2 项目的官方安全合作伙伴,并审核了 Bitmap.Games、Surf Protocol、Savmswap、Mineral 等多个 BTC 生态协议。在过往的审计中,Ronin Network、Clover、Self Chain、Crust Network等众多知名公链均已顺利通过Beosin公链安全审计。 Beosin现已提供BTC Layer2全面审计解决方案,为整个BTC生态提供可靠、彻底的安全审计服务。

克服比特币的限制:审计 BTC Layer2 扩容的完整指南

闪电网络

闪电网络背后的最初概念被称为“支付通道”。设计理念是通过交易替换不断更新未确认交易的状态,直到最终广播到比特币网络。中本聪在2009年创建比特币时,就已经提出了支付通道的想法,甚至在比特币1.0中就包含了支付通道的代码草案。该草案允许用户在网络确认之前更新交易状态。然而,直到《比特币闪电网络:可扩展的链下即时支付》白皮书的发布,闪电网络才真正诞生并获得公众的关注。

如今,支付通道和闪电网络的实施已经相当成熟。截至目前,闪电网络由13,325个节点和49,417个通道组成,总计质押4,975 BTC。

克服比特币的限制:审计 BTC Layer2 扩容的完整指南

https://1ml.com/

在闪电网络中,保证用户资产在转账过程中的安全至关重要。下面,我们将根据网络节点的规模来阐述闪电网络的运行方式以及如何保护用户资产的安全。

相关各方向比特币主网提交两笔交易:一笔打开通道,另一笔关闭通道。该过程通常包括三个步骤:

1.频道开通:

首先,两个用户通过闪电网络将比特币存入 BTC 网络上的多重签名钱包。一旦比特币成功质押并锁定,支付通道就打开了,双方可以在该通道内进行链下交易。

克服比特币的限制:审计 BTC Layer2 扩容的完整指南

2.链下交易:

一旦通道打开,用户之间的所有转账交易都在闪电网络内处理,并且这些链下交易的数量没有限制。这些交易不需要立即提交到比特币主网,而是通过闪电网络的链下机制立即完成。

克服比特币的限制:审计 BTC Layer2 扩容的完整指南

这种链下处理方法显着提高了交易速度和效率,避免了比特币主网的拥堵和高昂的交易费用。

3.通道关闭与账本结算:

当任一用户决定退出通道时,最终的账本结算就会发生。这个过程确保通道中的所有资金都根据最新状态进行分配。然后,两个用户从多重签名钱包中提取各自的结算余额,反映通道关闭时资金的实际分配情况。最后,代表账本最终状态的交易被提交到比特币主网。
克服比特币的限制:审计 BTC Layer2 扩容的完整指南

闪电网络的优点包括:

  • 提高交易速度:
    闪电网络允许用户在链外进行交易,这意味着交易几乎可以立即完成,无需等待区块确认时间。实现秒级交易速度,极大提升用户体验。
  • 增强隐私:
    闪电网络上的链下交易不需要公开记录在比特币主链上,提高了交易隐私。主链上只需要记录通道的开启和关闭,用户的交易活动并未完全公开。
  • 支持小额支付:
    闪电网络特别适合处理小额支付,例如内容支付和物联网设备之间的支付。传统的比特币交易由于费用较高,不适合频繁的小额支付,但闪电网络解决了这个问题。

闪电网络面临的挑战包括:

  • 网络流动性:
    闪电网络依赖于通道中预先锁定的比特币。这意味着用户必须提前在支付渠道存入足够的比特币才能进行交易。流动性不足可能会导致支付失败,尤其是大额支付。
  • 路由:
    找到从发送者到接收者的有效路径可能是一个复杂的问题,尤其是随着网络规模的扩大。随着网络节点和通道数量的增加,确保支付成功完成变得更加困难。
  • 托管信任: 节点可能容易受到恶意攻击,用户需要相信它们所连接的节点不会试图窃取资金。还有一个问题是节点能否防止私钥泄露。
  • 技术标准和互操作性: 需要一致的技术标准和协议,以确保闪电网络不同实现之间的互操作性。目前,多个开发团队正在研究闪电网络的各种实现,这可能会导致兼容性问题。
  • 隐私问题: 尽管闪电网络增强了比特币交易的隐私性,但交易信息仍然可能被跟踪或分析。此外,网络节点运营商可以看到通过其节点的交易,这可能会损害一些隐私。

闪电网络的安全性直接影响比特币的链下可扩展性和用户资金的安全。因此,除了公链常见的审计项目(详见本文末尾的附录)外,闪电网络还需要解决以下关键安全风险:

  • 频道拥塞:
    评估闪电网络系统设计的全面性,确保其不易受到可能导致通道拥塞的拒绝服务攻击。
  • 频道干扰:
    评估闪电网络通道结构的安全性,确保其不易受到通道干扰攻击。
  • 频道资产锁定和解锁:
    审核闪电网络资产锁定和解锁流程,确保支付通道开通或关闭期间链上链下资金转移安全可靠。
  • 状态更新和通道关闭:
    评估通道状态更新流程和强制关闭机制,确保出现异常情况时能够准确识别并执行最新状态。
  • 时间锁和哈希时间锁定合约 (HTLC):
    评估 HTLC 的实施情况,确保正确执行时间锁定和哈希锁定条件,防止由于时间窗口问题而造成潜在的资金损失。
  • 对区块链时间戳的依赖:
    评估闪电网络对比特币区块链时间戳的依赖,以确保链上和链下时间的正确同步,防止基于时间的攻击。
  • 路由算法安全: 检查路由算法的效率和安全性,防止隐私暴露和恶意路由操纵的风险。
  • 频道存储和数据恢复:
    检查通道的存储机制和数据恢复策略,确保在节点故障或意外断线时通道状态能够恢复,防止资金损失。

侧链

与闪电网络不同,侧链是一个独立的区块链,与主链(例如 BTC 区块链)并行运行,并通过称为双向挂钩(2WP)的机制与其进行互操作。侧链的目的是在不改变主链协议的情况下实现额外的功能和可扩展性。

侧链作为一条独立的区块链,有自己的共识机制、节点和交易处理规则。可以根据具体应用场景的需要,采用不同的技术和协议。通过双向挂钩机制,侧链与主链进行通信,保证资产在侧链之间自由、安全地转移。双向挂钩机制的运作一般包括以下步骤:

克服比特币的限制:审计 BTC Layer2 扩容的完整指南

  1. 用户将BTC锁定在主链上。然后可信实体获取并使用简化支付验证(SPV)来确认用户的锁定交易是否已被确认。

  2. 可信实体向侧链上的用户发行等量的代币。

  3. 完成交易后,用户将剩余的代币锁定在侧链上。

  4. 可信实体验证交易合法性后,解锁并释放相应价值的BTC给主链上的用户。

注1:可信实体在双向挂钩机制中发挥着关键作用,管理资产的锁定和释放。这些实体必须具备高水平的可信度和技术能力,以确保用户资产的安全。

注2:SPV验证允许节点在不下载整个区块链的情况下验证特定交易的有效性。 SPV节点只需要下载区块头,并使用Merkle Tree来验证交易是否包含在区块中。

代表性侧链项目

CKB(Nervos 网络)\
Nervos Network 是一个开源公共区块链生态系统,旨在利用比特币工作量证明(PoW)共识机制的安全性和去中心化优势,同时引入更具可扩展性和灵活性的 UTXO 模型来处理交易。其核心是公共知识库(CKB),这是一个基于 RISC-V 构建并使用 PoW 作为共识机制的第 1 层区块链。它将UTXO模型扩展到Cell模型中,允许其存储任何数据并支持用任何语言编写的脚本作为链上智能合约执行。

克服比特币的限制:审计 BTC Layer2 扩容的完整指南

堆栈

Stacks 通过其传输证明 (PoX) 机制将每个 Stacks 区块与比特币区块连接起来。为了促进智能合约的开发,Stacks 设计了 ​​Clarity 编程语言。在 Clarity 中,get-burn-block-info? 函数允许输入比特币区块高度来检索区块头哈希,而 burn-block-height 关键字则检索比特币链的当前区块高度。这些功能使Clarity智能合约能够读取比特币基础链的状态,从而允许比特币交易触发合约。通过自动执行这些智能合约,Stacks 扩展了比特币的功能。关于Stacks的详细分析,可以参考Beosin之前的研究文章:什么是Stacks? BTC 第 2 层网络堆栈可能面临哪些挑战?

克服比特币的限制:审计 BTC Layer2 扩容的完整指南

侧链的优点

  • 侧链可以采用不同的技术和协议,在不影响主链稳定性和安全性的情况下实现各种实验和创新。
  • 侧链可以引入主链所没有的功能,例如智能合约、隐私保护、代币发行等,丰富区块链生态的应用场景。

侧链的挑战

  • 侧链有独立的共识机制,可能不如BTC主链安全。如果侧链共识机制薄弱或存在漏洞,可能会导致51%攻击或其他形式的攻击,危及用户资产的安全。 BTC主链的安全性依赖于其庞大的算力和广泛的节点分布,这是侧链可能无法比拟的。
  • 实施双向挂钩机制需要复杂的加密算法和协议。如果该机制存在漏洞,可能会导致主链和侧链之间的资产转移出现问题,从而可能导致资产丢失或被盗。
  • 为了平衡速度和安全性,大多数侧链比主链更加中心化。

Layer 2是一个完整的区块链系统,所以公链的一般审计项目也适用于侧链。详情请参阅本文末尾的附录。

此外,由于其独特的特性,侧链需要一些额外的审核:

  • 共识协议的安全性:
    检查侧链的共识协议(例如 PoW、PoS、DPoS)是否经过彻底验证并测试潜在漏洞或攻击向量,例如 51% 攻击或远程攻击。
  • 共识节点安全性:
    评估共识节点的安全性,包括密钥管理、节点保护、冗余备份等,防止节点被破坏或滥用。
  • 资产锁定和释放:
    检查侧链和主链之间的双向挂钩机制,确保负责锁定和释放资产的智能合约安全可靠,防止双花、资产丢失或锁定失败。
  • 跨链验证:
    检查跨链验证的准确性和安全性,确保过程去中心化和防篡改,防止验证失败或恶意验证。
  • 智能合约代码审核:
    对侧链上运行的所有智能合约进行彻底审核,检测任何潜在的漏洞或后门,特别是处理跨链操作的合约逻辑。
  • 升级机制:
    审查智能合约升级机制的安全性,确保有适当的审核和社区共识流程,以防止恶意升级或合约篡改。
  • 节点间通信:
    检查侧链节点之间通信协议的安全性,确保使用加密通道,防止中间人攻击或数据泄露。
  • 跨链通信:
    评估侧链和主链之间的通信通道,确保数据完整性和真实性,防止通信被劫持或篡改。
  • 时间戳和区块时间:
    验证侧链的时间同步机制,保证区块生成时间的一致性和准确性,防止因时间差异导致的攻击或区块回滚。
  • 链上治理安全:
    审核侧链治理机制,确保投票、提案、决策过程的透明度和安全性,防止恶意控制或攻击。
  • 代币经济审计:
    检查侧链的代币经济学,包括代币分配、激励机制和通胀模型,确保经济激励不会导致恶意行为或系统不稳定。
  • 收费机制:
    审查侧链的交易费用机制,确保其符合主链和侧链用户的需求,防止费用操纵或网络拥塞。
  • 资产安全:
    审核链上资产管理机制,确保资产存储、转移、销毁等流程安全可靠,不存在非法访问或被盗风险。
  • 密钥管理:
    检查侧链的密钥管理策略,确保私钥和访问控制的安全,防止密钥泄露或滥用。

汇总

Rollup 是一种第 2 层扩展解决方案,旨在提高区块链交易吞吐量和效率。通过聚合大量交易(“Rolling up”)并在链下处理它们,它减少了主链上的负载,仅将最终结果提交回主链。

Rollup 有两种主要类型:zk-Rollup 和 op-Rollup。然而,与以太坊不同的是,比特币缺乏图灵完备性,导致无法直接在其网络上使用智能合约进行零知识证明(ZKP)验证。这意味着传统的 zk-Rollup 解决方案无法在比特币上实现。那么,如何使用 zk-Rollup 来实现比特币 Layer 2 扩容呢?让我们以 B² Network 项目为例进行探讨:

为了对比特币进行 ZKP 验证,B² Network 开发了 Taproot 脚本,将 zk-Rollup 的零知识证明验证与 op-Rollup 的激励挑战机制相结合。其工作原理如下:

克服比特币的限制:审计 BTC Layer2 扩容的完整指南

  1. B² Network 首先将所有用户交易聚合到 Rollup 中。
  2. 然后,排序器对这些 Rollup 交易进行排序,将它们存储在去中心化存储中,并通过 zkEVM 进行处理。
  3. 同步比特币链状态后,zkEVM 会处理合约执行和其他交易,合并结果并将其发送到聚合器。
  4. 证明者生成零知识证明并将其发送到聚合器,聚合器将交易和证明结合起来并将其转发到 B² 节点。
  5. B² 节点验证零知识证明,并根据去中心化存储中存储的 Rollup 数据创建 Taproot 脚本。
  6. Taproot 是一个值为 1 聪的 UTXO,其数据结构中包含 B² Inscription,存储所有 Rollup 数据,而 Tapleaf 存储所有证明的验证数据。通过激励挑战机制后,作为基于 zk 证明的承诺提交给比特币。

汇总的优点:

  • Rollup继承了主链的安全性和去中心化特性。通过定期向主链提交交易数据和状态,保证数据的完整性和透明度。
  • Rollup 可以无缝集成到现有的区块链网络(例如以太坊)中,让开发者能够轻松利用其优势,而无需对现有智能合约和应用程序进行重大修改。
  • Rollup 通过在链下处理大量交易并将其批量提交到主链来显着提高交易吞吐量,从而显着提高每秒交易量 (TPS)。
  • 由于 Rollup 交易是在链下处理的,因此大大减少了链上交易所需的计算资源和存储空间,从而显着降低了用户交易费用。

Rollup 的挑战:

  • 如果链下数据不可用,用户可能无法验证交易并恢复其状态。
  • Rollup交易需要批量处理并最终提交到主链,这可能会导致结算时间较长。尤其是在 op-Rollup 的情况下,存在争议期,导致用户等待最终交易确认的时间更长。
  • 虽然 ZK Rollup 提供更高的安全性和即时确认,但它需要大量计算资源来生成零知识证明。

由于采用了Rollup,其关键安全审计项目与以太坊Layer 2一致。

其他(巴比伦)

除了传统的BTC Layer 2解决方案外,一些与BTC生态系统相关的新第三方协议也出现了,例如Babylon:

Babylon 旨在将 2100 万比特币转化为去中心化质押资产。与其他 BTC Layer 2 解决方案不同,Babylon 并不专注于扩展 BTC 网络。相反,它是一个独特的区块链,具有专门的 BTC 质押协议,主要用于与权益证明 (PoS) 链交互。目标是通过质押 BTC 来增强 PoS 链的安全性,解决远程攻击和中心化风险等问题。

架构分为三层:

  • 比特币层:这是 Babylon 的坚实基础,利用比特币著名的安全性来确保所有交易都是超级安全的,就像在比特币网络上一样。
  • Babylon Layer:Babylon 的核心,这个自定义区块链将比特币连接到各种 PoS 链。它处理交易、运行智能合约并确保整个生态系统的平稳运行。
  • PoS 链层:顶层由多个 PoS 链组成,每个链都因其独特的优势而被选择。这种结构赋予 BabylonChain 卓越的可扩展性和灵活性,使用户能够从不同 PoS 区块链的最佳功能中受益。

克服比特币的限制:审计 BTC Layer2 扩容的完整指南

Babylon 通过在 BTC 链上签署最终区块来运行,以确保 PoS 链的安全。这本质上是通过一轮额外的签名扩展了基本协议。最后+1轮中的这些签名有一个独特的特征:它们是可提取的一次性签名(EOTS)。目标是将PoS检查点集成到BTC链上,解决PoS系统解绑周期长和远程攻击的问题。

巴比伦的优点:

  • Babylon 加速 PoS 质押解绑进程。
  • 通过质押 BTC,Babylon 有助于缓解相应 PoS 网络的通胀压力。
  • Babylon 为 BTC 持有者赚取回报开辟了新途径。

巴比伦的挑战:

  • 质押奖励率和其他经济因素会显着影响 BTC 质押的动机。
  • 不同 PoS 链的奖励机制并不统一。

安全重点因第三方协议的具体实现而异。对于 Babylon,一些关键的安全审核点包括:

<前><代码>1。智能合约安全:BTC 上的质押合约是通过 UTXO 脚本实现的,需要特别注意其安全性。 2. 签名算法安全性:用于管理合约质押的签名算法的安全性至关重要,因为它会影响签名的生成和验证。 3.经济模型设计:协议的经济模型,特别是奖励和惩罚方面,需要仔细审查,以确保它不会导致用户资产的损失。

附录:

公链和 Layer 2 的一般审计项目

  • 整数溢出:检查整数上溢和下溢。
  • 无限循环:验证程序中的循环条件是否合理。
  • 无限递归:确保正确设置递归调用的退出条件。
  • 竞争条件:检查并发条件下对共享资源的访问操作。
  • 未处理的异常:识别引发异常导致程序意外退出的代码。
  • 被零除:检查可能发生被零除的情况。
  • 类型转换:确保类型转换准确,并且在此过程中不会丢失任何关键信息。
  • 数组越界:确保在有效边界内访问数组元素。
  • 反序列化漏洞:检查反序列化过程中是否存在问题。
  • 功能实现安全性:验证 RPC 接口的实现是否安全并与其功能设计一致。
  • 敏感 RPC 接口权限设置:确保正确配置敏感 RPC 接口的访问权限。
  • 加密传输机制:验证加密传输协议(例如 TLS)的使用。
  • 请求数据格式解析:检查请求数据格式解析过程。
  • 钱包解锁攻击:确保节点解锁钱包时资金不会通过 RPC 请求被盗。
  • 传统网络安全:检查以下漏洞:跨站脚本 (XSS)、模板注入、第三方组件漏洞、HTTP 参数污染、SQL 注入、XXE 注入、反序列化漏洞、SSRF 漏洞、代码注入、本地文件包含、远程文件包含、命令注入等。
  • 网络节点身份验证和识别机制:确保存在节点身份识别机制并且无法绕过。
  • 路由表中毒:检查路由表是否可以被任意操纵或覆盖。
  • 节点发现算法:确保节点发现算法平衡且不可预测,解决距离算法不平衡等问题。
  • 连接占用审计:确保p2p网络中连接节点的限制和管理合理。
  • Eclipse 攻击:评估 Eclipse 攻击的成本和影响,必要时提供定量分析。
  • 女巫攻击:评估投票共识机制并分析验证投票资格的策略。
  • 窃听攻击:验证通信协议不会泄露私人信息。
  • 外星人攻击:评估节点是否可以识别来自同一区块链网络的其他节点。
  • Time Hijacking: Verify the mechanism for calculating network time on nodes.
  • Memory Exhaustion Attack: Check areas of high memory consumption.
  • Disk Exhaustion Attack: Check areas involving large file storage.
  • Socket Stress Attack: Verify strategies limiting the number of connections.
  • Kernel Handle Exhaustion Attack: Ensure that limits on kernel handle creation, such as file handles, are reasonable.
  • Persistent Memory Leaks: Identify areas prone to memory leaks.
  • Hash Algorithm Security: Ensure the hash algorithm is collision-resistant.
  • Digital Signature Algorithm Security: Verify the security of the signature algorithm and its implementation.
  • Encryption Algorithm Security: Ensure the encryption algorithm and its implementation are secure.
  • Random Number Generator Security: Verify that critical random number generation algorithms are reasonable.
  • BFT Implementation Security: Evaluate the security of the Byzantine Fault Tolerance (BFT) algorithm implementation.
  • Fork Choice Rule: Verify the fork choice rule to ensure security.
  • Centralization Detection: Identify any excessive centralization in system design.
  • Incentive Mechanism Audit: Assess the impact of the incentive mechanism on security.
  • Double-Spending Attack: Verify whether the consensus can defend against double-spending attacks.
  • MEV Attack Audit: Evaluate the impact of Maximum Extractable Value (MEV) on chain fairness during block packing.
  • Block Synchronization Process Audit: Check for security issues during the synchronization process.
  • Block Format Parsing Audit: Assess security concerns during block format parsing, such as parsing errors leading to crashes.
  • Block Generation Process Audit: Review the security of the block generation process, including the construction of the Merkle tree root.
  • Block Verification Process Audit: Check the content items of block signatures and whether the verification logic is adequate.
  • Block Confirmation Logic Audit: Assess whether the block confirmation algorithm and its implementation are reasonable.
  • Block Hash Collision: Check how block hash collisions are constructed and whether the handling of such collisions is appropriate.
  • Block Processing Resource Limits: Verify whether resource limits for the orphan block pool, verification computation, and disk addressing are reasonable.
  • Transaction Synchronization Process Audit: Review security issues during the transaction synchronization process.
  • Transaction Hash Collision: Check how transaction hash collisions are constructed and handled.
  • Transaction Format Parsing: Assess security concerns during transaction format parsing, such as parsing errors leading to crashes.
  • Transaction Legitimacy Verification: Verify the content items of various transaction signatures and whether the verification logic is sufficient.
  • Transaction Processing Resource Limits: Review whether resource limits for the transaction pool, verification computation, and disk addressing are reasonable.
  • Transaction Malleability Attack: Assess whether transactions can alter internal fields (e.g., ScriptSig) to change the transaction hash without affecting its validity.
  • Transaction Replay Attack Audit: Verify the system’s detection of transaction replay attacks.
  • Smart Contract Bytecode Verification: Review the security of the virtual machine’s contract verification process, such as checking for integer overflows and infinite loops.
  • Smart Contract Bytecode Execution: Assess security concerns during the execution of bytecode by the virtual machine, such as integer overflows and infinite loops.
  • Gas Model: Ensure that the transaction processing/contract execution fees for each atomic operation are proportional to resource consumption.
  • Log Integrity: Ensure that critical information is recorded in logs.
  • Log Security: Check whether log processing introduces security issues, such as integer overflows.
  • Logs Containing Sensitive Information: Ensure that logs do not contain keys or other private information.
  • Log Storage: Check whether excessive logging leads to resource consumption on nodes.
  • Node Code Supply Chain Security: Review known issues with all third-party libraries, components, and public chain framework versions.

As one of the earliest blockchain security companies globally specializing in formal verification, Beosin focuses on a comprehensive “security + compliance” ecosystem. The company has established branches in over 10 countries and regions worldwide. Its services encompass one-stop blockchain compliance products and security services, including code security audits before project launches, real-time security risk monitoring and interception during project operation, stolen asset recovery, anti-money laundering (AML) for virtual assets, and compliance assessments that meet local regulatory requirements. We welcome projects with auditing needs to contact the Beosin security team.

免责声明:

  1. This article is reprinted from [Beosin], All copyrights belong to the original author [Beosin]. If there are objections to this reprint, please contact the Gate Learn team, and they will handle it promptly.
  2. 免责声明:本文表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 本文由 Gate Learn 团队翻译成其他语言。除非另有说明,否则禁止复制、分发或抄袭翻译文章。