8BTCCI: 14169.65 +0.91% 8BTCVI: 6322.48 +2.49% 24H成交额: ¥5181.63亿 +21.05% 总市值: ¥19489.06亿 +0.99%
闪电网络新技术出现:压缩交易数据,保护用户资金安全

闪电网络新技术出现:压缩交易数据,保护用户资金安全

linkea 发布在 比特币 20824

虽然可能比特币的闪电网络刚刚开始越过区块链发送交易,但是其开发者已经开始想办法重构该技术。

这是因为,虽然它被吹捧为是一种能显著提升比特币交易容量的方式,但闪电网络本身确实需要用户存储大量数据,这使得闪电网络数据的下载和通道运行变得很困难。 因此,Lightning Labs联合创始人'Laolu' Osuntokun和Blockstream的Christian Decker、Rusty Russell等几位闪电网络开发者提出了一项新的比特币改进协议,设想了一种替代的“简化”链下交易方式,称为“eltoo”。

QQ截图20180529224513

但新协议的目的不仅仅是为了压缩用户所需要存储的数据量,而且还要保护用户的资金安全。

例如,这些数据带来了另一个问题:如果用户不小心广播了旧数据,他们可能会因此造成损失。因此,这些数据被称为“有毒信息”。 另一方面,Eltoo仅存储最新的链下交易数据,解决了众所周知的“信息不对称”问题————即如果正运行着闪电网络应用的设备发生问题(比如你的智能手机),你可能就会丢失全部历史数据。

Decker说:“通过eltoo,我们降低了资金丢失的风险,我们删除了这些有毒信息。” 他指出,该协议的名称是一种玩笑————“L2”的拼写,代表第二层(Layer-two),许多人称之为闪电般的技术,推动了交易脱链。

这是Decker亲自遇到过的问题,因此他对此非常感兴趣。

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

“我的笔记本电脑上有一个旧的闪电网络节点,我恢复了它,但我并不知道我没有更新到最新状态。那个人就关闭了连接,因为他知道这是一个旧的状态!这样他就可以偷走它。顺便说一下,他也确实这么干了。”
 

关于撤销旧交易

 

长期以来,开发者们一直试图为用户提供一种使用比特币进行大量交易的方式,而不会因为不必要的数据导致区块链膨胀。

这就是大多数扩容争议所讨论的内容。

但比特币历史上第一次尝试是在试验链下交易使用所谓的“序列号”的时候,开发者们尝试用序列号来追踪哪笔链下交易是最新的。

这个想法很简单:如果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,每个闪电网络节点不需要存储所有中间状态,而是仅存储最新版本和关于交易本身的一些信息,例如相应的结算交易以及可能来自该结算交易的哈希时间锁定合约(HTLC,Hashed Timelock Contract)。

QQ截图20180529224050

闪电网络堆栈不同子协议的示意图

然而,该协议中最有益的部分是,它不是建立在“赢者通吃”的模式上。

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

“Eltoo有很多不同的权衡,我不是暗示它在所有方面都更好,”Decker告诉CoinDesk,指出了比特币开发者邮件列表中一些关于该技术增加了交易确认等待时间的争论。

总之,他对eltoo及其简单性而感到兴奋,他还补充道:

“我们不知道哪一个更好,但我希望eltoo成为更好的选择,我认为eltoo更容易解释,以后也容易进行扩展。”
 

代码上遇到的障碍

 

不仅开发者们仍在讨论该协议的优点,还有另一项技术上的障碍————“sighash_noinput”。

这个期待已久的代码选项需要被添加到比特币代码库中,以便加密货币能够支持eltoo(至少以一种有效的形式)。

要理解为什么,了解基础sighash函数的作用很重要。它作为一种标志来指定交易数据传输给其他人时需要签名的部分。用户可以从一系列选项中进行选择,例如,默认标志sighash_all表示需要对交易的所有部分进行签名,也就是说,在整个过程中这些部分都不能被改变。

该协议的“sighash_noinput”函数可以标记交易的“输入”数据不需要签名。反过来说,从创建交易到写入区块链时,输入数据会随着时间变化。

这正是eltoo所需要的,因为其概念是在初始交易和最终交易之间的所有状态都将被删除,这意味着其输入将与开始时的和结束时的不同。

当被问及他是否认为sighash_noinput协议会被合并到比特币代码库时,Decker笑道并说:“自从隔离见证(SegWit)以来,我就不再做这些预测了。”

他指出,隔离见证得到了大量比特币活跃开发者们的广泛支持,但最终却引发了社区内长达数年的斗争。尽管隔离见证是在两年前提出的,但直到去年八月隔离见证才被添加到比特币代码库中。

不过,sigmash_noinput函数对比特币的代码库只是一个轻微改变,Decker说。

此外,他还说,从理论上说,这一变化将对开发者带来许多积极的影响。由于这些潜在的好处,一些Twitter用户已经开始将这些新代码更变添加到他们的个人资料中来表示他们的支持,就如他们在扩容争论期间所做的一样( 带上#No2X 的标记在反对Segwit2x计划的人们中很受欢迎 ) 。

最后,Decker总结道:

“每天都有新的sighash_noinput用例。”

评论(6)
登录 账号发表你的看法,还没有账号?立即免费 注册
  • 北纬北丶 2018-05-30
    币代码有么,
  • 我叫币币币币币哥 2018-05-30
    Aeternity的状态通道也是链下交易
  • Timolol2012 2018-05-30
    硬件、网络技术发展这么快,未来存储、网络的问题应该不大,就等电池技技术突破了[偷笑]//@pz-pz: 这技术值得关注。
  • 奇幻元素 2018-05-30
    意思是不需要大区块了吗?
  • merry 2018-06-05
    非常感谢 http://blockmeta.com/tx/1db50af1cc3beca64eb4f3c9209ab81cd48ba504f595513c5718f79145e04b90 赞助71.69 BTM
  • wookywk 2018-06-17
    我叫币币币币币哥:相当于侧链吧