一念Jeff Li文章 · zhipeng.liEnglish

闪电网络简史:从头脑风暴到主网Beta 测试(下)

2018-04-09 · 网安志异 · 正文:中文 ·

2015年初,Poon与Dryja的白皮书用双向通道和哈希时间锁拼出无需信任的支付网络。此后c-lightning、eclair、lnd相继开工,CLTV、CSV与隔离见证为它铺路。从测试网上的一张猫照片,到主网上的一笔话费和一块闪电比萨,直到2018年春Beta版上线、千余节点涌现。

作者:Aaron van Wirdum

编译:Jeffery 无十三

原文地址: https://bitcoinmagazine.com/articles/history-lightning-brainstorm-beta/

目录

0/9 译注

1/9 最初的想法

2/9 第一个支付通道

3/9 第一个支付网络概念

4/9 闪电网络

5/9 闪电网络的各种实现

6/9 比特币协议更改

7/9 Alpha版

8/9 Beta版

9/9 作者手记

4/9 闪电网络

经过多年的支付通道和网络的设计演变,最终在2015年初,所有的拼图碎片全部出现了。

Thaddeus “Tadge” Dryja——智能合同交易平台Mirror的CTO——Joseph Poon写了一篇题为“比特币闪电网络:可扩展的链下即时支付”的白皮书,该论文于当年(2015)2月首次出版。

事实证明,这是一个游戏规则的改变者。

闪电网络白皮书提出了几种方案来实现一个完全无需信任的支付通道网络:任何交易参与方都无法进行欺骗,除非冒着失去他放在支付通道中所有资金的风险;同时,传递交易数据的中间方无法窃取任何一点交易资金。此外,该方案需要对比特币协议进行的修改相对较少,并承诺比此前提出的其他方案更加灵活和友好。

闪电网络白皮书提出的关键创新是“Poon-Dryja通道”。与早期的支付通道设计类似,Poon-Dryja通道依赖于交换部分签署的和非广播的交易。但与以往的支付通道相比,这些新通道设计了包括交换秘密数字在内的额外环节,这使得支付通道可以双方向更新。Alice可以支付Bob任意次,同时在同一个通道内,Bob可以支付Alice任意次。

此外,闪电网络利用了哈希时间锁合约(HTLCs)。这个概念通常被认为是Tier Nolan提出的,最初是为跨链交易设计的,比如无需信任地交换比特币和莱特币。在闪电网络中,这个方案被用来跨支付通道连接支付。

2015年2月,Poon和Dryja在旧金山的比特币研讨会上首次公开介绍了他们的想法:https://youtu.be/8zVzw912wPo

在此后的几个月里,在2015年的春季和夏季,比特币的扩容问题和区块大小限制争议变成了一场公开的争吵。 在这种酝酿着危机的氛围中,2015年底举办了两次关于比特币扩容的会议:9月的Scaling Bitcoin Montreal,12月Scaling Bitcoin Hong Kong。 在蒙特利尔,Poon和Dryja再次介绍了他们的提议,随后在香港,他们进行了更深入的介绍。

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

如果之前人们对闪电网络成为现实的预期还不太高的话,那么现在,人们已经相当确定。

5/9 闪电网络的各种实现

闪电网络白皮书是一个篇幅很长而且复杂的文档,涵盖了很多高度技术性的概念;在2015年,很少有人有时间和技能来通读和理解它。但是当Linux内核开发人员Rusty Russell获知这个白皮书之后,理解白皮书的人数显著增加了——在2015年初发布的一系列博客文章中,Russell将这个白皮书“翻译”给了普通的读者(但技术性仍然很强)。

之后到了2015年5月,Russell被区块链开发公司Blockstream聘用,开发C语言的闪电网络软件:c-lightning。这是迈向实现闪电网络的重要步骤,事后证明很关键。一个仅在几个月前才提出的概念现在正在由世界级开发人员实现。后来Christian Decker加入Blockstream与Ressell一起开发。同时,包括Corné Plooy在内的其他开发人员也将在未来几年为这个开源项目贡献力量。

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

来自ACINQ的eclair公告。来源:medium.com

两个月后,出现了第三个实现。2016年1月,闪电网络白皮书作者Poon和Dryja,与Elizabeth Stark和Olaoluwa “Laolu” Osuntokun一起成立了一家全新的公司来开发闪电网络:Lightning Labs。 Lightning Labs将带头开发lnd,用Google的Go编程语言(也称为“golang”)来实现闪电网络,这一开发工作在创建该公司之前就已经开始。

在公司成立大约一年后,2016年末,Dryja离开Lightning Labs,转而加入麻省理工学院媒体实验室的数字货币机构,该机构还雇用了比特币核心首席开发人员Wladimir van der Laan和其他几个比特币核心贡献者。Dryja在麻省理工学院继续研究他在Lightning Labs启动的闪电网络实现,他将其重命名为lit;lnd和lit项目目前都存在。 Lit与lnd和其他实现不同,将钱包和节点功能打包在一起;如今它还通过配置选项同时支持多个硬币。

此外,区块链公司Bitfury(以其矿池和挖矿硬件而闻名)在lnd基础上开发了另一版本的闪电网络实现。这个分支的独特之处在于它在设计中进行了权衡,不依赖比特币网络的延展性问题的修复——比特币的延展性问题是一个稍微复杂的问题,以后再介绍。Bitfury还提出了一种名为“Flare”的协议,以改进交易数据的路由问题。(不过,现在Bitfury这一方面的开发似乎暂时停滞了)。

此外,2016年,主要钱包供应商Blockchain宣布开发闪电网络的简化版本,名为雷电。与典型的闪电网络实现相比,这个实现做了相对较大的折衷,最明显的是,它需要信任网络交易的对方。通过做出这种折衷,Blockchain公司在2016年春就能够推出alpha版本的软件,早于任何其他开发团队。 (虽然雷电也可能在未来与闪电网络兼容,但目前这一实现的开发似乎也停滞了。)

2016年末在米兰举办的第三届“比特币扩容”会议之后的几天中,大多数闪电网络开发者聚集在一起,这被称为第一次闪电网络峰会。在这里,他们讨论了如何使所有不同的闪电网络软件实现互操作,这一讨论诞生了闪电网络协议规范,简称为“BOLT”(Basis of Lightning Technology的首字母缩略词)。 闪电网络白皮书是理论上的建议,BOLT成为我们今天所了解的实际闪电网络的基础。

6/9 比特币协议更改

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

其中第一个是新的时间锁,这将使支付通道能够避开比特币的延展性问题。不过,在闪电网络白皮书出版之前,这个问题已经在解决之中,并在2015年得到了最终解决——Peter Todd为比特币设计和实现了一种新型时间锁:CheckLockTimeVerify (CLTV)。

稍后一段时间,比特币核心开发人员逐渐意识到,如果用相对时间锁,闪电网络可以发挥更好的功能。这允许用户将比特币锁定到确认另一笔交易后的特定时间点。在闪电网络中,用户开通的支付通道可以是永久的,无期限限制,而CLTV时间限制则需要他们定期关闭渠道。2016年夏,比特币网络上激活了称为CheckSequenceVerify(CSV)的软分叉,以实现相对时间锁。

但闪电网络所要求的最大协议变更,是对比特币交易延展性问题的修复。

在闪电网络白皮书出版时,交易延展性被认为是一个巨大的挑战。虽然当时一个修正此问题的软分叉正在开发,但开发人员并不确定是否可行,并认为可能需要一个硬分叉。2015年底,比特币核心开发者意识到,一个叫做隔离见证(Segregated Witness/SegWit)的延展性问题修复方案,可以作为向后兼容的软分叉部署在比特币上。这一修复方案是Blockstream公司基础项目一部分。

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

(欲了解更多有关隔离见证的历史,请参阅“通向SegWit的漫长之路:比特币最大协议升级如何成为现实”。https://bitcoinmagazine.com/articles/long-road-segwit-how-bitcoins-biggest-protocol-upgrade-became-reality/ )

7/9 Alpha版

尽管隔离见证者尚未被部署在比特币主网上(而且,并不能完全确定能被部署),闪电网络的开发工作一直顺利进行。

闪电网络首先开始在testnet上测试。testnet比特币是专为测试而设计。对于闪电网络,更准确地说,是开始于2016年5月推出的专用版testnet,名为“SegNet 4”(它是第四个SegWit专用测试网)。

部署SegNet 4后不到六个月,2016年10月,Blockstream开发团队已将其c-lightning原型推进到可用阶段,这被称为“闪电网络第一棒“,开发人员Decker在这一闪电网络的早期版本中使用testnet比特币向Russell“购买”了一张猫照片。

Christian Decker从Rusty Russell那儿“买”的猫的照片。来源:Blockstream.com

2017年1月,第一个闪电网络的软件实现 - lnd - 发布了alpha版。由此,闪电网络本身已经“正式”进入了“alpha阶段”:来自全球的开发者首次受邀尝试该技术,同时Lightning Labs继续测试和改进代码。

在alpha阶段,越来越多的开发人员在lnd和其他闪电网络实现之上构建应用程序。这些应用程序被称为“Lapps”,比如桌面版和移动版的钱包,小额支付博客平台,赌博网站,浏览器等等,尽管在大多数情况下仍然是为比特币测试网设计的。

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

到2017年底,更多人开始真正在比特币的主网上使用闪电网络 - 在某些场景下,有人甚至采用了与开发人员的建议相抵触的方式使用。越来越多的闪电网络支付通道开通了。2017年12月,开发者Alex Bosworth通过他与支付处理公司Bitrefill建立的闪电网络支付通道支付了他的电话账单:这是闪电网络上首次实现的第一笔真钱购买。

一个月后,Blockstream公司基于他们的c-lighting技术开了一家网上商店 - 尽管c-lightning的开发仍处于测试阶段,在这家网上商店上,人们可以使用真正的比特币购买真正的产品(尽管有明确的风险警告)。 2018年2月,以“10000比特币披萨”的著称的比特币的传奇人物Lazlo Hanyecz宣布,他通过闪电网络购买了比萨饼(当然!),闪电网络以这样一个诗意的方式完成了alpha阶段。

Lazlo Hanyecz 和家人在享用他的“闪电网络比萨”. 来源: http://eclipse.heliacal.net/~solar/bitcoin/lightning-pizza/

8/9 Beta版

经历数年时间的开发,甚至更多年的概念化,几周前,闪电网络达到了发展历程中最大的里程碑。

2018年3月中旬,Lightning Labs的lnd第一个发布了Beta测试版闪电网络软件。该公司同时宣布获得了250万美元的种子轮投资,其中包括Twitter首席执行官Jack Dorsey等有名气的投资者,Lightning Labs认为他们的闪电网络软件已经率先准备好在比特币的主网上使用 - 尽管主要面向技术用户。

紧随其后的是ACINQ,3月28日,他们在twitter上宣布eclair也已发布Beta测试版,所以他们也被认为已经准备好可以上比特币主网。该创业公司还宣布,他们的Android闪电网络钱包将在下周发布。 (在本文发表时,即本周。)(译注:Eclair的Android闪电网络钱包发布后不久ACINQ即将其下线,他们说是因为不小心弄丢了开发者密钥,导致不能更新这个已发布的版本。他们会很快另外发布一个Android钱包。)

Blockstream的c-lightning尚未发布测试版,其开发团队表示会在很短时间内发布。另外,这家区块链开发公司在上个月(2018年3月)的最后一周推出了7款全新的Lapps,突显了该公司在闪电网络开发前沿的进展。

虽然在Alpha阶段开始已经有人使用闪电网络软件,但进入beta阶段还是进一步刺激了使用者的增长。在本文发表时(2018年4月4日),超过1000个闪电网络节点已经开放了近5,000个支付渠道,总共持有10比特币(撰写本文时约为70,000美元)。每天有数百个新节点上线,甚至还有一个莱特币特定的闪电网络正在形成,未来可能会与比特币进行互操作。

在本文发布时的闪电网络图。来源:lnmainnet.gaben.win

虽然进展迅速,闪电网络仍处于早期阶段。如今,网络中的大多数用户仍然是技术人员(通常是开发人员),用例大多是实验性的。测试版软件是重要的里程碑,闪电网络开发和改进还进行之中,还需要做很多工作,包括关于路由、隐私和其他风险的在内问题仍然存在,有待解决。这些问题很有可能在闪电网络更多地被采用后才能解决。

9/9 作者手记

在为这篇文章做研究时,我意识到闪电网络的完整历史(及史前史)比我已经知道的涉及范围更加广泛。将其概括为一篇文章,需要抄近路,省略细节,这对于为实现这项技术提供了帮助的人们以及他们项目和概念并不公平。但本文仅尝试概述目前的情况,最好将其理解为粗略的摘要——不是详尽的历史或技术描述。感谢所有提供信息和其他信息的人。

(完)

原载于微信公众号「网安志异」,2018-04-09 · 原文

留言

    无需登录,发表即显示。