开发者出走、「替换循环攻击」风险:比特币闪电网路遭遇困境

在 2023 年 10 月 16 日的一封电子邮件中,比特币安全研究员、开发人员 Antoine Riard 深入探讨了闪电网路通道所面临的资金遗失风险,这些风险主要是由于交易池的问题引发的。他特别提到了一种影响闪电网路通道的交易中继干扰攻击,这在实践中是完全可能的,即使没有网路交易池拥塞也可能发生。

为了应对这些攻击,多个主要的闪电网路实现在过去几个月都已经设计、实施并部署了相应的缓解措施。Riard 也列举了这些主要实现的版本号:LDK: v0.0.118 – CVE-2023-40231;Eclair: v0.9.0 – CVE-2023-40232;LND: v.0.17.0-beta – CVE-2023-40233 ;Core-Lightning: v.23.08.01 – CVE-2023-40234。

Riard 强调,固定攻击(Pinning attacks)多年来被视为实际攻击向量,而现在,替换循环攻击(Replace-by-Fee Cycle Attack)似乎为攻击者提供了一种新的手段。

同时 Riard 表示,自己将从现在开始停止参与闪电网路的开发,因为这种新的替换循环攻击会将闪电网路置于非常危险的境地。

内容目录

闪电替换循环攻击如何运作?

在邮件列表中有很多关于这个新发现的漏洞的讨论。在讲闪电替换循环攻击如何运作之前,首先我们要先知道的是;HTLC (哈希/时间锁定合约) 作为有条件的付款工具,从发送方到接收方创建了一个安全的支付路径。这个路径要么是接收方通过提供某个哈希值的原像来立即完成付款,要么是在一定时间内未完成,则发送方可以拿回资金。

BitfeedLive 和 mempool 的开发者 mononaut(@mononautical)做了一个入门图解:

闪电替换循环攻击攻击的核心是,假设 Bob 正在从 Alice 那里透过闪电网路支付给 Carol 。 Bob 有两个挂起的 HTLC:一个是从 Alice 那里来的,另一个是寄给 Carol 的。

图源:mononaut

但 Bob 不知道的是, Alice 和 Carol 正在串通窃取他的钱。当 Carol 未能在规定的时间内提供付款的原像, Bob 尝试在链上超时并回收他的资金。

这时, Alice 和 Carol 串通起来,透过广播两笔交易的链条来为攻击做准备,并准备了一系列低成本的交易,伪装成与闪电网路无关的普通交易,这些交易称为「循环父」和「循环子」。

图源:mononaut

当 Bob 的超时交易出现在记忆体池中,攻击者立即发布一个交易,这个交易使用 Carol 的哈希原像并引用「循环父」交易。由于这个新交易的费率更高,它在记忆体池中取代了 Bob 的超时交易。

图源:mononaut

攻击者继续这样操作,每次 Bob 尝试重新发布他的超时交易时,他们都会阻止它。如果攻击者成功进行了足够长的时间,那么 Alice 可以利用 Bob 与她之间的通道上的另一个时间锁来回收资金。

图源:mononaut

替换循环攻击:实现和防范都很困难

在比特币闪电网路面临的替换循环攻击问题上,Tether 的 CTO Paolo Ardoino 也表达了他的关注,他提到 Bitfinex 自 2019 年以来一直运作闪电网路的三个主要节点,这意味著这个问题也吸引了其他大公司的注意。

虽然比特币开发者 Riard 表示他可能会退出闪电网路的开发,因为他认为该网路正面临风险。他也特别指出,为了解决这种新攻击方式,可能需要对比特币网路进行修改。

但事实上,这种攻击有极大的复杂性,并不容易实现。

慢雾创始人余弦也有相似的看法,他在社交媒体上指出,为了成功实施这一攻击,攻击者需要满足多个条件,例如在受害者上开启两个通道并确保受害者未发现 HTLC 预映像交易等。针对这种威胁,余弦建议专案方与有信誉的方建立通道,降低风险。

闪电网络这个替换循环攻击挺有意思,有些类似 MEV 里的三明治攻击,前后夹击套出被夹目标的资金。

不过利用不容易,需满足:
– opening two channels with the victim.
– routing a payment through them.
– successfully replacement-cycling the victim's htlc-timeouts for Δ blocks.
– without… t.co/dMwkYaLf4q

— Cos(余弦)😶‍🌫️ (@evilcos) 2023 年 10 月 22 日

虽然实现这种攻击很复杂,但作为用户,我们完全避免也相当困难,即使采取一些措施。

在这个问题上,mononaut 指出:「Bob 可以主动监控其交易池,以便及时发现 HTLC 逾时。但是,熟练的攻击者仍然可以绕过这些防御措施。要真正修复这个问题,我们可能需要进行更深层的调整。我们可以考虑重新设计 HTLC 协议,或修改传播策略,或引入新的操作来应对此问题。」

从三明治攻击到替换循环

显然,闪电替换循环攻击的手法与以太坊上的 MEV 三明治攻击相似,这些攻击都是利用前后夹击来套取目标资金。但以太坊 MEV 三明治攻击的研究在最近几年里,仍然没有很好的改进。

就在近日,以太坊基金会透过 Uniswap V3 出售 1700 枚 ETH 时,仍遭到 MEV Bot 的三明治攻击,损失 9101 美元,MEV Bot 获利约 4,060 美元。

DeFi 专家 CHRIS POWERS 在最近的一篇文章中指出:自从 Flashbots 推出旨在「有效应对 MEV 问题」的 MEV-Geth 以来,近三年里的变化相当剧烈。以太坊见证了市场的起落,并成功地迈向了权益证明(Proof of Stake)的新阶段,这是其技术进展的一大里程碑。

然而,链上经济资源的竞争变得更为激烈,尽管我们已经做出了很大努力,但 MEV 的问题仍然存在。

对于 MEV 的挑战,有许多潜在的解决方法。但是,有些人错误地认为某些方法,如公平排序,可以彻底解决问题。从设计开始,我们就应该考虑如何应对 MEV。尽管许多开发者正在努力减少 MEV 的影响,但他们也需要认识到完全避免损失是不切实际的。

MEV 并非不可避免,因此开发者应该更积极地与 MEV 生态系统的参与者进行沟通与合作。重要的是,支付流程本身并不是问题的核心,真正的问题在于它的不透明性。

以太坊的 MEV 三明治攻击的研究在最近几年里仍然没有得到很好的改进。而比特币的这个类似问题,闪电替换循环攻击,或许在短时间也很难解决。面对开发者退出和替换循环攻击风险,比特币闪电网路又将何去何从?

(以上内容获合作伙伴 MarsBit

声明:文章仅代表作者个人观点意见,不代表区块客观点和立场,所有内容及观点仅供参考,不构成投资建议。投资者应自行决策与交易,对投资者交易形成的直接间接损失作者及区块客将不承担任何责任。