当前位置:首页区块链lightning网络最新漏洞分析:只有85个节点可以被攻击窃取lightning节点的信道资金

lightning网络最新漏洞分析:只有85个节点可以被攻击窃取lightning节点的信道资金

编译:凯尔

导语:以色列**学府希伯来大学工程与计算机科学学院副教授阿维夫·佐哈尔和希伯来大学研究生乔娜·哈里斯最近发表了一篇研究论文《洪水与根源:对闪电网络的系统攻击》。本文提出了一种针对闪电网络的系统性攻击。攻击者可以通过攻击闪电网络窃取锁定在支付渠道中的资金。在这种攻击中,攻击者会迫使大量的受害者向区块链索要资金,然后攻击者可以利用拥塞来窃取截止日期前未收款的资金。本文证明了只有85个通道可以同时被攻击,以保证攻击者能够盗取部分资金。此外,针对这种攻击,提出了几种缓解技术。

众所周知,闪电网支付渠道网络容易受到区块链拥塞的影响,如果网络受到攻击,参与者可能无法及时提取资金。在我们**的论文中,我们评估了一种攻击:对闪电网络的系统性攻击,它可以窃取锁定在支付渠道中的资金。

在这次攻击中,攻击者立即迫使许多受害者冲向区块链,要求他们的资金。然后,攻击者可以利用他们造成的拥塞来窃取截止日期前未收集到的所有资金。

攻击的结果取决于攻击者选择攻击的lightning网络实现。我们发现攻击者只需同时攻击85个通道就可以窃取通道中的资金(假设没有其他区块链交易争夺区块空间,这是一个非常乐观的假设)。

除了全面了解这种攻击及其后果外,在本文中,我们还提出了几种缓解方法。

注意:攻击可能导致无辜用户的资金被盗。别在家里尝试这种攻击。不幸的是,目前有任何协议更改都可以完全消除它。本文的研究成果在发布前已经与三个主要的lightning网络客户端实现的开发人员共享。

lightning网络最新漏洞分析:只有85个节点可以被攻击窃取lightning节点的信道资金

攻击细节

该攻击利用跨多个闪电通道转发支付的机制AMPLmdash;AMPLmdash;哈希时间锁定合同(HTLC)。简而言之,HTLC允许参与者通过不可信的中间节点路由支付,以确保火币网0不会窃取资金。如果这样的节点试图窃取资金,其对等方可以通过向区块链发布交易来索取资金,但仅限于有限的时间段。正如我们在工作中所展示的,让无辜的闪电节点涌入区块链并利用这个时间限制窃取资金相对容易。

HTLC背后的关键思想是在HTLC建立之后,通过提供一个秘密(一个散列原语),从路径上的前一个节点提取支付。攻击者将在自己的两个节点之间路由付款,并在路径的末尾提取付款。当最终要从源节点提取付款时,他会拒绝合作,迫使受害者通过区块链交易进行索赔。

lightning网络最新漏洞分析:只有85个节点可以被攻击窃取lightning节点的信道资金1

这个拓扑示例显示了攻击者的节点和他与受害者共享的通道

攻击分为四个主要阶段

1建立渠道

攻击者控制两个闪电节点,分别代表源节点和目标节点。源节点打开多个潜在受害者的通道,每个受害者可能有多个通道。这些通道是由攻击者的源节点发起和资助的(目标节点可以远离受害者,但在下图中,我们简化了过程,只显示了一条短的简单路径)。

lightning网络最新漏洞分析:只有85个节点可以被攻击窃取lightning节点的信道资金2

阶段1:建立访问

2使用HTLC支付加载通道

在所有的通道都建立好之后,源节点将开始向目的节点进行多次HTLC支付,并通过每个源节点的通道进行路由。源节点发送允许的**中继量,并将其分配给尽可能多的支付(受害者允许的数量)。

作为HTLC机制的一部分,目标节点应该通过发回一组HTLC机密来接受支付。此攻击将避免这样做,直到源节点已完成转发所有付款。

lightning网络最新漏洞分析:只有85个节点可以被攻击窃取lightning节点的信道资金3

第2阶段:使用HTLC支付的加载通道

3、 解决**一次跳转的付款问题

在成功发送所有付款并将HTLC添加到目标节点的通道后,目标节点将通过返回所需的机密解析所有付款并为自己申领资金。此时,目标节点可以正常关闭其信道,保留源节点发送的资金。一旦每个受害者获得这些秘密,他将它们发送回源节点,请求解析HTLC并将数字移到通道的受害者侧。源节点拒绝解析支付,并忽略来自其受害者的任何进一步消息。

lightning网络最新漏洞分析:只有85个节点可以被攻击窃取lightning节点的信道资金4

第三阶段:在**一跳解决付款问题

(四) 等待到期日并收取未使用的HTLC

此时,每个被攻击的通道都充满了未解决的HTLC,受害者知道他们的秘密。由于攻击者的源节点不合作,受害者获得这些付款的唯一途径就是关闭其渠道并在区块链上声明HTLC。受害者要求付款的时间有限(分块)(如果节点不知道秘密,则有一个时间限制,在这种情况下,资金应由源节点索取)。

一旦它们过期,HTLC的输出就可能被攻击者使用。虽然受害者在过期后仍然可以请求HTLC,但是特定的协议细节为攻击者提供了很大的优势:

受害者无法在发布交易时设置交易成本。费用在通道打开时确定

攻击者可以根据需要为自己的交易设置费用,并替换到期后未确认的任何受害者交易(使用“费用替换”策略)

通过攻击多个通道并强制所有通道同时关闭(为所有HTLC设置相同的过期时间),一些受害者的HTLC索赔所有权交易将无法得到及时确认,攻击者就会窃取这些交易。

结果,攻击者保留了一些本应留给受害者的钱(受害者的下一跳资金已发送到攻击者的目标节点)。

lightning网络最新漏洞分析:只有85个节点可以被攻击窃取lightning节点的信道资金5

阶段4:过期后收集未使用的输出

模拟结果

为了验证攻击的可行性,我们在本地雷电网络以太坊测试网络regnet上对其进行了仿真。我们实现了攻击者节点原,它可以防止HTLC秘密的传输,忽略HTLC解析的请求,并以增加声明所有权事务的代价发布HTLC。由于LND是***的lightning实现方案(据报道,网络上90%以上的lightning网络节点都运行LND),因此我们使用它来模拟受害节点。如下图所示,即使块中的所有可用空间(**块大小)都分配给了受害者的事务,攻击85个通道也能保证攻击成功。每增加一个频道,它的所有资金都会被偷。

在不同的攻击信道数和块大小下,成功窃取的HTLC数目。

以太坊当前**块尺寸为4m(对应绿线)。事实上,可用于闪电交易的空间较小。

如图所示,当每个区块的可用空间减少时,需要较少的受害者窃取相同数量的HTLC。我们证明,当攻击者使用联合最小化策略(如下所述)时,可能会出现这种情况。

lightning网络最新漏洞分析:只有85个节点可以被攻击窃取lightning节点的信道资金6

在不同的攻击信道数和块大小下,成功窃取的HTLC数目。以太坊当前**块重为4m(对应绿线)。事实上,可用于闪电交易的空间较小

如图所示,当每个区块的可用空间减少时,需要较少的受害者窃取相同数量的HTLC。我们证明,当攻击者使用费用最小化策略(如下所述)时,可能会出现这种情况。

攻击放大

每个受害者交换所支付的费用来自通道的费率参数。此费用由通道的发起者(在我们的例子中是攻击者的源节点)确定和支付。在接受另一个通道之前,必须接受另一个节点设置的通道。如果节点满足其区块链成本估算,则节点同意设置费用,费用由bitpoint的估算方法确定。从下图可以看出,feerate的估计值在较短的时间内可能会有较大的波动。当通道单方面关闭时,在某个时间点确定的通道感觉可能不适合以后的时间。

lightning网络最新漏洞分析:只有85个节点可以被攻击窃取lightning节点的信道资金7

比特币估算的费率,以便立即确认

除了设定初始渠道费用外,渠道发起人还可以在渠道开通后的任何时候提出新的费用,以调整到当前区块链的成本状态。闪电协议规定,在我们的案例中,另一方(即受害者)不允许提出任何费用更新请求。在费用最小化策略中,攻击者在可能的情况下(即,当区块链成本较低时(因此,另一方会同意更改)),而不是在区块链成本较高时,使用成本更新机制来降低频道的费用。一旦通道费率与实际区块链费率之间的差异变大,攻击者就可以启动所有HTLC支付并发起攻击。在下图中,我们看到当攻击者使用feel minimize策略3天和7天时,受害者可用的平均块空间。例如,当攻击者在攻击开始前七天试图最小化成本时,受害者只有58%的时间可以使用平均一半或更多的块空间(两个月内收集数据)

lightning网络最新漏洞分析:只有85个节点可以被攻击窃取lightning节点的信道资金8

使用费用最小化策略时受害者交易可用的平均块空间

寻找潜在的受害者

在这项工作中,我们还表明,对于攻击者来说,寻找潜在的受害者并不是一项繁重的工作。为了使节点成为攻击的受害者,节点只需接受与攻击者一起打开通道的请求。如lightning协议中所述,节点可以通过“接受频道”消息来响应,以显示其打开频道的意图。在这种情况下,不必真正打开通道。我们进行了一个实验,在这个实验中,我们测试了网络上许多节点是否愿意打开一个未知节点的信道。我们发现大部分活跃节点(约95%)愿意根据此请求打开信道,因此它们很容易成为攻击的受害者。

lightning网络最新漏洞分析:只有85个节点可以被攻击窃取lightning节点的信道资金9

节点对“开放式响应渠道”请求

缓解措施

对于这种攻击,许多技术可以使攻击者更加困难,减少攻击的潜在危害。以下是我们提出的一些缓解方法。

1) 减少未解析HTLC的**数量:攻击者可以通过受攻击信道路由的**支付数量由信道参数AMPLquo;max_uuaccepted_uhtlcsAMPLOK确定。如果此参数的值仍然较低,攻击者将不得不攻击更多的通道才能成功窃取资金。

2) 提前关闭渠道:受害者请求资金的时间(区块)由具体实施参数决定。大多数lightning网络实现使用的值比它们可能要小得多(以避免过早关闭通道)。该参数可根据信道的当前状态(例如,未解析HTLC的数量或未解析的总值)以常数因子甚至动态地增加。

3) 立即释放HTLC以声明所有权事务:有些实现等到它们发布的承诺得到确认之后,才释放HTLC事务来声明其输出。节点可以而且应该立即释放这些事务,并承诺允许更多潜在的事务块进入。

4) 基于声誉的行为:信道参数极大地影响攻击成功的概率。根据某些策略,一个节点可以使用更多的许可证参数,以便为其分配“良好信誉”的一方提供频道。

虽然有不同的缓解措施来降低攻击的风险,但完全消除风险似乎是一项复杂的任务。我们相信,在许多方面,被利用的漏洞是HTLC工作方式固有的,因此如果不对HTLC机制进行重大修改,攻击就无法完全避免。

温馨提示:

文章标题:lightning网络最新漏洞分析:只有85个节点可以被攻击窃取lightning节点的信道资金

文章链接:https://www.btchangqing.cn/46403.html

更新时间:2020年07月01日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

区块链

揭开资本板块:区块链噱头,拉人模式,收获数亿元

2020-6-30 22:39:35

区块链

链技术如何提高金融行业的安全性和互信

2020-6-30 22:43:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索