闪电网络有资金风险?一文解读其原理和处理方法
原创 | Odaily星球日报
作者 | 南枳
引言
10 月 20 日, Bitcoin Core 核心开发者 /dev/fd0 在 X 平台宣布, 将停止参与闪电网络及其实施的开发,包括协调处理协议级安全问题 。
/dev/fd0 表示,每个比特币节点都有自己的内存池。交易由对等节点转发。如果闪电网络节点用于打开通道并接受 HTLC 转发,那么很容易受到 替代循环攻击 (Replacement Cycling Attacks)。
该开发者所指的“替代循环攻击”是什么,其具体实现途径如何,Odaily星球日报将于本文揭示。
闪电网络
比特币网络的 TPS 仅约为 7 ,并且手续费高昂,为解决小额支付的需求,闪电网络应运而生。
闪电网络( Lightning Network)是一种针对比特币和其他加密货币的第二层扩展解决方案,旨在解决加密货币网络的可扩展性和交易速度问题。
其实现原理可简化为:
-
交易双方 A 与 B 建立了一个“交易通道”(实际上是个多签钱包)
-
A 与 B 分别往里面充钱 A1 和 B1 (此步上链)
-
A 与 B 在链下发生任意笔交易,A 净转出额 X(例如 A 向 B 转账 100 次 1 元,B 向 A 转账 99 次 1 元,最终 A 净流出 1 元)
-
将 A1 -X 与 B1 +X 的交易更新上链
通过以上流程,不论 A、B 在链下进行多少次交易,都只要支付两笔上链费用,并节约了大量的时间。
哈希时间锁合约(HTLC)
以上介绍的形式限于 A 和 B 之间有直接的交易通道,为跨通道支付而出现了中继节点, 中继节点中转两者交易,以便跨通道进行支付 ,而中继节点可以收取小费。
但这面临着一个问题: 需要确保每个通道内每个参与者都是诚实守信的 ,通过多通道链接是安全的。
因而出现了 HTLC(Hash Time-Lock Contract、哈希时间锁合约),一笔带有 HTLC 的支付事务可简化为:
-
A 准备一个暗号 R,并计算其哈希值 H
-
A 设定一个时限 T
-
A 向 B 发送一笔带有 HTLC 的支付事务,仅当符合以下两个条件时交易才会最终成立
-
B 回答出暗号 R(通过 H 验证)
-
B 回答的时间在 T 之内(例如 10 个区块内给出答案)
-
若 B 不知道暗号,或者回答超时,则资金退回给 A
正常交易流程
通过上述的 HTLC,一笔涉及中继节点的支付流程如下:
-
最终的接收者 C 向发送资金者 A 提供暗号
-
A 用哈希值 H 发起 HTLC 支付(请注意, 此时资金并未到 B 手中 )
-
B 接收到支付信息,向 C 用哈希值 H 发起 HTLC 支付
-
C 为了接收资金,回答暗号,收到资金。B 此时也知道了暗号
-
B 用暗号获取 A 发起的支付,收到资金,交易完成
涉及三者的流程如上,中间也可以多加入几个中继节点,而支付模式仍保持不变,通过链式发送支付到最终接收者,然后再反向传播暗号至初始的中继节点,最终完成交易。
而中继节点如果迟迟没有收到暗号 R (下家不做解答,时限由中继节点自行判断) ,则中继节点可以选择关闭通道, 若成功上链, 则 B 发起的支付将“失效”,没有资金损失。
循环替代攻击
回到 HTLC 的基本原理中,除了回答暗号外,中继节点还需要达成另一条件“中继节点回答的时间在 T 之内”,而恶意攻击者即是瞄准了该点进行攻击:
-
A 和 C 恶意串通,受害人为中继节点 B(B 要求下家 3 个区块内回答)
-
A 向 B 发起支付(假设此时区块高度为 1000),要求在 区块 1020 前回答
-
B 向 C 发起支付(区块高度 1005)
-
区块高度 1008 时,B 见到 C 还不回答,决定关闭通道,将在区块 1009 生效
-
C 发起高 Gas 的交易①(区块 1008),使 B 发起的交易无法进入内存池
-
C 发起高 Gas 的交易②(区块 1009),B 仍无法进入内存池
-
C 无限循环操作,直到区块 1020 ,给出暗号 R,提取资金
B 尽管获取了暗号,但已没有时间回答 A 发起的支付,资金退回给 A,而向 C 的支付又已经成立,最终“循环替代攻击”实现 。此外,A、C 也可以通过串通,循环攻击 B 的关闭交易而实现双花。
结语
尽管存在以上攻击途径,但并不意味着攻击者就可以为所欲为,任意盗取闪电网络中的资金,原文中作者也提出了五种处理办法,如本地内存池和事务中继流量监控、矿工内存池监控等。
前途是光明的,道路是曲折的,今年比特币网络上也诞生出了 Ordinals 、BRC-20、Taproot Asset 等一系列新事物,问题虽存在,但持续的发展终将能解决问题。
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
Justin Sun suspected to have purchased $160m in Ethereum
Justin Sun suspected to have purchased $160m in Ethereum