“闪电替代自行车攻击”调查报告

闪电取代自行车袭击调查报告

最近Antoine Riard披露了闪电网络的漏洞,引起了很大的关注。很多人声称天要塌了,说闪电网络基本上被破坏了,但事实并非如此。我认为问题的一部分在于人们对这个漏洞的工作原理并不真正了解,其次许多人也不明白这个个别漏洞与闪电网络上的其他已知问题是如何重叠的,而这些已知问题都有已知的解决方案。

首先,让我们来看看漏洞本身。当闪电支付在网络中进行路由时,了解失败支付的退款锁定时间是关键。最接近接收者的节点的锁定时间为“x”,每个节点向发送者回溯的每个节点的锁定时间分别为“x+1”,“x+2”等。随着从接收者回到发送者的每个节点的跳跃,锁定时间会逐渐变长。这样做的原因是如果支付到达接收者,但某些问题阻止预图像传播到发送者,停止的节点有时间在链上执行退款,放置预图像,并提醒所有前面的跳跃进行支付确认。否则,在失败发生的中间位置,中继的下一个节点可以通过预图像来索取资金,将其转入退款路径上,导致处于中间位置的节点丧失资金。

替换循环攻击是一种复杂的方式,以试图达到这种不希望的结果,即目标节点通过中继的成功交易来索取资金,同时通过退款交易将其导入的节点索取资金。这需要阻止受害节点,并防止他们在一个方向上超出锁定时间之前看到成功交易中的预图像,以便他们可以在另一个方向上索取退款。

这需要有针对性和复杂的方法来操作受害者的内存池。让我们看看这里涉及的实际交易结构。你有承诺交易,它是代表闪电通道状态的主要交易。它有每一方通道的输出,代表完全由一方或另一方控制的资金,以及正在路由的每个HTLC的输出。我们关注的是这些输出。每个HTLC输出可以立即使用接收者的预图像进行支出,或在退款的锁定时间过后使用。

攻击要求一个恶意方或两个串通的方拥有在受害者节点的两侧建立的通道,用于路由支付。所以Bob,受害者,与Alice和Carol,攻击者,建立了通道,支付从Carol经过Bob到Alice。现在记住,Alice和Bob之间的退款路径锁定时间将在Carol和Bob之间的退款路径之前过期并生效。

攻击者通过Bob路由支付,然后当Alice收到支付时,拒绝向Bob发送预图像以完成支付。现在Bob将等待自己和Alice之间的退款窗口过期,并在这之前广播通道承诺交易和退款交易以便在退款窗口过期之前得到确认。然后Alice将使用与通道无关的输出来支配预图像交易,并紧接着双倍支出预图像成功交易中的第二个输入。这里的目标是将Bob的超时交易从内存池中驱逐出去,但同时也要将预图像成功交易从内存池中移除,以免Bob看到它。如果他看到了,他将学到预图像,可以在Carol的超时交易有效之前用它来索取在他与Carol的通道中的资金。

Alice和Carol必须定期进行这样的操作,每当Bob重新广播他的超时交易与Alice时,直到Carol的超时交易有效的区块高度过去。然后他们可以在Alice的一边提交成功交易,在Carol的一边提交超时交易,使Bob在路由的支付价值上损失。

这个问题有两个方面的困扰。首先,受害者的比特币核心节点必须被特定地针对,以确保预图像成功交易在其内存池中不传播,而其闪电节点可以获取预图像的时间。其次,如果Alice用于驱逐预图像交易的第二个交易被确认,Alice会承担一定成本(记住,想要替换超时交易以让预图像从内存池中驱逐,然后将预图像交易替换为第二个双倍支出预图像交易中的附加输入)。这意味着每次Bob重新广播他的超时交易,Alice必须支付更高的费用重新驱逐它,并且当它得到确认时,她实际上承担了成本。

因此,Bob可以通过定期使用更高的费用重复转播他的超时事务来迫使Alice承担巨大成本,这意味着如果付款HTLC输出不值得比Alice可能承担的费用多得多,则攻击对于进行不经济。通过更改HTLC成功和超时事务的构建方式,完全可以防止攻击。通过使用SIGHASH_ALL标志,这意味着签名承诺对整个事务进行承诺,并且如果更改了最小的细节(例如添加新输入以进行这次攻击所需的预映像事务),则签名将变为无效。这对当前使用锚定输出的闪电通道的当前版本不起作用,但它可以完全解决该问题。Peter Todd还提出了新的共识功能,该功能将完全解决该问题,本质上是一种反向时间锁,在一定时间或块高度之后,该事务将变为无效,而不是在之后变为有效。但在我看来,这是不必要的。

简单地定期重播您的事务,并稍微提高费用是对该攻击的巨大减轻,但还有许多动态因素使得该问题不成为严重问题。首先,如果您不是路由节点,则这不是一个严重问题。因此,大多数最终用户都不会受到此攻击的威胁。其次,有许多原因导致节点不允许任何随机人员向其打开通道。大节点非常谨慎地选择与谁建立对等关系,因为未有效或未专业管理的随机通道带来的成本体现为未使用的通道中的沉没或浪费资金。因此,任何一个对此攻击感兴趣的大节点根本不容易在第一次进行连接,更不用说与它们建立多个通道来进行攻击了。最后,正如我之前写过的,在网络中可能存在其他无关的攻击,已经需要过滤器和限制来决定节点如何处理它们可以转发的HTLC。例如,限制它们将转发的支付金额大小,每次允许转发的支付数量等。因此,即使您可以与一个值得攻击的节点建立通道,随着网络的发展,就是否在第一时间转发支付的决策中将有更多经过深思熟虑的标准和过滤器。

总的来说,这是一个合理的问题和可能的攻击,但无论是直接的减轻措施还是攻击如何与长期解决其他问题的方案相互作用,这都不是一个无法解决的问题。这是一个合理的问题,以纯粹恐慌传播的方式予以忽视是不准确的反应,但宣称天要塌下来,闪电网络作为一个协议注定要失败,则是严重夸大了这个问题。

时间会继续前进,我们会遇到问题,并会在问题出现时加以解决,就像我们一直都做的那样。

We will continue to update 算娘; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

区块链

失去比特币的最糟糕方式

有很多恐怖的故事描述了毫不知情的持有者如何失去了他们的比特币避免这些故事,否则就要付出代价

观点

美国能源信息署挑战比特币挖矿能耗:深入分析

美国能源信息局的比特币挖掘机调查是一项重要的数据收集工作,具有潜力对加密货币社区产生负面影响然而,这项调查也为提高比...

观点

比特币的嬗变:从批评到好奇

过去,批评家们如洛克菲勒基金会和唐纳德·特朗普曾迅速否定比特币,但现在他们发现自己正在重新评估自己的观点这种转变显示了...

观点

为什么区块链监控需要金融犯罪执法网络(FinCEN)的《爱国者法案》计划

FinCEN提议根据爱国者法案监管比特币隐私技术但是用来支持FinCEN提案的数据最多只能说是片面的,突显了区块链监控软件缺陷的...

区块链

比特币是一种财产,而非财物

比特币作为一种数字资产的本质使其无法完全符合我们所知的财产框架一个人可以拥有比特币,但在传统意义上并不能真正拥有它

观点

比特币在巴基斯坦的采用和潜力:展望未来

Bitcoin的价值和受众接受程度并不取决于监管,这为其带来更加稳定和自由的发展空间