闪电网络 (第三部分) — 正义在何处?

摘要:在对闪电网络的第三次研究中,我们研究了闪电通道关闭方案以及惩罚诈骗者并阻止他们窃取资金的激励措施。此惩罚机制叫做 “正义交易”。我们对如何任意构建 “正义” 方案进行了解释,并在比特币网络上提供有关此类交易普遍性的数据。自 2017 年底推出闪电网络以来,我们已经确定了 241 笔正义交易,涉及 2.22 个比特币的价值。

(闪电袭击新加坡市)

概述

2018 年 1 月 我们对闪电网络背后的动机进行讨论以及 2019 年 3 月 对闪电网络路由费用进行经济学分析之后,闪电网络的第三部分着眼于通道关闭和为了防止非诚实性闪电节点通过广播早期的通道状态来窃取资金所提出的激励措施。

应该注意的是,根据设计,当窃贼试图通过闪电网络窃取资金时,如果被抓住,他们不仅会失去正在窃取的资金,而且会失去相关通道中的所有资金。期望这种 “惩罚” 将起到威慑作用,因此有时被称为 “正义” 手段。

四种关闭闪电通道的方案

一般来说,打开闪电通道比关闭它们更简单,因为只有一种方式打开闪电通道,就是双方之间的互动沟通。另一方面,在评估通道关闭时,需要考虑四种不同的方案,如下面的决策树中所述 (参见图 1)。

图 1 – 闪电网络通道关闭类型 – 决策树

(资料来源:BitMEX Research)

图 2 – 解释的四种关闭闪电通道的方案

关闭类型 描述

链上技术细节和示例交易

这是最常见的方案。


当诚实性节点启动通道关闭时,而通道另一侧的节点在线并进行通信,就会发生合作关闭。


资金根据最新的通道状态分配给各方在链上钱包。

合作关闭只需要一项链上交易。


输入是使用 “正常” 的 2 / 2 多重签名脚本来进行兑换,并发送到两个输出,每个输出属于各相关方,余额以最新的通道状态为准。

此项交易很难识别为闪电网络交易,因此它是三种通道关闭类型中最私密的。


示例关闭:

当诚实性节点在不直接与通道另一侧的节点通信的情况下启动关闭时,就会发生非合作非违约的关闭。


资金根据最新的通道状态分配给各方的链上钱包。

这两种不同的经济方案由一种技术链上方案表示。


这种方案需要两笔链上交易。 

首先,资金是使用 2 / 2 多重签名见证人来进行兑现,并发送到两个输出。没有启动关闭的节点根据通道关闭方所声称的责任来分配资金,而另一组资金会被发送到输出,该输出可以通过使用 OP_IF 或 OP_ELSE 脚本来兑现。

在第二项交易中,发送到 OP_IF 脚本的资金由发起通道关闭的一方使用比特币脚本的 OP_ELSE 分支进行认领。

示例关闭:

当非诚实性节点通过广播早期的通道状态试图从通道另一侧的节点窃取资金时,就会发生非合作违约非正义的关闭。

非关闭节点在锁定时间段内不检查网络,通常在24小时内,并且不广播正义交易。因此盗窃从而成功了。


资金根据早期的通道状态分配给各方的钱包,这使非关闭方损失资金而非诚实性通道关闭方成功窃取资金。

当非诚实性节点启动通道关闭时,而不直接与通道另一侧的节点通信,就会发生非合作违约正义的关闭。


非关闭节点在锁定时间段内检查网络,并创建一项正义交易,从而导致盗窃失败。


这个潜在的窃贼会受到惩罚,其所有的资金都流向诚实性的非关闭方。

在正义方案中,都需要两笔链上交易。 


在第一项交易中,资金是使用 2 / 2 多重签名见证人中来进行兑现,并发送到两个输出。没有启动关闭的节点根据通道关闭方所声称的责任来分配资金,而另一组资金被发送到输出,该输出可以通过使用 OP_IF 或 OP_ELSE 脚本来兑现。


在第二项交易中,未启动关闭的诚实性节点使用 OP_IF 分支认领发送到 OP_IF 脚本的所有资金。


这是三种通道关闭类型中最容易暴露的,其隐私级别为最低级。



示例关闭:

如何创建正义交易?

在下面的任意方案中,我们使用以下步骤手动创建了一项正义交易: 

1. 使用别名 “BitMEXThief” 来建立一个新的闪电网络节点 (
LND) 并使用 BitMEXResearch 闪电节点打开一个价值 50 美元(400,000 聪)的通道 
2. 关闭 BitMEXThief 节点并备份 .lnd 目录
3. 重新启动 BitMEXThief 节点,向 BitMEXResearch 支付 25 美元 (200,000 聪) 的闪电交易。通道现已平衡,两个方向均为 25 美元
4. 再次关闭 BitMEXThief 节点
5. 关闭 BitMEXResearch 闪电节点(防止其向窃贼节点广播最新的通道状态)
6. 将 BitMEXThief 节点恢复到通道重新平衡之前的状态,即步骤 2 中的状态
7. 在恢复的 BitMEXThief 节点上,尝试使用其早期状态来关闭通道,并认领全部金额 50 美元 (
400,000 聪) 到 BitMEXThief 节点的链上钱包。
8. 重新启动 BitMEXResearch 节点。然后,该节点会自动检测到企图盗窃的行为,并广播“正义
交易”,将 50 美元(减去费用)的全部金额发送至其链上钱包。窃贼将受到惩罚,失去通道内的所有资金。请注意,窃贼试图盗取 25 美元,但最终失去了其拥有的全部 50 美元。

上述实验成功实现,确保了闪电网络能起到作用,警示用户如果你试图偷窃,你将受到惩罚。

网络正义交易数据

在进行了我们自己的正义交易之后,我们研究了此交易的特征(使用 OP_IF 分支兑换输入),并在比特币区块链上搜索其他正义交易。我们确认了 241 笔似乎都是正义通道关闭的交易,其中最早可追溯到 2017 年 12 月。来自闪电网络实验室的 Alex Bosworth 先生创建了一个识别正义交易的工具,它可能比我们的基本搜索方法更强大。

图 3 – 正义交易数量 – 月度

(资料来源:BitMEX Research)

(注意:数据可能包含假阳性)

图 4 – 正义交易中的赎回价值 – 月度(比特币)

(资料来源:BitMEX Research)

(注意:数据可能包含假阳性)

我们确定的正义交易的交易投入总计为 2.22 个比特币,在 2019 年 2 月达到月度总投入的高峰,约为 0.67 个比特币,如上图 4 所示。这并不意味着盗窃者没有成功窃取 2.22 个比特币的投入额,因为非诚实性节点惩罚窃贼的金额可能大于他们试图窃取的价值(我们不知道最新的通道状态)。这 2.22 个比特币代表诚实性非通道关闭节点索赔的总资金,其中一部分是最初非诚实性节点拥有的资金,另一部分是他们试图窃取的价值。

也有可能在这 241 笔正义交易中的大多数交易都并不具有非诚实性,例如,一项交易可能是测试系统的用户,其中同一个用户拥有相关的两个闪电节点。例如,BitMEX Research 参与了 241 笔正义交易中的 5 笔,因为 BitMEX 拥有所有节点和资金,所以是没有受害者的。

在 241 笔正义交易里的价值仅才略高于 2 个比特币,这相对于闪电网络的规模而言,其价值是相当小的。闪电网络统计网站 1ml.com 表明目前有 940 个比特币被锁定在 32,951 个通道中。因此,过去 18 个月的正义交易总数仅为目前闪电通道数量的 0.7%。

结论

为了使闪电网络成为一个强大、可靠和可扩展的支付系统,正义机制需要有效地威慑和防止盗窃。然而,最佳正义率很难确定,如果值太高,表明盗窃成功率很高,而正义的威慑作用可能还不够。如果其值太低,可能意味着没有人试图盗窃,从而增加了用户不采取监控通道措施的风险。这可能导致未来大型系统性通道发生盗窃的风险增加。

目前,至少根据我们分析的数据,迅速发展的闪电网络上似乎存在合理的正义实现程度。

欢迎转载,请注明文章来自

BitMEX (www.bitmex.com)