闪电网络最大的固有限制之一是考虑到块大小限制,每个块可以打开或关闭的通道数量有限。 无论有多少交易可以在链下进行,成本有多低,这都是限制有多少人可以真正使用闪电网络的根本瓶颈。 就连闪电网络白皮书也得出这样的结论:在全世界 70 亿人口都在使用闪电网络的情况下,每人每年只有两次链上交易,比特币需要 133 MB 的区块才能让闪电网络发挥作用。 这不是一些超出范围的问题,也不是不可预测的问题,而是从第一天起就完全理解的协议设计的限制。
解决这个问题的计划的一部分一直是通道工厂的想法,即一种有两个以上用户参与的通道。这始终是为了在没有区块大小的情况下扩展闪电网络和比特币的方向。增加,但问题是解决链上足迹问题会带来一系列其他问题。 首先,如果交易对手不做出回应,则执行中间状态的要求不会发生根本性变化。 这对增值有影响。 通道工厂的全部意义在于,例如,20 个人可以共享一个 UTXO,并与其他 20 个人按照自己的意愿重新安排内部的流动性。 一旦有人不合作地关闭链上,这就会开始干扰该目标。
如果我关闭渠道工厂内的渠道,我就会把一群人拖出工厂。 想象一个像默克尔树一样的工厂,顶部有一个 UTXO,它在链下分裂成两半,链下分裂成两半,等等,直到我们到达每个人的个人通道。 一旦我将通道从工厂中剥离出来,链上每个分片中我这边的每个人现在都与工厂中的其他人隔绝了。 如果每个人都合作,他们就无法再将流动性重组到集团的这一部分中。
另一个大问题是,即使要启动一个,你也需要在一开始就让每个人都在线以预先签署所有交易。 如果你想要一个工厂有二十个人,那么每个人都需要在线才能启动。 如果你想要一千人,一千人就需要在线,等等。
这使得通道工厂成为一个巨大的设计空间,充满了许多需要解决的问题。 因此,我们解决了闪电网络的现有问题,但又提出了一系列新问题。 对我来说听起来像是工程学。
超时树
约翰·劳最近的提议, 超时树,试图为渠道工厂的一个核心问题提供解决方案。 我不太会把超时树称为通道工厂,更多的是“原型工厂”,但它为打开和关闭大量通道的问题提供了一个潜在的解决方案,而不会引入非合作关闭破坏通道的问题。工厂供其他用户使用。 它需要 CHECKTEMPLATEVERIFY (CTV) 和照明服务提供商 (LSP) 才能正常工作。
超时树本质上是一个由契约保证的通道工厂,无法改变流动性在创建后链下重组的方式,并有特殊的逃逸条款。 LSP,我们称之为 Bob,扮演着将临时用户连接到更广泛的闪电网络的角色。 Bob 可以用他控制的代币创建一个 CTV 树,该树创建一个 UTXO 展开,以向任意数量的 LSP 服务用户开放通道。 CTV 的好处在于它可以在每个人都同时在线的情况下完成此操作。 Bob 可以简单地让每个人一次签署他们的初始频道状态并保留它们,直到每个人都设置了频道,然后在为每个用户设置频道后将资金花到 CTV 树中。
这解决了每个人都必须同时在线才能建立“工厂”并开始使用闪电网络的问题。 由于 CTV,一旦鲍勃将硬币投入到树中设置每个人的闪电通道,他就无法退出并拿走硬币(目前为止)。 随着 CTV 中的第一个 UTXO 在链上得到确认,每个人都可以将自己的频道视为开放的,并且不存在被双花的风险。
现在是最后一部分,关闭通道。 尽管由于 CTV 而打开它们只需要一个链上 UTXO,但关闭它们仍然需要整个 CTV 树在链上展开,以便每个人都可以提交他们的通道状态,对吧? 错误的。 这是超时树的超时部分。 超时树中的每个分支都有一个脚本分支,鲍勃可以在时间锁后清除所有资金。
现在我确信你在想“什么!?” 这就是该提案运作方式的真正天才之处。 由于 Bob 可以在时间锁定后自行清扫链上 UTXO,而无需其他任何人,因此这些通道都有一个到期日期,除非用户真正展开整个树并确认链上的真实通道资金。 这使得鲍勃可以做一些巧妙的事情:当时间锁到来时,他可以与当前树的所有用户一起打开一棵全新的超时树,并让他们将所有资金从即将到期的树完全转移到新的树中- 闪电网络上的链,然后扫描最后一棵树的单个链上 UTXO。
这可以有效地关闭所有这些链上通道。 现在剩下的唯一问题是,如果另一方停止合作,则在链上强制执行 HTLC。 嗯……在这种情况下这并不是真正的问题,或者更确切地说,这是一个全有或全无的问题。 必须关闭通道才能强制执行 HTLC 的原因是通道的另一方在路由过程中停止响应。 在超时树中,每个用户的对应者都是 Bob。 因此,如果 Bob(只要他是诚实的)没有响应某个用户更新失败或成功的 HTLC,那么他也不会响应任何其他用户。 在这种情况下,每个人仍然可以在超时之前关闭他们的链上通道并停止使用 Bob 的 LSP。
包起来
用户仍然需要为链上交互支付费用,这是没有办法解决的,并且整个超时树以非合作方式关闭链上将是一个巨大且昂贵的链上足迹,但这最终是一个问题任何多方渠道系统都必须解决这个问题。 然而,超时树确实对打开和关闭大型多方通道的合作案例提供了令人信服的解决方案,而不会将系统的信任模型降级为托管模型。
John 甚至在他最新版本的论文中提出了一种方案,其中用户可能因不合作关闭而受到足够的惩罚,足以弥补 Bob 在超时后最终清除一堆碎片树 UTXO 的成本。 如果 Bob 的不活动或不诚实导致用户不得不不合作地关闭他们的树部分,则可能有一些方法可以实现相反的效果。
但归根结底,这是一个非常具体和具体的通道工厂设计提案,它实际上试图解决使用和实现的实际问题,而不是一个半定义和模糊的概念。 这是解决闪电网络长期扩展限制方面的巨大进步。