Eltoo:比特币的闪电网络协议
比特币第二层扩展解决方案Lightning Network的采用和发展正以光速增长。
每天我们都会看到比特币闪电网络上的新实现,这使得事情变得更加简单,快速和安全。
所以这次开发人员提出了一个名为ELTOO的新协议,可能会增强闪电网络上支付渠道的运作。
基本上,Eltoo协议减少了LN支付渠道与链上区块链的交互次数,以使闪电网络更快更有效。
现在我们在本文中讨论以下主题:
- 什么是eltoo
- 为什么eltoo
- eltoo如何运作
那么让我们开始比特币闪电网络的eltoo协议的概念,让我们看看闪电通道如何通过使用这种eltoo技术获得好处。
1什么是Eltoo?
eltoo协议白皮书最初由Blockstream开发商Christian Decker,Rusty Russell和Lightning Labs开发商Olaoluwa Osuntokun于2018年4月30日提出。
Blockstream研究开发人员Christian Decker也发表了一篇关于eltoo的文章,以便在2019年4月30日的块流博客上以简单的方式描述eltoo协议的工作。
我们很高兴地宣布#eltoo:一个更安全,可靠,灵活且无惩罚的#Lightning和多方脱离合约的更新机制⚡️?https://t.co/cVLvjEjMsZ#LightningNetwork#Bitcoin #LApps pic.twitter.com/WKe3g50juY
– Blockstream(@Blockstream)2018年4月30日
在这项工作中,我们引入了eltoo,一种简单但功能强大的重新协商和失效机制,用于脱链协议和智能合约。与以前的协议相比,Eltoo实现起来更简单,更易于分析,可以轻松扩展到任意数量的参与者,并且占用空间非常小。
比特币协议支持eltoo所需的修改很少,并且由于最近部署的segwit可以轻松部署。
– Christian Decker,Rusty Russell和Olaoluwa Osuntokun
简单来说,eltoo是闪电网络中的一种脱链更新机制,通过确保旧状态无法在链上进行重新协商来重新协商新状态。
Eltoo被提出作为一种新的协议来更新协商的合约状态,这使得任何先前的状态无效,使其无法执行。
基本上,eltoo引入了状态数字的概念,类似于序列号(基于nSequence数量的替换)但可执行:通过允许后来的状态重新依赖任何先前的状态,链接结算被延迟到最后的结算事务确认。
为了使后来的状态能够重新连接任何先前的状态,引入了浮动事务的概念,其中可以使用匹配脚本绑定到任何先前事务的事务。
2为何选择Eltoo?
Eltoo协议的开发是为了克服Lightning Network目前的惩罚功能。
有时一方提交闪电网络交易与过去的信道状态信息作为链上区块链的当前状态,这大多数时间是由于一些错误或钱包错误发生的。因此,闪电协议保护用户免受欺诈性企图诈骗者以虚假的交易信息陷入网络。
因此,惩罚结构的设计是为了阻止恶意方进行此类恶意活动,并且恶意方导致所有资金都丢失给其他诚实方。
但是这种保护对于用户来说是一个很大的问题,当这种情况通过一些错误或钱包错误意外发生时,诚实的用户也会因为惩罚而失去他们的资金。
这类问题主要是因为闪电网络还处于早期阶段,需要大量的开发。
检查以下报告,显示由于闪电网络的这种惩罚问题导致用户资金损失。
TrustNodes媒体报道 – 闪电网络用户失去资金
比特币Reddit报告 – 黑客试图从Lightning频道窃取资金,最终因为惩罚系统按预期工作而失去他们的资金
那么,谁首先在#LightningNetwork #bitcoin mainnet上赔钱?我的频道是496811:2089:1(https://t.co/y9crxdA4Um),但#clightning bug无法识别自己的关闭tx。 @Snyke @roasbeef @acinq_co?
– TheRustyTwit(@rusty_twit)2018年1月15日
Lightning DOSers似乎有组织和激励,开发专门的软件来攻击Beta LND节点。节点强化正在进行中我们正在获得开发强大的p2p部署策略的良机。 @juscamarena刚刚看到了罚球场景的现场测试。 pic.twitter.com/C0ARD1wj5b
– AlexBosworth☇(@alexbosworth),2018年3月26日
Eltoo协议旨在通过提供一种更新闪电网络支付渠道交易的新方法来完全解决这一惩罚结构问题,其中交易可以绑定到任何先前的交易,具有匹配的脚本,并且不需要每次都验证旧交易,以及它还通过使闪电网络更快更安全来提高闪电网络的效率。
3 Eltoo如何运作?
在eltoo协议中,LN通道的每个状态都包含两个事务的集合,其中一个是更新事务,另一个是结算事务。
更新事务包含花费合约输出的指令,然后在需要时为合约创建新输出。
另一方面,结算交易的主要功能是花费新创建的更新交易的更新输出,并按照约定的分配划分资金。
这些事务的输出包含立即启用新更新的事务与输出组合的脚本,或者默认情况下在配置超时后附加结算事务的脚本。
只有当两方在事务超时到期之前签署协议时,才会创建新的更新事务。
因此,这使得eltoo很容易使先前产出的支出无效以及合约中相应结算的双重支出。
基本上,Eltoo协议直接将最终更新事务连接到合约创建,这使得eltoo可以跳过更新事务链中的中间更新。
为了使更新事务的这种短路,Eltoo协议使用了一个新的SIGHASHflag,SIGHASH_NOINPUT,它使事务的输入能够与匹配的脚本绑定到事务的任何输出。
因此,通过跳过任意数量的中间更新事务,可以将以后的更新事务绑定到任何先前的更新事务成为可能的方式,因为先前的更新事务输出的所有输出脚本都匹配以后的输入脚本。
白皮书 – 点击这里
块流指南 – 单击此处
Youtube指南(Andreas Antonopoulos) – 点击这里
Christian Decker视频演示 – 点击这里
另请阅读:如何赚取比特币? 13种不同的赚取比特币的方法