比特币很快就会迎来闪电技术新转折

互联网 2018-05-31 15:56:59

比特币的闪电网络可能刚刚开始在区块链上发送交易,但它的开发商已经在寻求重新架构这项技术。

这是因为,虽然被吹捧为大幅提升比特币容量的一种方式,但网络本身确实需要用户存储大量数据,这使得下载和运行起来很困难。因此,一些闪电开发人员——闪电实验室的联合创始人'Laolu' OsuntokunBlockstream的Christian Decker Rusty Russell发布了一项新的提案,他们设想了一种“简化”的方式来制造所谓的“eltoo”off-chain交易。

但新的提议不仅是要压缩用户需要存储的数据量,而且还要保证用户的加密货币安全。

例如,所有这些数据都带来了另一个问题:如果用户不小心播放了旧数据,他们可能会赔钱。因此,这些数据被称为“有毒信息”。

另一方面,Eltoo只存储最近的off-chain交易数据,解决了众所周知的“信息不对称”问题——即如果你正在运行的闪电应用程序的设备发生了什么事情,比如你的智能手机,你可能会失去对整个数据历史的访问权。

“有了eltoo,我们可以减少资金被冲走的风险,我们删除了这些有害信息。” Decker说,该提案的名字是一个玩笑——“L2”的语音拼写,意为“第二层”,也就是许多人称之为技术的“闪电”,推动off-chain交易

这是Decker自己亲自经历过的问题,因此非常感兴趣。

“这实际上发生在我身上,”他说,并补充说:

“我的笔记本电脑上有一个旧的闪电节点,我恢复了它,我不知道我没有最新的状态,这个人关闭了连接,因为他们知道这是一个旧的状态,因为他可以偷走它。 他也是这么做的。”

关于撤销

长期以来,开发人员一直在试图为用户提供一种使用比特币进行大量交易的方法,而不需要使用不必要的数据来破坏区块链。

这就是大多数的缩放辩论的内容。

但第一次尝试是在比特币历史开始的时候,当时人们尝试使用所谓的“序列号”来跟踪off-chain交易是最近的情况。

这个想法很简单。如果Alice有10美元,并向Bob发送1美元的交易,显然她的余额会减少到9美元。然后得到一个序号“1”。如果稍后,她发送Bob $4,她的余额现在是$5,这个最近的交易序列号为“2”。

但根据Decker的说法,这一机制“没有奏效”,因为矿工没有任何理由去执行这些规则,并将旧的交易换成最近的交易。

矿工可以只播放Alice的余额降至9美元这一笔交易(尽管她做了另一笔交易将余额降至5美元)。虽然目前还不清楚为什么一名矿工想要或决定不撤销另一笔交易,但他们可以决定这么做,因为没有可执行性。

用这种方式,在关键时刻撤销旧交易,否则Bob可能无法获得第二笔交易,而Alice可以欠款潜逃。

这种“缺乏执行力”的问题直到2015年才得以解决。

到目前为止,闪电网络是最著名的解决方案。今天,撤销旧的状态是用“L2-penalty”模型完成的,即一个闪电钱包或节点存储所有这些中间状态,然后,如果某人试图播放一个更早的、现在无效的状态,就会被检测到,并且欺骗性的用户会受到赔钱的惩罚。

Eltoo和L2

但是,三年过去了,研究人员实际上又回到了用序列号来撤销旧交易的想法。

与比特币的旧代码不同的是,eltoo还添加了一种程序,使每个状态更新都有规定。每个状态更新——例如Alice向Bob发送货币——是由两个事务组成的,每个事务都存储并完全取代先前的更新事务。

“只有最后一笔结算交易可以在区块链上得到确认。”

该系统的一个重要优点是它增加了闪电网络的可扩展性。对于eltoo,每个闪电节点不需要存储所有的中间状态,相反,它只存储最近的版本和关于事务本身的一些信息,例如它的相应的结算事务,以及从该解决方案中花费的HTLCs。


也许是这个建议中最有益的部分,但它不是建立在“赢家通吃”的模式之上。


相反,eltoo和较旧的L2惩罚方案可以并排使用。

“Eltoo有完全不同的权衡。我不是说它在所有的体验都很好。”Decker在CoinDesk上指着比特币开发者邮件列表上的一些争论说,这些技术增加了交易的等待时间。

不过,总体来说,他还是对Eltoo和L2带来的网络简单性相当兴奋,并补充道:

“我们不知道哪一个更好,但我也希望eltoo是更好的选择。因为我认为eltoo更容易解释,并更容易在以后得到扩展。”

代码障碍

开发者不仅在讨论这个建议的优点, 还在考虑要站在技术的角度上思考sighash_noinput"函数需要将这个期待已久的代码选项添加到比特币代码库中, 以便能够是加密货币支持 eltoo (至少以有效的形式)。

要理解为什么, 重要的是要知道基本的 sighash 函数是做什么的。它是一个用作排序的标志, 指定将事务数据转移到其他人时需要签名的部分。用户可以从一系列选项中进行选择。例如, 默认标志 sighash_all 指示事务的所有部分都需要签名, 这意味着在整个过程中都不能更改这些部分。

所提议的 "sighash_noinput" 函数可能会标记进入事务的 "输入” 数据不需要签名。反过来, 输入数据可以随着时间的推移而变化, 从创建事务到写入区块链的时候。

这正是 eltoo 需要的, 因为这个概念展示的是从开始和最终事务之间的所有状态都将被删除, 这意味着输入将不同于开始和结束。


当被问及他是否认为 sighash_noinput 的建议将被合并到比特币代码库中时, 他笑着说, "自从 SegWit以来, 我就不再做这些预测了。
他指出, 隔离见证(SegWit) 从比特币最活跃的开发商中得到了广泛的支持, 但最终在社区内激起了长达一年的战斗。尽管它是在两年多前提出的,但代码更改直到去年8月才添加到了比特币上。

不过, 即使是在早期, sighash_noinput 函数对比特币代码库来说也是一个相对容易变化的。此外, 据推测, 这一变化将对开发商产生许多积极影响,,他继续说道:由于这些潜在的好处,一些Twitter用户已经开始将代码更改添加到他们的配置文件中,以表达他们对eltoo的支持。

仍然充满希望,Decker总结说:“每天都有新的用例加入到sighash_noinput前沿。”

翻译晓熙

相关资讯Relevent