闪电网络从最初的概念到实际应用的落地

区块链

575人已加入

描述

就在几周之前,第一次闪电网络落地Ind,并在全国范围内进行公测,第二次落地eclair在上周启动,同时很快也要启动第三次c-lightning落地。因此,人们对闪电网络这种覆盖比特币的网络已经期待已久,并且使用它进行交易费用低、速度快,许多开发商也认为他的安全性足以在比特币的主网上使用:这是该技术上的重要突破。

最初的概念

闪电网络最早的起源可以追溯到比特币本身。

闪电之谜的第一部分是一个叫做“支付通道”的概念。“支付渠道本质上是两个比特币用户之间的比特币余额平衡,只有两个用户:其他人不需要知道也不需要关系他们之间的相互平衡。”重要的是,这些余额不用在线交易也能更新;当一个用户的余额增加时,另一个用户的余额就会相应减少。也就是说,允许比特币的拥有者私下交易,这样一来不会因为他们的交易使整个网络产生负担。

一旦用户完成交易,他们可以通过仅向网络发送一笔交易来结算他们的付款渠道:该交易根据他们的渠道余额支付他们应该收到的每项交易。为了这些用户的利益,这也应该意味着渠道更新(“离线交易”)更便宜,因为它们不需要采矿费用,而且速度更快,因为它们不需要区块链确认。这个总体思路可以说和2009年中本聪最早发布的比特币一样古老。比特币0.1中的一份原始的码草案允许用户在确认交易之前更新交易:

包含在比特币中的支付渠道代码草稿0.1。

虽然这个代码是一个粗略的草案,但中本聪(Satoshi Nakamoto)更详细地介绍了支付渠道如何与当时的bitcoinj开发人员Mike Hearn进行私密交流。

几年后,2013年,Hearn在比特币发展邮件列表中发布了中本聪对支付渠道的解释:

迈克赫恩描述了中本聪对付款渠道如何运作的解释。

最初的付款渠道

尽管比特币的本身一直就有支付渠道的概念,但中本聪的设计并不完全安全。最重要的是,支付渠道中的用户可能会与矿工勾结,借机获取更多的比特币。

2011年夏天有人首次提出了解决这个问题的办法时,,中本聪已经离开了比特币这个项目。 Bitcointalk论坛用户“hashcoin”提出了一个双层支付渠道,该渠道要求用户交换几个部分签名的多重签名进行交易,并且提出时间间隔相互依赖才是有效的。如果交易双方一方有人没有支付,另一方在一段时间后可以要求去支付渠道中的所有资金。然而,这种设计的缺点是hashcoin的渠道只能朝着一个方向发展。比如:我可以支付任意次数给你,但你无法通过同一频道支付给我。

2013年初有人重新提出了和hashcoin的想法差不多的想法,这一次它逃脱了理论领域。当年4月,Jeremy Spilman在比特币开发邮件列表中描述了一种支付渠道概念。他甚至编写了一个概念证明。反过来,这个设计是由Mike Hearn调整的,之后比特币核心贡献者Blockstream联合创始人和Chaincode Labs开发人员Matt Corallo在2013年中之前将该概念转化为bitcoinj的工作代码。

2014年,Alex Akselrod(现在是Lightning Labs的一名工程师)率先提出了双向付费渠道。我可以支付任意次数给你,而使用递减的时间段,你也可以在同一频道内支付给我,只不过有限制次数。然而,与单向支付渠道不同的是,该解决方案从未在代码中实际实施过。

第一个网络支付概念

大约在第一个支付渠道被提出的同时,包括比特币核心开发者Peter Todd和Gavin Andresen -在内的其他人也已经在考虑非连锁的支付网络。 如果我可以通过非连锁交易向你支付费用,并且你可以通过非连锁交易支付给他,那么我应该也能够通过你支付给他,而不需进其他的链式交易。

CornéPlooy(目前是荷兰比特币交易所BL3P的闪电开发人员)也一直致力于比特币的支付层,他在2011年首次提出这是一个粗略的想法。

Plooy的支付层设计的早期例证,将演变成闪电网络前身Amiko Pay。

随着比特币核心开发人员和未来Blockstream的 CTO Gregory Maxwell以及Ripple发明人Ryan Fugger(等等)的加入,这一想法逐渐演化为比特币与原始Ripple技术的合并,所以Plooy系统便改称为“Amiko Pay ”Amiko Pay早期的草稿并未使用支付渠道,因此重新对对系统添加了信任机制,但是:如果一个用户拒绝与另一个用户达进行交易,后者也无权追偿。

在2012年夏季,数学家、后来的emBassy TLV联合创始人梅尼罗森菲尔德提出利用支付渠道的早期支付网络的提案。在Bitcointalk论坛上,罗森菲尔德描述了一个系统,提出第三方系统作为支付处理器,大家都是客户。支付处理器又可以与其他支付处理器以及更多客户建立渠道,将支付渠道网络转变为中心辐射式系统。

这样的系统确实在支付方面增加了一些可信任性,人们可以拒绝付款并且保留余额,大家一致认为这种付款系统的风险很小,但是只有客户在支付前启动这个程序才会生效。此外,较大的付款可以分割成较小的量来依次进行,这样如果一个付款处理器用不了,也只有一小部分余额会丢失。

这种解决方案多年来一再出现。例如,Bitcoin Core的贡献者Peter Todd在2014年将该概念发布到比特币开发邮件列表。支付处理器BitPay同时在2015年初发布了类似渠道间支付(“Impulse”)的白皮书。像这样实际上将由瑞典初创公司Strawpay在几乎同一时间称为Stroem(或Ström),但这些迭代都没有以有意义的方式起飞。

现已解散的Strawpay微支付的LOGO。

亚历克斯·阿克塞罗德(Alex Akselrod)在建立可靠的支付渠道网络方面做出的尝试较早。他在2013年的维基草稿中首次描述,将在整个2014年作为一个概念验证实施,Akselrod的解决方案在理论层面上大大解决了这个问题。主要问题在于它在实践中仍然相当笨拙。例如,如果付款在交易路线的任何地方失败,则用户将无法追索,而是等待资金通过付款渠道时间锁定释放,这可能需要数月。

与此同时,到2015年,Plooy的Amiko Pay已经发展到可以无可信任的地步。然而,他的设计需要对比特币协议做出相对深远的改变,以至于需要回滚某些类型的交易。虽然在技术上可行,但是否会采用比特币协议的这种改变并不明显。

同年晚些时候,来自苏黎世技术大学(苏黎世联邦理工学院),Christian Decker博士(现在位于Blockstream)和Roger Wattenhofer的研究人员在他们的白皮书“用比特币双面打印的快速和可扩展支付网络”中提出了另一种覆盖网络设计微支付渠道“。他们的解决方案强烈依靠时间锁定作为支付渠道有效性的一种”倒数计时器“,与过期渠道余额的称为”无效树“的加密技巧结合使用。

Akselrod的解决方案,Amiko Pay的后期草案以及Duplex Micropayment Channels(DMC)在某些方面与Lightning Network类似,并且可以通过做出不同的权衡来自行实施。如果闪电网络没有被发明出来,那么这些解决方案中的任何一个都可能成为比特币去比例层的基础。

但是,当然,闪电网络是被发明出来。

闪电网络

经过多年的支付渠道和网络设计的发展,所有这些难题终于在2015年初落下帷幕。

Thaddeus“Tadge”Dryja - 智能合约交易平台Mirror的首席技术官 - Joseph Poon撰写了一篇题为“比特币闪电网络:可扩展的外链即时付款”的白皮书,该文件于当年2月首次发布。

它被证明是一个改变游戏规则的游戏。

正如本文提到的那样,闪电网络白皮书提出了几种解决方案来完全无信任地实现支付渠道网络:没有参与者可以作弊而不冒险投入他们渠道中的所有资金,而中间商转发交易将无法甚至偷一点它。此外,该解决方案对比特币协议只需要相对较少的更改,并且承诺比迄今提出的替代方案更灵活和更方便用户。

白皮书中描述的关键创新是“Poon-Dryja渠道”。像早期的付款渠道设计一样,Poon-Dryja渠道依赖部分签署和非广播交易的交换。但与以前的支付渠道相比,这些新渠道采取了额外的步骤,涉及密匙的交换,这允许支付渠道在“方向”上更新。我可以向你支付任意次数,并且你也可以向我付费同样任意次数。

此外,闪电网络利用哈希时间片合同(HTLC)。这一概念通常归于Tier Nolan,最初设计用于跨区块链交易;例如,可靠地交换比特币和莱特币。在闪电网络中,该解决方案被用于跨支付渠道进行支付。

Poon和Dryja于2015年2月在旧金山比特币开发者研讨会上公布了他们的想法:

在此后的几个月里,也就是2015年的春季和夏季,比特币的缩放问题和块尺寸限制争议变成了公众的争执。在这场危机的氛围中,当年年底举办了一系列会议:9月的蒙特利尔比特币会议和12月的香港比特币会议。 在蒙特利尔,Poon和Dryja再次提出了他们的建议,然后Poon和Dryja在香港进行了第二次更深入的介绍。

在本次第二届香港会议之后,Gregory Maxwell在比特币发展邮件列表中提出了一个扩展路线图。 这个路线图突出地包括了闪电网络。 它得到了大多数比特币技术社区的支持,并成为比特币核心项目事实上的路线图。

如果对闪电网络的预期还不够大,那肯定是现在。

概念实现

闪电网络白皮书不仅长而且十分复杂,涵盖高度技术性的概念;在2015年,很少有人有时间和技能来阅读和理解它。但是当长期的Linux内核开发人员Rusty Russell了解白皮书时,基本上就增大了理解程度。在2015年初发布的一系列博客文章中,罗素“提出了一个更普遍(但技术含量还是非常高)的观点。

然后,2015年5月,Russell被区块链开发公司Blockstream聘用,开发C语言编程语言Lightning的实际实现:c-lightning。实施这一重大举措证明是关键。一个仅在几个月前才提出的概念现在正在由世界级开发人员实现。 Russell后来在Blockstream的Christian Decker加入,而包括CornéPlooy在内的其他开发人员将在未来几年为开源项目贡献力量。

在Russell开始研究c-lightning之后不久,Blockstream不再是实现Lightning实施的唯一公司。到2015年夏季,原本计划开发基于智能卡的硬件钱包的小型比特币技术公司ACINQ决定尝试使用前景看好的技术。这家位于巴黎的创业公司后来宣布,它已经开发了自己的Scala编程语言的Lightning协议实现,命名为eclair。

ACINQ发布的eclair公告。

在接下来的几个月里,第三个实施正在进行中。截至2016年1月,闪电网络的白皮书作者Poon和Dryja与Elizabeth Stark和Olaoluwa“Laolu”Osuntokun一起成立了一家全新的公司来开发Lightning:Lightning Labs。 Lightning Labs将带头开发Linux,这是Google Go编程语言(也称为“golang”)的Lightning实现,他们在成立公司之前就已经开始开发了。

在公司成立大约一年后,Dryja在2016年末离开Lightning Labs,转而加入麻省理工学院媒体实验室的数字货币计划,该计划是雇用比特币核心首席开发人员Wladimir van der Laan和其他几个比特币核心贡献者的组织。在麻省理工学院,Dryja继续研究他在Lightning Labs启动的闪电实施,他重新点燃了闪电;Ind和Lit都存在。 Lit通过成为一个钱包和一个节点来区别于lnd和其他实现;今天,它还通过配置选项同时支持多个硬币。

此外,区块链公司Bitfury以其采矿池和采矿硬件而闻名,并将该实施分为另一版本的软件。这个分支的独特之处在于它在设计中进行了权衡,以免在比特币网络上进行延期修复 - 稍后再做更多介绍。 Bitfury在交易路由领域也做出了贡献,最显着的是以一种名为“Flare”的协议的形式。(然而,现在Bitfury fork的发展似乎暂时停滞了)。

此外,2016年,主要钱包供应商Blockchain宣布开发了闪电网络的简化版本,名为雷霆。与典型的Lightning版本相比,这个版本做了相对较大的改变,最显着的一点是它需要信任网络交易对手。通过做出这种改变,它早在2016年春季就能够推出alpha版本的实施版本,早在任何其他开发团队之前。 (虽然雷霆也可能在未来与闪电网络兼容,但目前这一项计划还没有取得说明进展。)

在2016年末举办的第三届大比特币米兰大比拼之后的几天中,大多数参加闪电版本测试的参与者聚集在一起,被称为第一次闪电峰会。在这里,他们讨论了如何使所有不同的实现互操作,从而导致闪电网络协议规范被称为“BOLT”(闪电技术基础的首字母缩略词)。在闪电网络白皮书是一个理论建议的地方,BOLT成为了我们今天所了解的实际闪电网络的基础。

协议变更

当闪电网络白皮书首次发布时,所描述的想法实际上与比特币协议不兼容 - 至少不安全。为了按照描述启用闪电网络,比特币需要多次协议更改。

其中第一个是可以使付款渠道抵御比特币可塑性错误的新时间段。然而,即使在闪电网络白皮书出版之前,这个问题已经得到解决,并且在2015年得到了最终解决,当时在比特币协议中实现了Peter Todd设计和提出的一种新型时间段:CheckLockTimeVerify (CLTV)。

后来,比特币核心开发人员意识到,闪电网络在相对时间段内会更好地发挥作用。这些允许用户在确认另一笔交易后将比特币锁定在特定时间点。在Lightning环境中,用户可以无限期地开通付款渠道,而CLTV时间限制则需要他们定期关闭渠道。到2016年夏季,在比特币网络上启动了称为CheckSequenceVerify(CSV)的软叉升级以实现相对时间段。

但闪电网络所要求的最大协议变更(至少假设体面的用户体验)是对任何比特币交易的延展性修复。

在闪电网络白皮书出版时,可塑性被认为是一个巨大的挑战。虽然当时正在进行修正软叉的草案,但开发人员并不确定这是否可行,并认为它可能需要一个硬分叉。然后,到2015年底,比特币核心贡献者意识到,作为Blockstream元素项目一部分的可塑性修复程序的隔离见证(SegWit)可以作为向后兼容的软分叉部署在比特币上。

经过漫长的斗争之后,隔离见证软叉终于在2017年夏天激活,为比特币闪电网络铺平了道路。

Alpha阶段

尽管隔离见证者尚未被部署在比特币协议上(但它并不完全肯定它会这样做),闪电网络的开发工作正在顺利进行。

这是在testnet上开始的,比特币是专门为测试目的而设计的。或者更准确地说,在这种情况下,闪电网络启动了一个专用版本的测试网,名为“SegNet 4”(这是第四个SegWit专用测试网),于2016年5月发布。

部署SegNet 4后不到六个月,2016年10月,Blockstream开发团队已将其C型闪电原型推向可用范围。在被称为“Lightning First Strike”中,Decker在Lightning Network的早期版本中使用testnet比特币从Russell“购买”了一张猫照片。

这只猫的照片是克里斯蒂安·德克尔从Rusty Russell那里买的。

到2017年1月,第一个Lightning落地——lnd ,以alpha版本发布。因此,闪电网络本身已经“正式”进入了“alpha阶段”:来自全球的开发者首次受邀尝试该技术,而Lightning Labs将继续帮助测试和改进代码。

这个alpha阶段反过来导致越来越多的开发人员在lnd和其他Lightning实现之上构建应用程序。这些“Lapps”,比如桌面和移动钱包,小额支付博客平台,赌博网站,探索者等等,尽管在大多数情况下仍然是为比特币测试网设计的。

在2017年夏天,隔离见证终于激活了,闪电比特币网络的基础工作已经完成。从那时起,Blockstream花了大约三个月的时间宣布它在比特币主网上的第一笔交易。过了一会儿,在11月,Lightning Labs首次跨区块链进行Lightning交易:从比特币到莱特币。而在去年12月,来自Blockstream,Lightning Labs和ACINQ的开发团队宣布他们已经进行了成功的互操作性测试。

而且,到今年年底,其他人开始真正在比特币的主网上使用闪电网络 - 在某些情况下,甚至与开发者的建议相抵触。越来越多的闪电频道已经开放,到了12月,开发商Alex Bosworth通过他与付费处理器Bitrefill建立的Lightning频道支付了他的电话账单:这是在闪电网络上首次实现的第一笔真钱购买交易。

一个月后,尽管c-lightning落地仍处于测试阶段,Blockstream 宣布他们开了一家网上商店,可以用实际的比特币购买真品。该超市对比特币交易所涉风险有明确警告。2018年2月,比特币的传奇人物拉扎洛·汉耶兹(Lazlo Hanyecz)宣布,他会通过闪电网络购买披萨。

拉扎洛·汉耶兹(Lazlo Hanyecz)和他喜欢的披萨。

经过多年的发展,甚至更多年的概念化,可喜的是,就在几个星期前终于取得了里程碑式的进展。

2018年3月中旬,Lightning Labs的lnd以测试版落地。该公司同时以250万美元的种子投资轮回宣布,其中包括Twitter首席执行官杰克多尔西等大型投资者,Lightning实验室认为Lightning落地已经率先准备在比特币的主网上使用 ,主要面向技术用户。

随后在3月28日发布了ACINQ的推文,宣布eclair也已发布测试版,因此也被视为可以使用主网。该创业公司补充说,他们的Android闪电钱包将在下周发布。 (在本文发表时,即本周。)

Blockstream的c-lightning实现尚未发布测试版,尽管其开发团队向比特币杂志表示,这也可能很快出现。然而,区块链开发公司在增加名单的同时,在3月的最后一周推出了7款全新的Lapps,突出了该公司在闪电战方面的进展。

尽管人们已经在使用Lightning软件,但测试版阶段只会进一步刺激这一增长。在本文发表时,超过1000个Lightning节点已经开放了近5,000个支付渠道,总共持有10比特币(撰写本文时约为70,000美元)。每天都会有数百个新节点上线,甚至还有一个特定于莱特币的闪电网络正在形成,未来可能会与比特币进行互操作。

闪电网络发布时的图表

然而,即使有了这些进展,闪电网络仍处于早期阶段。闪电网络的大多数用户仍然是技术人员(通常是开发人员),而用例大多是实验性的。尽管测试版软件是主要的里程碑,但网络的开发和改进仍是一个持续的过程,还有很多工作要做,而有关路由、隐私和其他风险的问题依然存在。很有可能只有进一步的采用用户反馈才能做出改进。

作者提醒:在写本文之前,我意识到闪电网络的全部(前)历史比我已经知道的更广泛。如果单独来写闪电网络,那么这对那些曾经在这项技术上提供过帮助的技术人员是不公平的。本文试图概述这么个故事,但是本文只能作为一个粗略的总结,内容或许不是那么详尽,还是要感谢所有提供信息和意见的人,以至于作者能够将闪电网络的历史做一个大概的描述。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分