Bitcoin Core 核心开发者宣布停止参与闪电网络开发,替代循环攻击成关注焦点

2024-11-19 18:14:14

10月20日,核心开发者/dev/fd0在X平台宣布,将停止参与闪电网络的开发及其实施,包括协调和处理协议级安全问题。

/dev/fd0 表示每个比特币节点都有自己的内存池。交易由对等节点转发。如果使用闪电网络节点打开通道并接受 HTLC 转发,则很容易受到替代循环攻击 ( )。

开发者所说的“替换循环攻击”是什么以及它是如何实现的,《星球日报》将在本文中揭晓。

闪电网络

比特币网络的TPS只有7左右,手续费很高。为了解决小额支付的需求,闪电网络应运而生。

闪电网络( )是比特币和其他加密货币的第二层扩容解决方案,旨在解决加密货币网络的可扩展性和交易速度问题。

其实现原理可以简化为:

交易双方A、B建立了“交易通道”(实际上是多重签名钱包)。 A和B分别向A1和B1存钱(这一步是在链上的)。 A 和 B 之间的任何交易均发生在链下,且 A 净转账金额为

通过上述流程,A、B无论在链下进行多少笔交易,只需要支付两次链上费用,节省了大量时间。

算力时间锁定合约(HTLC)

上面介绍的形式仅限于A和B之间的直接交易渠道。中继节点的出现是为了跨渠道支付。中继节点中继两者之间的交易,以方便跨渠道支付,并且中继节点可以收集小费。

但这面临一个问题:需要保证每个渠道的每个参与者都是诚实可信的,并且多渠道链接是安全的。

因此,HTLC(Hash Time-Lock,哈希时间锁定合约)出现了。 HTLC 的支付交易可以简化为:

A准备密码R并计算其哈希值HA。设置一个时间限制,TA向B发送带有HTLC的支付交易。只有满足以下两个条件,交易才会最终建立。如果B不知道密码,或者应答超时,资金将被退回到A以进行正常的交易过程。

通过上述HTLC,涉及中继节点的支付流程如下:

最终接收者C向发送者A提供密码A,并使用哈希值H发起HTLC支付(请注意,此时资金尚未到达B)。 B 收到支付信息,使用哈希值 H 向 C 发起 HTLC 支付。为了接收资金,C 应答代码并接收资金。此时B也知道密码。 B使用密码获取A发起的支付,收到资金,交易完成。

比特币闪电网络_闪电网络区块链_闪电网络

三者的流程如上。中间可以再增加几个中继节点,而支付方式不变。付款通过链发送到最终接收者,然后密码反向传播到初始中继节点。最后,完成交易。

如果中继节点长时间没有收到暗码R(下方不会应答,时限由中继节点自己决定),中继节点可以选择关闭通道。如果成功上传到链上,B发起的支付将“无效”,不存在资金损失。

循环替换攻击

回到HTLC的基本原理,中继节点除了应答暗码外,还需要满足另一个条件“中继节点应答的时间在T以内”,恶意攻击者正是针对这一点进行攻击:

A和C恶意串通,受害者是中继节点B(B要求在3个区块内给出答案)。 A向B发起支付(假设此时区块高度为1000),要求B在区块1020之前回答C。当支付(区块高度1005)达到区块高度1008时,B看到C还没有回答,决定关闭通道,在区块1009生效。C发起高Gas交易①(区块1008),使得B发起的交易无法进入内存池。 C发起高Gas交易②(区块1009),B仍然无法进入内存池 C. 无限循环运行,直到区块 1020,给出密码 R,提现资金

B虽然获得了密码,但已经没有时间回应A发起的支付,资金被退回给A,对C的支付也成立了。最终实现了“循环替换攻击”。另外,A和C还可以通过串通、循环攻击B的封闭交易来实现双花。

结论

虽然上述攻击路径存在,但这并不意味着攻击者可以为所欲为,窃取闪电网络中的资金。作者在原文中还提出了本地内存池和交易中继流量监控、矿机内存池监控等五种解决方案。

未来是光明的,但道路是曲折的。今年,比特币网络上诞生了BRC-20、Asset等一系列新事物。尽管存在问题,但持续的发展最终会解决这些问题。

标签: 闪电网络
首页
欧意注册
欧意下载
联系