通道堵塞对比特币闪电网络构成威胁吗? Plato区块链数据智能。垂直搜索。人工智能。

通道干扰对比特币的闪电网络构成威胁吗?

(特别感谢 Antoine Riard 和 Gleb Naumenko,他们的 最近的研究 是本文的基础。)

通道堵塞是闪电网络的突出问题之一,因为它可能会破坏通过它的支付成功。 这是一个在开发人员中广为人知的问题,早在网络本身在主网上实际上线并开始处理甚至一个 satoshi 之前就已经了解。

到目前为止,这个问题并没有真正对网络产生任何负面影响,但考虑到这一事实,重要的是要记住,从总体上看,网络仍然相对较小。 商家处理器已经开始支持它,一些交易所和许多闪电/比特币原生服务和业务也开始支持它,但实际上,这并不多。 网络仍然是比特币人主要使用的一个小东西,这根本不是世界的很大一部分。

更进一步,经常在商业环境中消费和使用比特币的比特币用户数量在这个已经很小的群体中所占的比例甚至更小。 仅仅因为现在没有发生可能的攻击,人们不应该假设这意味着当网络发展到更大的规模时它们将继续不会发生。 它变得越大,它就会变得越有竞争力和对抗性。

什么是频道干扰?

通道堵塞的基本概念是通过您希望堵塞的闪电通道将付款从您自己发送到您自己,然后通过将原像释放到 散列时间锁合约(HTLC). 在退款的时间锁定到期之前,受害者将无法从他们的频道中删除 HTLC,因为如果原像在删除后被释放,他们将无法强制要求他们欠他们的钱。 如果您这样做完全堵塞了一个通道,那么该通道将无法路由任何付款,直到所有恶意付款的时间锁定到期之后。

这里可以使用两种不同的策略来执行攻击。 您可以尝试阻塞通道中可用的可路由数量,也可以尝试阻塞通道中的所有单个 HTLC 插槽。 一个闪电通道在它可以路由的每个方向上只能有 483 个挂起的 HTLC——这是因为比特币交易的最大大小有一个限制。 如果您在通道中每个方向添加超过 483 个 HTLC,则在需要时关闭通道的交易将太大并且无法提交到网络。 这将使通道中的所有内容都无法在链上执行。

因此,攻击者可以尝试锁定通道中的所有流动性,或者尝试锁定通道中的所有 HTLC 插槽。 任何一种策略都会使频道无法使用,但时隙干扰通常会比数量干扰更便宜。 攻击者需要在网络上拥有代币才能执行此攻击,因此路由 483 容量的 HTCL 的最小允许值将比尝试锁定通道中所有可用的流动性更具成本效益。

为什么有人想要堵塞照明通道?

执行此攻击的原因有很多。 首先,想要攻击比特币本身的恶意实体可能会堵塞网络“核心”的所有关键通道,以使大部分网络无法用于路由支付,除了彼此非常紧密连接的节点. 这将需要更多的代币才能在这种规模上发挥作用,但随着比特币的增长并成为政府批准的货币和支付系统的替代品,这种可能性不应被忽视。

其次,路由节点或商家可能会尝试对竞争对手进行攻击,以便向他们收取费用,而不是竞争对手。 销售类似产品的商家可能会堵塞竞争对手的渠道,以阻止客户在那里购物,以期激励他们改为在他们的商店购物。 与另一个节点具有相似通道连接性的路由节点可能会堵塞竞争路由节点的通道,以使它们无法用于路由支付。 随着时间的推移,这将破坏该节点在路由可靠性方面的声誉,并且由于类似的连接性,用户的钱包越来越有可能选择攻击者的节点,以便通过网络路由支付。

如果这些攻击多次通过单个通道循环路由,则这些攻击对攻击者的资本效率可能更高。 如果他们在网络上与受害者足够近,他们可以构建一个循环并不断通过受害者渠道的支付路线。 支付路径的长度是有限制的,因此不能无限进行,但是像这样循环支付路径可以大大降低攻击者完全阻塞受害者通道所需的硬币数量。

减轻信道干扰攻击

可以应用一些基本的部分缓解措施,以增加攻击者的成本并减轻受害者的损害。 第一个是处理 HTLC 的多阶段过程。

目前,每个 HTLC 都在当前通道状态的提交事务中单独添加一个新输出。 一个两阶段的过程可以在承诺交易中创建一个额外的输出,然后在添加了实际 HTLC 的第二个交易之后进行。 这将允许每个通道最多 483 乘以 483 个 HTLC 时隙(或 233,289 个时隙)。 但是,这本身并不能真正解决任何问题,并且需要延长时间锁,因为您正在添加额外的交易来执行链上的事情,如果攻击者使用这种新的交易结构和受害者没有。 然而,它将有助于结合另一种技术,暂时解释。

第二种是反应策略,成为干扰受害者的节点可以简单地打开一个新通道到与被干扰节点相同的节点。 然而,这需要有额外的资金才能做到这一点,并不能解决让其他频道堵塞和损失费用收入的机会成本,如果攻击者有足够的资金这样做,新频道也可能随后被堵塞.

第三种技术是对 HTLC 槽进行分桶。 目前有 483 个插槽,这是一个单一插槽限制,普遍适用于所有支付,无论支付的价值如何。 节点可以创建具有较小时隙限制的单独存储桶,并将它们应用于不同价值的支付,即 100,000 sats 或更小的支付只能访问 150 个时隙。 因此,较小价值的路由支付不能消耗所有可用的 HTLC 插槽。

支付 100,000 sats 到 1 sats 可以使用 300 个插槽,而 1 sats 到 10 万 sats 可以访问全部 483 个插槽。 这将显着提高攻击者堵塞插槽的资金成本,因为他们将不再能够以最低的支付金额消耗所有 483 个插槽。 此外,由于低于灰尘阈值(目前为 546 sats)的 HTLC 输出甚至无法在链上广播和执行,因此任何低于此限制的内容都可以作为“0 桶”处理,因为无论如何都不会创建 HTLC 输出。 节点可以简单地根据使用的 CPU 资源或其他指标对这些事务实施限制,以防止它们成为拒绝服务风险,具体取决于如果不诚实解决,它们可以承受多少损失。

槽分桶与两阶段 HTLC 处理相结合可用于优化 HTLC 限制的应用,即更高价值的支付可以使用两阶段结构为每个通道创建更多槽,因为更高的支付价值会增加成本为攻击者干扰它们,从而减少滥用更高的时隙限制来执行干扰攻击者的可能性。

在他们上面引用的研究中,Riard 和 Naumenko 已经表明,通过桶槽和两级槽扩展的最佳组合,槽堵塞的原因可能与数量堵塞一样昂贵。 这不会全面解决问题,但如果通过网络上的节点广泛实施,它确实会提高执行攻击的最低成本。

他们研究的两个综合解决方案是用于锁定流动性的预付/持有时间费用,以及使用盲人 Chaumian 代币的声誉系统。 费用计划的 TLDR 是预付费用的保证金,用于路由预计需要很长时间才能结算的 HTLC,并且未结算的时间越长,它将向每个路由节点释放费用在没有结算的情况下过去的每一块时间。 问题在于,如果没有在需要时发送费用,强制执行此操作可能会导致需要关闭通道,并且会导致需要较长锁定时间的合法用例支付与尝试干扰通道的攻击者相同的更高费用。

声誉计划将涉及使用零知识证明来证明对比特币的控制作为 Sybil 防御的“股权债券”,然后使用与您的声誉相关的债券从路由节点获取盲目的 Chaumian 代币,这些代币将在 HTLC 上赎回和重新发行以保护隐私的方式成功解决。 节点会为每个身份发行一次令牌,如果 HTLC 没有及时结算或退款,节点可能会拒绝重新发行令牌,从而阻止用户通过其节点进行路由,除非他们花费时间和金钱来创建新的以新代币发行的不同代币的股份债券。

对于那些希望阅读有关这两种解决方案的更多信息的人,可以在部分中找到更多信息 在 Riard 和 Naumenko 的研究中。

同样值得注意的是,如果路由节点采用基于第三方的托管系统或基于信任的信用额度,正如我所写的那样 此处,所有这些与频道干扰有关的问题将不再影响他们。 这将是路由节点信任模型的巨大变化,但它对使用真实闪电通道发送和接收卫星、资金安全或在链上执行的能力的影响为零。

人们可能不想听到它,但归根结底,如果上述用于减轻实际频道的频道干扰的解决方案还不够,这些第三方系统始终是一个潜在的选择。

这是 Shinobi 的客座帖子。 所表达的观点完全是他们自己的观点,不一定反映 BTC Inc 或比特币杂志的观点。

时间戳记:

更多来自 比特币杂志