比特大陆-比特币价格行情交易交流平台!

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

更新时间:2021-07-27 19:01点击:

BTC估算的费率,以便立即确认

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

用成本最小化方案时受害者买卖可用的平均块空间

在这项工作中,大家还表明,对于攻击者来讲,探寻潜在的受害者并非一项繁重的工作。为了使节点成为攻击的受害者,节点仅需同意与攻击者一块打开通道的请求。如lightning协议中所述,节点可以通过“同意频道”消息来响应,以显示其打开频道的意图。在这样的情况下,不必真的打开通道。大家进行了一个实验,在这个实验中,大家测试了互联网上很多节点是不是想打开一个未知节点的信道。大家发现大多数活跃节点(约95%)想依据此请求打开信道,因此它们比较容易成为攻击的受害者。

攻击分为四个主要阶段

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

阶段1:打造访问

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

作为HTLC机制的一部分,目的节点应该通过发回一组HTLC机密来同意支付。此攻击将防止如此做,直到源节点已完成转发所有付款。

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

为了验证攻击的可行性,大家在当地雷电互联网ETH测试互联网regnet上对其进行了仿真。大家达成了攻击者节点原,它可以预防HTLC秘密的传输,忽视HTLC分析的请求,并以增加声明所有权事务的代价发布HTLC。因为LND是最火爆的lightning达成策略(据报道,互联网上90%以上的lightning互联网节点都运行LND),因此大家用它来模拟受害节点。如下图所示,即便块中的所有可用空间(最大块大小)都分配给了受害者的事务,攻击85个通道也能保证攻击成功。每增加一个频道,它的所有资金都会被偷。

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

ETH目前最大块尺寸为4m(对应绿线)。事实上,可用于闪电买卖的空间较小。

如图所示,当每一个区块的可用空间降低时,需要较少的受害者窃取相同数目的HTLC。大家证明,当攻击者用联合最小化方案(如下所述)时,可能会出现这样的情况。

在不一样的攻击信道数和块大小下,成功窃取的HTLC数目。ETH目前最大块重为4m(对应绿线)。事实上,可用于闪电买卖的空间较小

如图所示,当每一个区块的可用空间降低时,需要较少的受害者窃取相同数目的HTLC。大家证明,当攻击者用成本最小化方案(如下所述)时,可能会出现这样的情况。

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

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

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

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

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

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

受害者没办法在发布买卖时设置买卖本钱。成本在通道打开时确定

攻击者可以依据需要为我们的买卖设置成本,并替换到期后未确认的任何受害者买卖(用“成本替换”方案)

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

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

编译:凯尔

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

大家都知道,闪电网支付途径互联网容易遭到区块链拥塞的影响,假如互联网遭到攻击,参与者可能没办法准时提取资金。在大家最新的论文中,大家评估了一种攻击:对闪电互联网的系统性攻击,它可以窃取锁定在支付途径中的资金。

在这次攻击中,攻击者立即迫使很多受害者冲向区块链,需要他们的资金。然后,攻击者可以借助他们导致的拥塞来窃取截止日期前未采集到的所有资金。

攻击的结果取决于攻击者选择攻击的lightning互联网达成。大家发现攻击者仅需同时攻击85个通道就可以窃取通道中的资金(假设没其他区块链买卖争夺区块空间,这是一个很乐观的假设)。

除去全方位知道这种攻击及其后果外,在本文中,大家还提出了几种缓解办法。

注意:攻击可能致使无辜用户的资金失窃。别在家尝试这种攻击。不幸的是,现在有任何协议更改都可以完全消除它。本文的研究成就在发布前已经与三个主要的lightning互联网推广客户端达成的开发职员共享。

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

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

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

节点对“开放式响应途径”请求

对于这种攻击,很多技术可以使攻击者愈加困难,降低攻击的潜在风险。以下是大家提出的一些缓解办法。

1) 降低未分析HTLC的最大数目:攻击者可以通过受攻击信道路由的最大支付数目由信道参数AMPLquo;max_uuaccepted_uhtlcsAMPLOK确定。假如此参数的值仍然较低,攻击者将不能不攻击更多的通道才能成功窃取资金。

2) 提前关闭途径:受害者请求资金的时间(区块)由具体推行参数决定。大部分lightning互联网达成用的值比它们可能要小得多(以防止过早关闭通道)。该参数可依据信道的目前状况(比如,未分析HTLC的数目或未分析的总值)以常数因子甚至动态地增加。

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

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

虽然有不一样的缓解手段来减少攻击的风险,但完全消除风险好像是一项复杂的任务。大家相信,在很多方面,被借助的漏洞是HTLC工作方法固有些,因此假如不对HTLC机制进行重大修改,攻击就没办法完全防止。

上一篇:没有了 下一篇:没有了
官方微信公众号