Eltoo:一种简化的闪电脱链更新机制
2018-05-30 13:39 文章来自:IFTNews 收藏(0) 阅读(2268) 评论(0)


IFTNews区块链报道:一年多前,三个闪电网络实施小组联合起来,为协议栈制定了一个通用规范。既然这个规范和我们的三个实现都变得稳定和可用,现在是时候向前看了:进一步改进协议、添加新功能、简化和修复缺点。。

其中一项使闪电首先实现的核心创新是一种脱链更新机制,以重新谈判一个新的状态并确保旧状态不能在链上解决。今天,我们很高兴发布我们最新的研究报告,介绍一种新的,简化的第2层协议更新机制,称为Eltoo

Eltoo如何工作?

我们可以将脱链谈判想象成若干当事方之间的合同协议和解决方案,将案件提交给决定最终状态的法院 - 在这种情况下,法院是区块链。由于所有更新都是在链条外发生的,因此我们需要一种方法让链上法庭在作出最终判决之前听取论点的各方意见。在参与者开始解决合同的情况下,我们需要一种延迟最终结算的机制,以使对方有机会提供最近的状态。法院必须继续等待新的状态,直到最终决定解决最后一个听到的问题。令人惊讶的是,为第2层协议创建这个区块链定制版的大部分需求已经由比特币区块链实现了。


1Eltoo协议的执行示例,显示了如何通过将稍后的更新事务重新绑定到更早的事务或直接到设置事务来跳过中间状态。只有最后的结算交易才能在区块链上得到确认。

Eltoo中,每个状态都表示为一组两个交易:一个更新交易,用于花费合同的输出并创建一个新的输出,一个结算交易花费新创建的更新输出,并根据商定的分配分配资金。输出具有脚本,允许立即附加新的更新事务,或者在可配置的超时后附加结算事务。如果参与者在超时到期前同意更新,他们将创建一个新的更新事务,花费先前的输出并将相应的结算加倍,从而使其无效。

在新状态下,先前状态的重复失效会构建一个长链的更新事务,最终将被最新的结算事务终止。然而,这有一个主要缺点:如果我们想解决问题,我们将不得不重播整个区块链上的更新链。在那个时候,我们可以简单地在链上执行整个协议。 Eltoo的关键洞察在于,我们可以跳过中间更新,基本上将最终更新事务连接到合同创建。为了使这种更新短路,我们提出了一个新的SIGHASH标志SIGHASH_NOINPUT,它允许事务输入通过匹配的脚本被绑定到任何事务输出。由于先前更新事务输出的所有输出脚本都与较晚的输入脚本相匹配,因此我们可以将以后的更新绑定到任何以前的更新,从而允许我们跳过任何数量的中间更新。该文件包含协议的完整构造,包括有关如何构建脚本的详细信息。

改善闪电

我们上面介绍的是一种更新机制,它允许支付渠道的端点反复调整余额并将更高级的结构(如HTLC)附加到状态。

原来的闪电纸的主要贡献就是这样一种更新机制,那么我们是否试图用这个提议来取代闪电?绝对不是!


2:作为闪电堆栈一部分的各种子协议的图表。

闪电网络规范不再是单个协议的规范,而是完整的协议栈,每个协议都履行自己的职责。 Eltoo不打算取代整个闪电堆栈;相反,它是原始更新机制的直接替代品,可以与堆栈的其他部分保持向后兼容。

Eltoo与原来闪电论文中提出的机制有着根本不同的折衷,我们称之为LN惩罚; ln -点球使用惩罚系统来惩罚一个不守规矩的人时,Eltoo只是简单地强制执行了最近达成的合同。这对于构建在更新机制之上的协议的适用性和安全性有着重要的影响。

其中一些原因来自于这样一个事实,即所有参与者都拥有一组共同的交易,而不像LN惩罚那样,这需要参与者有权访问哪些交易的非对称性,以便针对行为不端的参与者制定反应。这一改变消除了我们在雷电中称之为有毒信息。有毒信息来自属于过时州的交易,如果泄漏将导致资金损失。这种情况不仅发生在当事方行为不当的情况下,而且如果节点忘记更新(例如,从备份恢复时)。有了Eltoo,这是不可能的,因为只有约定的国家才能得到解决(即Eltoo不会受到惩罚)。

参与者的数据管理在新模式下也得到了简化:他们不再需要为失效状态存储散列映像,并且他们不再需要存储失效的HTLC,因为他们所连接的结算交易永远不会致力于区块链。他们需要存储的是最新的更新交易,相应的结算交易以及可能来自该结算的HTLC。此外,结算简化为仅将最新的更新交易绑定到设置输出,并在广播结算交易之前让超时过期。

我们可以将更新输出与SIGHASH_SINGLE结合起来,以允许在结算时将更多输入和输出附加到更新事务中。虽然这可能看起来像是一个小小的变化,但它允许在结算时附加费用到更新交易中,使我们免于提前承诺固定费用。在目前的实施中,我们必须在我们试图确认链上交易之前的几个月内达成并承诺固定费用,这迫使我们预测费用市场将如何演变;这可能导致大规模的过度使用,以确保安全。通过选择延期费用,我们不再需要就费用达成一致意见,如果费用不足,我们甚至可以收取费用。

由于使用了功能标志,它允许节点在第一次连接到对等端时发送新功能的支持信号,Eltoo可以在当今网络的基础上增量部署。没有必要创建一个全新的网络。

闪电之外

作为通用的第2层更新机制,Eltoo可用于闪电以外的任何系统。例如,它允许创建目前可能有多达七名参与者的多方脱链合同,并且可以将任意数量的参与者与Schnorr签名结合使用。

Burchert等人提出的渠道工厂之一就是这种多方脱链合同。作为一种可扩展的方式,可以在单个链上交易之上为任何数量的支付渠道提供资金,并在未触及区块链的情况下动态重新平衡或重新分配。

通往Eltoo的路

在我们实现Eltoo之前,我们需要对比特币进行一些小改动:为签名引入SIGHASH_NOINPUT标志。这是几个月前在帮助保护闪电频道的了望塔的情况下首次讨论的,但没有正式提出。现在可以在Eltoo论文中找到正式的提案。

我们邀请社群考虑我们的提议并参与讨论。我们希望就SIGHASH_NOINPUT的使用达成共识,以便它可以被接受并包含在比特币脚本的未来软分支中。这样做会使我们走上一条更可靠更简单的闪电网络,并纳入一个新的更新机制,该机制也可用于许多其他应用。


原文链接:https://blockstream.com/2018/04/30/eltoo-next-lightning.html

作者:Christian Decker, Ph.D.

编译:小安