CoinDesk Research:详解闪电网络数据指标及潜在攻击风险
来源:CoinDesk Research
作者: George Kaloudis
编译:陈一晚风、Rachel
闪电网络 (Lightning)是由比特币智能合约驱动的覆盖网络,它不是区块链。比特币作为一种纯点对点版本的电子现金被引入,允许在线支付直 接从一方发送到另一方,而无需通过金融机构。在早期,这样的情况对于一小部分人来说是可以的,但是12年后面临承载着1亿体量的用户,比特币对于即时交易来说非常昂贵,每秒只能确认大约7笔交易。这已经限制了比特币在不增加功能的情况下充当现金的能力。
因此,近年来比特币叙事摆脱了“电子现金”用例,取而代之的是“价值存储”和“数字存储技术”用例,将其比作一种数字黄金。但这并不意味着比特币作为点对点电子现金的梦想已经破灭。
在萨尔瓦多于2021年6月宣布将比特币作为法定货币后,一个普遍的批评声音是,这是一个坏主意,因为整个比特币区块链的交易吞吐量只允许每个萨尔瓦多人每20天进行一次比特币交易,并且还要假设世界上没有其他人使用它。
当然有一个解决办法。萨尔瓦多已实施部署闪电网络,允许比特币支付在其经济中流通。
闪电网络是建立在比特币区块链之上的覆盖网络或第二层,它使用用户生成的小额支付渠道即时进行交易。2016年,Thaddeus Dryja和Joseph Poon将其作为一个想法引入,并最终在2018年作为一个开源软件解决方案实施。
简而言之,闪电网络允许在远离区块链(或链外)的地方进行多笔交易,跟踪通道的状态,然后在比特币区块链上以整洁的单笔交易确认。在实践中,会减少区块链的拥堵,并使每次使用的价值转移更便宜,因为闪电网络的费用结构与比特币不同。
本报告旨在介绍什么是闪电网络、可用于描述闪电网络当前状况的指标、开发人员正在努力缓解的潜在攻击向量以及闪电网络的未来。上述主题结合起来,为个人和投资者提供帮助他们了解闪电网络和闪电网络金融或“LiFi”的内容。
快速入门
下面的部分作为闪电网络重要方面的简要概述。闪电网络是一个覆盖的点对点网络,它与比特币一起运行,并使用比特币区块链来保护其交易,闪电网络没有自己的代币。
闪电使用比特币智能合约,即以代码或脚本形式编写条款和执行的自动执行数字合约,以构建其网络。为此,比特币节点即验证交易和维护网络的计算机,包含额外的软件来充当闪电网络的节点。从那里,闪电节点通过执行一个2-of-2的双边比特币智能合约并将比特币提交到支付通道来打开与其他节点的通道。通道设置有效地将提交的比特币“链外”或移到比特币区块链之上,使比特币区块链成为Layer 1和闪电网络Layer 2。
从此,闪电网络的规则适用于该支付渠道。支付渠道的每一方现在都可以来回发送比特币,而无需等待比特币区块链的确认,这是Layer 1交易必须完成的。取而代之的是,当比特币在节点之间通过通道发送时,通道就像一个滑动标尺,两端的平衡会发生变化。当双方选择关闭渠道时,智能合约的规则确定每个节点的最终余额,并在比特币区块链上结算最终状态。因此,虽然比特币区块链只会看到两个交易:原始承诺交易和渠道关闭交易,但其间可能发生任意数量的交易。
在一个双节点、单通道的世界里,这很难令人兴奋。然而,闪电网络的技术规范还允许通过多个节点通过通道进行支付。这就是网络效应的作用所在。节点A可以向节点C发送闪电支付,即使它们没有一起打开通道。如果节点A有一个与节点B开放的通道,而节点B有一个与节点C开放的通道,那么节点A可以通过节点B路由向节点C发送支付。节点B将得到名义上的“路由费”补偿,除此之外,节点B也不必直接连接到节点C。节点之间必须有一条通道路径,最终将节点A连接到节点C。
总结,闪电网络有两个重要特征。首先,现在通过闪电网络发送交易很便宜,交易甚至可以以1 satoshi进行路由,即比特币的1/100000000或约0.0005美元;其次,由于单笔闪电支付不依赖于比特币区块链的交易最终性,因此支付实际上是即时的。廉价和即时支付是许多支持者对闪电网络感到兴奋的原因。
比特币交易费。注:有时比特币交易费用相对便宜(每笔交易不到0.05美元),但是当比特币内存池变得拥挤时,交易费用会大幅飙升,从而使基础层的普通交易变得不那么可行。
链上指标
下面部分概述了几个指标,以确定闪电网络作为一项值得投资或关注的技术的整体增长、健康和可行性。这里有一个重要的限制需要注意。并非所有闪电网络节点都需要向整个网络宣布。当启动一个节点或打开一个通道时,可以选择向整个网络宣布或者保持私密,只有你所连接的人知道。因此,以下指标在最坏的情况下将代表实际值的下限。作为参考,2020年BitMEX估计有28%的闪电通道是私有的。
1、带通道的公共闪电网络节点
如前一节所述,闪电网络是一个覆盖网络,通过由节点维护的支付渠道进行支付。这些通道通过节点连接,支付通过通道路由,直到到达指定的端点。
建立通道的第一步是设置节点。一个可以在安装后停止,只是作为覆盖网络的节点,这不允许任何功能上有可用的东西。更进一步,与另一个节点建立支付渠道会更加强大。在这一点上,节点数较少的网络比节点数较多的网络连接较少。没有一个数字“足够好”让个人关注,但随着时间的推移,数字增加通常是一个好趋势。2021年8月31日,共有15203个带有通道的公共闪电网络节点,在随后的三个月、六个月和十二个月期间分别增长了30.3%、63.8%和99.5%。
带通道的公共闪电网络节点。注:随着越来越多的闪电网络节点在彼此之间打开通道,网络变得更大,连接也可能更加紧密。
2、闪电网络容量
如之前所述,为了打开闪电网络通道,节点运营商必须承诺比特币为其通道提供流动性,承诺到所有渠道的比特币总量被称为闪电网络容量。
这是一个重要的指标,但我们应该澄清的是,比特币的总价值不应被视为单位时间内可以通过闪电传输的价值量的最大值。 如果有的话,它实际上是一次可以在一个方向上发送的数量的理论最大值。
为了说明这一点,让我们举一个简单的例子。 想想闪电网络通道,比如带有抵押池的双边信用额度。 如果我们都投入50美元来打开一个通道,那么我们的通道容量是100美元(50美元+50美元),我们每个人都有50美元的索赔。 假设我想花25美元从你那里买东西, 然后我们将通道的余额更改为我的25美元(50美元–25美元),你的75美元(50美元+25美元)。 假设你想花10美元从我这里买东西, 我的通道余额将变为35美元(25美元+10美元),而你则为65美元(75美元-10美元)。 这可以无限持续,直到我们决定准备关闭我们的通道并稳定下来。 在通道的生命周期中,价值吞吐量很容易超过贡献给通道的数量。
这正是打开闪电网络通道时发生的情况。 完成比特币交易以向闪电覆盖网络提交价值,该交易由比特币区块链验证,闪电支付通过通道路由,跟踪两端的余额,然后以编程方式关闭通道并在比特币区块链上进行验证,区块链只看到值x的两个交易。 在实践中,可以实现两个以上的交易,并且可以转移远多于x的价值。 有了这种理解,我们应该将闪电网络容量的增加视为积极的,而减少则视为消极的。
闪电网络容量。注:致力于闪电网络的比特币超过2300 BTC,创历史新高, 请注意这并不代表最大交易吞吐量。
顺便说一句,流经闪电网络的支付量将是一个有用的指标。不幸的是,这不是对覆盖网络上的所有节点公开可用的数据。 有一些闪电网络节点运营商会定期提供大量数据,这可能是闪电交易需求的一个很好的代表。 我们现在没有全网数据,但随着网络的发展,如果大型节点运营商开始一致地报告交易量数据,我们最终可能能够准确估计闪电网络支付的金额。
3、每个通道和每个节点容量
在上一小节的基础上进行扩展,个人可以将网络容量更进一步,并除以通道或节点的数量。
查看这些按通道或按节点的指标可以很好地说明闪电网络的状况。如果每个通道的平均容量超过1000 美元,这意味着与闪电网络交互的普通用户可能能够以最合理的价格进行日常购买;如果平均容量为约100美元或约10美元,这可能会使大多数通道在日常交易中变得不那么可行(请记住,每个通道的容量分布在两个节点上)。
每个通道的平均闪电网络容量
比较每个节点和每个通道的容量,可以确定节点运营商的潜在活跃程度。如果每个节点的容量接近每个通道的容量,这意味着大多数节点运行少量的通道。随着差距扩大,这意味着节点操作不止一个通道,每个节点操作更多的通道意味着一旦节点打开通道并“从零开始”,对通道容量的需求就会更高。 如果大多数节点只有一个通道,这可能意味着通道的开放主要是一种只有少数客户使用的新奇事物。
每个节点的平均闪电网络容量
这里有一些限制。 首先,这些图表显示受异常值影响的平均值,如果我们查看百分位断点,我们可以更详细地了解“平均”节点的期望值。
每个节点的闪电网络容量
其次,由闪电网络确定的常规通道的大小有一个任意限制,即16,777,215 satoshis(有些通道被称为“wumbo”频道,支持无限大小的频道,但它们不太常见)。 这种现象在2018年8月每个通道数据的第90个百分位数达到最大值16,777,215,然后合并大约9,000,000-10,000,000 satoshis。
每个通道的闪电网络容量
4、闪电网络切断通道与节点
切断通道是衡量网络整体连通性的一种手段。 切断通道是连接网络不同组件的两个节点之间的通道,该通道的移除将阻止其他节点拥有路径,因此切断通道也称为桥接。
闪电网络切割通道
与其他指标一样,闪电网络中的切断通道没有最佳百分比,如果百分比较低,那么理论上闪电网络的连接性比百分比较高时更好。切断节点与切断通道的概念相同,只是它表示连接网络的两个部分的节点。
闪电网络切割节点
从市场来看,我们更愿意看到被切断的通道和节点呈下降趋势,因为这表明网络正在变得更加连接并且越来越不依赖于中心化力量。 许多用户、开发人员和支持者都认为比特币协议是去中心化的,并高度重视,因此这也适用于闪电网络。
也就是说,在同一组中了解闪电网络的人不一定关心潜在的闪电网络“中心辐射”结构,这是一种由商家服务运行的大型节点拥有大量通道容量的现象,而大部分网络必须相互贯穿。
个人开设的通道想要与商家服务运营的通道一样连接的期望是不现实的。 资本必须分配给开放通道,这自然会导致闪电网络流量通过更大的通道流动,这些通道将充当枢纽。闪电网络的价值主张是,如果你不想,你无需使用中心化集线器来支付路径。没有什么能阻止个人与他们想与之交易的对象建立私人的、较小的通道。闪电网络仍然是未经许可的,并不需要大型中心化力量的许可才能使用。
闪电网络有选择的能力。
漏洞:攻击媒介与方式
当涉及闪电网络的讨论时,许多报告论文和媒体内容已经严重两级分化。通常被定义为两种说法,一种则是被描述为一种可以解决比特币所有规模问题的完美产品,而另一种则与之相反,闪电网络并不被看好,甚至希望将其技术应用于一些其他代币中,而不是执着于闪电网络的进一步研究。
当然,现实是介于两者之间的,投资者可以从开发者的角度来看待闪电网络。总的来说,闪电网络开发社区认为闪电网络是一项具有巨大潜力的令人兴奋的技术。同时他们也明白,如果要广泛实施闪电网络,还需要考虑闪电网络所存在的一些会被攻击的漏洞。
攻击媒介
在我们深入研究特定的攻击媒介之前,我们需要对一些闪电网络术语进行定义。
闪电网络使用哈希时间锁定合约(HTLCs),主要包含两个基本部分来支付:哈希锁和时间锁。这基本上意味着,有一个哈希可以被公开以成功路由支付,这通常被称为原相密码。还有一个超时的概念,即任何一方在经过一定时间后都可以要求付款。
这种超时的概念被用于避免疏忽的渠道运营商出现错误,但它也可能被攻击者利用。当节点发送支付时,它们通过发送HTLC来完成。还需要注意的是,攻击者还可以利用他们对L1工作过程的了解来进行攻击,因为比特币节点在闪电网络的正常运行中发挥着重要作用。
1、Griefing攻击
Griefing攻击是通过向闪电网络发送小额支付的垃圾邮件来冻结提交给闪电网络的比特币。闪电网络通道一次只能容纳483个待定的HTLC,因此,攻击者可以通过其他节点维护的通道将483个小额支付发送到他们控制的另一个节点,然后长时间持有HTLC以使这些通道失效。这可能导致资金被冻结长达两周,届时就会因为超时而取消合约。
Griefing攻击不等同于盗窃资金,但可以用于破坏或向闪电网络运营商索要赎金。而且攻击者也可以用很少的资金、一些脚本知识和一点运气关闭很重要的大通道。
Griefing攻击也可能导致由于Griefing攻击所引发的通道强制关闭而导致资金的意外损失。当一个通道伙伴试图在没有得到另一个通道伙伴同意的情况下关闭一个通道时,就会发生强制关闭。通常情况下,强制关闭通道并不理想,因为资金锁定的时间比双方同意的渠道关闭时间长,而打开渠道的合作伙伴将会支付比平时更高的链上费用。
闪电网络的维护者们从来没有去深入解决过Griefing攻击这个问题。Joost Jager正在研究一种名为“断路器(Circuit Breaker)”的概念,“断路器”允许节点运营商在每个对等点的基础上分配最大数量的运行中HTLC,从而使攻击者不可能用最大数量的HTLC淹没节点。 为“断路器”必须在整个网络中实施,因此这一改变需要更广泛的社区的支持。
2、Eclipse攻击
Eclipse攻击,又名时间膨胀攻击,这其中包括对闪电网络节点的Sybil攻击。为了实现这一点,攻击者启动数百个节点来聚集被攻击者的节点,这样被攻击者就不会连接到任何正确的节点。这有效地阻止了被攻击者进入实际的点对点网络,攻击者可以指示被攻击者看到什么。从那里,攻击者可以关闭闪电通道,由于被攻击者无法知道网络实际在做什么,所以攻击者就可以借机窃取资金。
乍一看,这似乎没什么大不了的。如果您正在运行一个完整的节点,那么很可能会因为与正确节点的连接过于广泛,而无法受到充分的攻击。然而,一些钱包提供商使用了许多闪电网络的“轻量级”设施。这些设施每次只从比特币链接收一个区块的数据,并不总是有区块链交易历史的副本。请注意,虽然闪电网络是独立于比特币的,但对区块链的了解仍然至关重要。这些轻客户端使用区块链处理的后端来节省资源受限设备(主要是移动设备)上的空间。
然而真正的问题就在这里。Eclipse攻击会利用那些使用轻量级闪电网络和比特币设施的用户,这可能意味着这些用户不太成熟,但资金充足。这显然与比特币和支持比特币的服务的精神和最终目标背道而驰。
大多数可以采取的措施来缓解这种攻击媒介都来自用户端,尽管还存在一些潜在的解决方案,例如:
1、更高的连接性和正确可到达的节点数。应鼓励可靠的用户向网络提供更多资源,并在比特币网络上更有效地利用这些资源,因为闪电网络与Layer 1相关。致力于网络的正确节点越多,就越难受到攻击。
2、对等点多样性,通过对等点轮换实现主动拓扑改进。这将增加Sybil攻击的成本,因此是一种有效的对策。
3、监视塔的实现,作为网络的监视器,当检测到用户试图广播不正确的通道状态以欺骗协议的用户时,发送“breach remedy”或“justice”交易作为惩罚。监视塔实际上是在探测闪电网络中的不良行为。
3、Pinning攻击
Pinning攻击利用不同的交易内存池,以及当主交易的费率太低或交易不允许费用替换(RBF)(后两者是相关的,但概念略有不同)时,子交易无法为主交易付费(CPFP)而交易受到冲击。
当比特币交易启动时,它们被聚合到一个内存池中,矿工在其中寻找要包含在块中的交易。CPFP是指在原始交易的费用太低而无法按预期的速度执行的情况下,参考先前交易以提高有效费率以加快其添加到区块链的交易。RBF指的是一种交易策略,允许将内存池中未确认的交易替换为相同的交易,但收取更高的费用。CPFP和RBF的不同之处在于,CPFP交易始终可以尝试,而RBF交易只能在原始交易选择RBF时发生。
考虑到这些概念,成熟的攻击者可以利用比特币和闪电协议的优势对待处理的闪电交易进行锁定攻击。Pinning有多种形式,如下所示:
1、攻击者与目标受害者建立了两个通道。
2、攻击者通过这些通道从攻击者A向攻击者B发送交易。
3、当攻击者B收到HTLC时,它们不响应并等待时间超时。这迫使受害者发布包含“HTLCtimeout 交易”的承诺交易,以便在受害者和攻击者B之间索取HTLC B中包含的资金。
4、然后,攻击者广播一个交易,在受害者和攻击者B之间声明HTLC B,并在禁用RBF的情况下故意以较低的费用泄露哈希锁密码。费用被故意设置为较低,因为在攻击者A能够提取HTLC A之前交易必须不确认。否则,攻击者的HTLC B被成功挖掘,使受害者能够看到它和必要的原像,从而使他们能够从HTLC A提取资金,从而停止攻击。如果攻击者的交易在受害者的HTLC超时交易之前进入矿工的内存池,受害者将无法收回资金,HTLC B值将从受害者流向攻击者B。受害者可以尝试使用RBF增加其HTLC超时交易的费用,但他们无法替换攻击者的交易,因为它禁用了RBF。受害者被“固定”在适当的位置,无法做任何事情,因为他们在自己的内存池中看到HTLCtimeout交易,但它没有被挖掘。
5、同时,从攻击者A到受害者的HTLC A时间锁定到期,攻击者A可以为自己申请HTLC A。当攻击者的交易被挖掘时,受害者将在下游支付HTLC,但在上游没有收到相应的金额。
下图提供了Pinning攻击基本原理的摘要和概要:
资料来源:Bastien Teinturier
更深入地说,对于HTLC,所有矿工在他们的内存池中都有一个“成功”交易,该交易显示了声明HTLC的原像,而网络的其余部分有一个超时交易。攻击者确保原像交易具有足够低的费率,可以保存在内存池中(通常矿工将在具有较高费率的块中包含交易),以便上游通道能够声明超时的HTLC。
如果前面的攻击听起来过于复杂,那是因为它确实如此。好消息是Pinning攻击非常难以实现。这需要对比特币区块链和闪电网络有深入了解的人。无论多么困难,这仍然是很有可能的。开发人员正在通过一些更新来缓解这种攻击。
首先,锚定输出使此攻击更加困难。锚定输出是闪电网络承诺交易中的特殊输出,旨在允许对事务进行缓冲。锚定输出本身并没有停止锁定,但它们确实使锁定变得更加困难。这些已经为闪电提出了一段时间,现在已经在闪电网络上使用了。
第二,有一种称为“包中继”的东西,当与锚点输出相结合时,就会使Pinning攻击成为过去。“包中继”是一项正在提议的功能,它允许节点发送和接收相关交易的包裹,这些交易将根据整个包的费率而不是每个单独交易的费率被接受或拒绝。这打击了攻击者完成Pinning攻击的主要机制。
4、Flood&Loot攻击
Flood和Loot攻击利用闪电网络使用时间锁路径支付这一交易。要执行Flood和Loot攻击,攻击者需要两个节点:源节点和目标节点。通过源节点,攻击者打开一个与受害者的通道,从而通过目标节点打开其他通道。然后,攻击者通过受害者向目标节点发送尽可能多的付款或HTLC。攻击者在付款到达目标节点时接受付款,并将原像发送回源节点进行验证。
此时,攻击者的源节点停止应答。这意味着受害者必须等到HTLC超时后才能关闭比特币链上的通道。但是,如果攻击者同时关闭所有通道,比特币链将变得拥挤,节点希望同时关闭其通道。超时后,攻击者可以使用RBF声明任何已经过期的HTLC。
这是一次破坏性的攻击,因为它会导致资金损失。开发人员有几种方法来降低Flood和Loot攻击攻击的发生率。在概述这些攻击之前,避免这些攻击的最简单的方法,尤其是作为个人,就是仅使用你知道和信任的节点打开闪电网络通道。
降低攻击率方法:
1、如果一个节点有许多其他方无法解决的待定传入HTLC,则该节点很可能受到攻击。在这种情况下,应尽早关闭该通道,以避免资金流失。支持更复杂的动态关闭规则策略,该策略根据该通道可能产生的潜在损失调整“承诺广播增量”,即HTLC到期之前节点开始单方面关闭通道的时间。
2、考虑一种机制,该机制将根据节点操作员响应对等行为而设置的基于信誉的分数,改变可通过节点连接到的通道发送的HTLC数量。节点信誉越高,通过它发送的HTLC数量就越多。
3、锚点输出长期以来一直被认为是Flood和Loot攻击的缓解技术,现在它们依靠闪电网络生存,也会使得这些攻击变得更加困难。
战略规划与未来展望
闪电网络前景广阔,但仍有许多工作要做,还有很长的路要走。对此,在闪电网络未来发展道路上的一些规划以及展望中,闪电网络开发人员提出了关于闪电网络未来发展规划的六大要点。
1、闪电网络的开发应该有条不紊、谨慎地进行,以保持一致的正常运行时间,所以开发人员还不能在真正资金危及的开源网络上打破常规的加速行动;
2、网络及其设施(提供拟议程序规范的实际软件)必须始终遵守闪电网络的技术规范,不能“不符合规范”。 如果其中一个流行的设施,例如Lightning Labs的lnd、ACINQ的eclair或 Blockstream的clightning,为了追求它们认为更优越的东西而偏离规范,那不仅会对闪电网络造成损害,而且还会对创建我们现在拥有的金融支付系统造成损害;
3、闪电网络还处于萌芽阶段,还需要更多的用户来测试网络,因为一旦现实生活中的激励措施产生,那么在测试环境中所产生的工作想法可能就行不通了;
4、有些人和组织将寻求“游戏化”网络以获取经济利益,这类似于困扰以太坊的MEV机器人。随着更多价值附加到闪电网络,这可能会成为一个潜在的问题;
5、随着网络的发展,我们所知道的理论问题可能会成为真正的问题。闪电网络白皮书中直接引用的一个例子是强制删除过期垃圾邮件;
6、闪电网络最终可能不会大规模运行,因为当有数十亿个支付通道时,对比特币链及其内存池的依赖是当前设计中的闪电网络可能无法扩展到数十亿用户的原因。
==
和2万人一起加入鸵鸟社群
添加QQ群:645991580
添加TG群:鸵鸟中文社区 https://t.me/tuoniaox