在几周前,第一个Lightning实施- nd -正式处于测试版。第二个实现- 小饼 —已关注 上个星期, 而第三个- c-闪电 -预计将尽快这样做。因此,闪电网络是人们期待已久的廉价和即时交易的比特币覆盖网络,它的许多开发人员认为闪电网络足够安全,可以在比特币的主网上使用:这是该技术多年发展的一个重要里程碑。.

这是到目前为止的故事.

第一次沉思

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

闪电难题的第一部分是一个称为“支付渠道”的概念。支付渠道实质上是两个比特币用户之间只有两个用户之间的比特币余额:世界其他地方不需要了解或关心他们的相互余额。重要的是,无需任何链上比特币交易即可更新这些余额;当一个用户的余额增加时,另一个用户的余额减少相同的数量。实际上,这使两个参与者之间都能进行交易,而不会给他们的交易数据增加整个网络的负担.

一旦用户完成交易,他们就可以通过仅向网络传输一笔交易来结算其支付渠道:该交易根据其渠道余额向他们应收到的每笔款项进行支付。为了这些用户的利益,这还意味着渠道更新(“链下交易”)更便宜,因为它们不需要采矿费,而更新得更快,因为它们不需要区块链确认.

可以说,这个总体思路与中本聪(Satoshi Nakamoto)在2009年发布的第一个比特币软件一样古老。比特币0.1包括一个 原始代码草稿 这将使用户可以在确认交易之前更新交易:

比特币0.1中包含的支付渠道代码的草稿。资料来源:GitHub

虽然此代码只是草稿,但中本聪(Satoshi Nakamoto)进一步详细介绍了付款渠道如何与当时的私人通信一起工作。-比特币 开发人员Mike Hearn.

几年后的2013年,赫恩 已发表 中本聪(Satoshi Nakamoto)在 比特币开发邮件列表

中本聪(Satoshi Nakamoto)对付款渠道如何运作的解释,由迈克·赫恩(Mike Hearn)描述。来源:比特币开发邮件列表

第一付款渠道

尽管支付渠道的一般概念早在比特币本身就已经存在,但中本聪的设计并不完全安全。最重要的是,付款渠道中的用户可能与矿工串通以确认较旧的交易,声称比特币的数量超过渠道余额应允许他的数量.

中本聪(Satoshi Nakamoto)离开比特币项目后,于2011年夏季首次提出了解决此问题的方案. Bitcointalk论坛 用户“ hashcoin” 概述 一种两级支付渠道,要求用户交换多个部分签名的多签名交易以及具有相互依赖的时间锁的交易。如果一位参与者失踪了,则另一位参与者可能会在一段时间后要求支付通道中的所有资金。但是,这种设计的缺点是,哈希币的渠道只能在一个方向上发挥作用。 “爱丽丝”可以任意次数向“鲍勃”付款,但鲍勃无法通过同一渠道向爱丽丝付款.

与哈希币类似的想法在2013年初浮出水面,这次逃脱了理论领域。那年四月,一种支付渠道的概念是 描述 Jeremy Spilman在比特币开发邮件列表上。他甚至已经编码了 概念证明. 反过来,此设计由Mike Hearn进行了调整,之后是未来的Bitcoin Core贡献者, 区块流 联合创始人 链码实验室 开发人员Matt Corallo将这个概念变成了 比特币 经过 2013年中.

一年后的2014年,Alex Akselrod(现为闪电实验室的工程师)率先 提出 双向支付渠道。爱丽丝可以向鲍勃支付任意次数的费用,而使用减少的时间锁,鲍勃可以在同一频道内向爱丽丝支付费用-尽管次数有限。但是,与单向支付渠道相反,该解决方案从未真正在代码中实现.

首次支付网络概念

大约在提出第一个付款渠道的同时,其他渠道-包括例如比特币核心开发人员 彼得·托德加文·安德森(Gavin Andresen) -正在考虑链下支付网络。如果Alice可以通过链外交易向Bob支付,而Bob可以通过链外交易向Carol支付,那么Alice应该能够通过Bob支付Carol,而无需任何链上交易.

CornéPlooy(现在是荷兰比特币交易所的闪电开发人员 BL3P)还一直在为比特币开发支付层,他首先提出了一个粗略的想法, 2011年.

Plooy支付层设计的早期插图,它将演变为Lightning Network的前身Amiko Pay。资料来源:CornéPlooy

加上比特币核心开发人员和未来的Blockstream CTO的建议 格雷戈里·麦克斯韦(Gregory Maxwell), 和涟漪发明者 瑞安·福格(Ryan Fugger) (除其他外),这个想法演变了 自始至终 合并了比特币和原始的Ripple技术,导致 系统 Plooy叫“ Amiko Pay”。 Amiko Pay的早期草稿没有使用支付渠道,因此对系统注入了信任,但是:如果一个用户拒绝与另一个用户结清余额,则后者将无权追索。.

早期付款网络 提议 利用支付渠道的是 建议的 由数学家和未来 比特币emBassy TLV 联合创始人梅尼·罗森菲尔德(Meni Rosenfeld)于2012年夏季。在比特币论坛上,罗森菲尔德描述了一个系统,其中鲍勃(上例)被支付处理器取代,而爱丽丝和卡罗尔都是其客户。反过来,支付处理器也可以与其他支付处理器建立通道,并拥有更多的客户,从而将支付渠道网络转变为中心辐射型系统。.

虽然这样的系统确实对付款处理者产生了一点信任-他们可以拒绝转账并保留款项-但这种风险被认为是很小的:这种技巧只适用于一次付款,而后客户才会注意到并停止使用渠道。此外,可以将较大的付款切成较小的增量,这样,如果一个付款处理器被证明不可靠,则只会损失一小部分付款.

这些年来,该解决方案重新出现了两次。例如,比特币核心贡献者彼得·托德(Peter Todd), 已发表 这个概念在2014年的比特币开发邮件列表中。支付处理器 支付宝, 同时,发表了 白皮书 在2015年初进行类似的渠道间付款(“冲动”)。 解决方案 像这样,这实际上将由瑞典初创公司实施 秸秆支付, 叫 斯特罗姆 (或Ström),大约在同一时间-但是这些迭代都没有以有意义的方式进行.

现已停产的Strawpay小额支付初创公司的徽标。资料来源:互联网档案馆

Alex Akselrod相对较早地尝试建立无信任的支付渠道网络。首先描述 维基草稿 在2013年, 概念证明 在整个2014年,阿克塞尔罗德(Akselrod)的解决方案在理论上解决该问题上大有帮助。主要的问题是在实践中它仍然很笨拙。例如,如果付款在交易过程中的任何地方都失败了,那么用户将无奈追索,只能等到通过付款渠道时间释放资金后,这可能要花费数月的时间。.

同时,到2015年,Plooy的Amiko Pay 进化的 到可能也无法信任地工作的地步。但是,他的设计需要对比特币协议进行相对深远的更改,以至于必须回滚某些类型的交易。尽管在技术上可行,但是否会采用对比特币协议的此类更改尚不明确.

同年下半年,苏黎世科技大学的研究人员(苏黎世联邦理工学院), Christian Decker博士(现任Blockstream)和Roger Wattenhofer在他们的白皮书中提出了另一种覆盖网络设计,“具有比特币双工小额支付渠道的快速可扩展支付网络.他们的解决方案强烈依赖时间锁定,将其作为一种用于支付渠道有效性的“倒计时代码”,并与一种称为“无效树”的加密技巧结合在一起,以确保过期的渠道余额.

阿克塞尔罗德(Akselrod)的解决方案,后来的Amiko Pay草案和双工微支付渠道(DMC)在某些方面都类似于闪电网络,并且可以通过做出不同的权衡而自身发挥作用。如果尚未发明闪电网络,那么这些解决方案中的任何一个都可能成为比特币的可扩展层(的基础).

但是,当然,闪电网络 曾是 发明的.

闪电网络

经过多年的支付渠道和网络设计演变,难题的所有部分终于在2015年初融为一体.

Thaddeus“ Tadge” Dryja —智能合约交易平台的首席技术官 镜子 -约瑟夫·潘(Joseph Poon)撰写了名为“比特币闪电网络:可扩展的链外即时付款,”于当年2月首次发布.

它被证明是改变游戏规则的人.

即将提及该出版物的《闪电网络》白皮书提出了几种解决方案,以完全不信任地实现支付渠道网络:没有参与者可以欺骗而不冒他们在渠道中投入的所有资金的风险,而中间商转发交易将无法进行窃取其中的一小部分。此外,该解决方案所需的比特币协议更改相对较少,并承诺比迄今为止建议的替代方案更加灵活和用户友好.

白皮书中描述的关键创新是“ Poon-Dryja渠道”。像早期的付款渠道设计一样,Poon-Dryja渠道依赖于部分签名和未广播交易的交换。但是与以前的付款渠道相比,这些新渠道采取了额外的步骤,涉及交换机密号码,这使得付款渠道可以在任一“方向”上进行更新。爱丽丝可以向鲍勃支付任意次数,而鲍勃可以在同一频道内向爱丽丝支付相同次数的次数.

此外,闪电网络还可以利用 散列的时间锁定合同 (HTLC)。这个概念通常是 归因于 属于Tier Nolan,最初是为跨区块链交易而设计的;例如,以不信任的方式交换比特币和莱特币。在Lightning Network中,该解决方案被用来链接跨支付渠道的支付.

Poon和Dryja于2015年2月在旧金山比特币开发人员研讨会上首次公开提出了他们的想法:

SF比特币开发者研讨会:将比特币扩展到每天数十亿笔交易SF比特币开发者研讨会:将比特币扩展到每天数十亿笔交易

在YouTube上观看此视频

此后的几个月中,即2015年春季和夏季,比特币的扩展性问题和区块大小限制之争变成了公开仇视。在这种危机气氛中,于2015年底组织了两次会议: 扩展比特币蒙特利尔 在九月和 扩展比特币香港 在十二月。在蒙特利尔,潘恩和德里亚 提出了 他们的建议再一次,然后两者 胡桐德里亚 在香港也进行了第二次更深入的介绍.

在第二届香港会议之后,格雷戈里·麦克斯韦(Gregory Maxwell)提出了 缩放路线图 在比特币开发邮件列表中。该路线图主要包括闪电网络。它获得了 支持 来自大多数比特币技术社区,并成为了比特币核心项目的事实上路线图.

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

实施

闪电网络白皮书是一份冗长而复杂的文档,涵盖了高度技术性的概念。在2015年,很少有人有时间和技能来通读和理解它。但是,长期的Linux内核开发人员Rusty Russell了解该白皮书后,人们的普遍了解大大提高了。在一个 系列 博客 帖子 罗素(Russell)于2015年初发布,“翻译”了该提案,以吸引更广泛(但仍然是技术性)的受众.

然后,在2015年5月,Russell被区块链开发公司Blockstream聘用,以C编程语言开发Lightning的实际实现: c-闪电. 迈向实施的重要一步被证明是至关重要的。仅在几个月前才提出的一个概念现在正在酝酿之中。 实现的 由世界一流的开发商开发。后来,罗素(Russell)和克里斯蒂安·德克(Christian Decker)一起加入了Blockstream,而包括CornéPlooy在内的其他开发商也将在未来几年内为开源项目做出贡献。.

罗素(Russell)开始从事c-lightning工作后不久,Blockstream不再是唯一实现Lightning实施的公司。到2015年夏天, ACINQ, 一家最初计划开发基于智能卡的硬件钱包的较小的比特币技术公司,也决定尝试采用有前途的技术。这家总部位于巴黎的初创公司后来宣布拥有 发达 它自己以Scala编程语言(名为eclair)实施Lightning协议.

来自ACINQ的甜点公告。资料来源:medium.com

再过几个月,第三个实施方案正在进行中。到2016年1月,Lightning Network的白皮书作者Poon和Dryja以及Elizabeth Stark和Olaoluwa“ Laolu” Osuntokun共同创立了一家全新的公司来开发Lightning: 闪电实验室. 闪电实验室将率先开发 nd, 以Google的Go编程语言(也称为“ golang”)实施Lightning,在创建公司之前,他们已经开始开发这种语言.

成立公司约一年后,2016年末,Dryja离开了Lightning Labs,改为 加入 麻省理工学院媒体实验室的数字货币计划, 雇用比特币核心首席开发人员弗拉基米尔·范德兰(Wladimir van der Laan)和其他几个比特币核心贡献者的组织。在麻省理工学院,Dryja继续从事他在Lightning Labs自举的Lightning实施工作,并将其重命名为Lightning。 点燃;今天,既有光明也有光明。 Lit与lnd和其他实现方式不同,它是一个钱包和一个包裹在其中的节点。如今,它还通过配置选项同时支持多个硬币.

此外,区块链公司 比特愤怒, 最著名的是其采矿池和采矿硬件,因此将第一个实施方案分叉到该软件的另一个版本中。此分支的独特之处在于它在设计中进行了权衡,以便不需要对比特币网络进行可延展性修复-稍后再进行介绍。 Bitfury在交易路由领域也做出了贡献,最显着的是一种称为“耀斑.”(但lnd的Bitfury分支的开发目前似乎停滞了。)

此外,在2016年,主要的钱包提供商Blockchain宣布 发达 闪电网络的简化版本,称为 . 与典型的Lightning实施相比,此实施具有相对较大的权衡,最显着的原因是,它需要对网络上的交易对手的信任。通过进行这种权衡,它能够最早在2016年春季发布其实施的Alpha版本,远远早于其他任何开发团队。 (虽然雷声也可能是 使兼容 将来随着Lightning Network的出现,此实现的开发似乎也停滞了。)

在2016年末举办的会议的第三版Scaling Bitcoin Milan扩展会议之后的几天里,大多数Lightning实现的参与者聚集在一起,这被称为第一届Lightning Summit。在这里,他们讨论了如何使所有不同的实现互操作,从而产生了一个闪电网络协议规范,称为“螺栓”(闪电技术基础的首字母缩写)。在闪电网络白皮书是理论性建议的地方,BOLT成为了我们今天所知道的实际闪电网络的基础.

协议变更

当《闪电网络》白皮书首次发布时,所描述的想法实际上与比特币协议不兼容-至少不安全。要启用所述的闪电网络,比特币需要进行一些协议更改.

其中第一个是新的时间锁定,这将使支付渠道能够抵御比特币的可延展性漏洞。但是,甚至在《闪电网络》白皮书发布之前,这个问题就已经在解决之中,并在2015年由彼得·托德(Peter Todd)设计和提出的新型时间锁最终解决了。 实施的 在比特币协议中:CheckLockTimeVerify(CLTV).

后来,比特币核心开发人员意识到闪电网络在相对的时间锁定下会更好地运行。这些允许用户在确认另一笔交易后的特定时间点内锁定比特币。在闪电的情况下,用户可以无限期地打开其支付频道,而CLTV的时间锁要求他们定期关闭其频道。软分叉升级以实现相对的时间锁定,称为 CheckSequenceVerify (CSV)由比特币核心贡献者BtcDrak,Eric Lombrozo和Mark Friedenbach设计,并于2016年夏季在比特币网络上激活.

但是,闪电网络需要进行的最大协议更改(至少假设有体面的用户体验)是针对任何比特币交易的可延展性修复.

在发布《闪电网络》白皮书时,延展性被认为是一个巨大的挑战。虽然一个 软叉吃水 为了解决当时的问题,开发人员不确定这是否可行,并认为可能需要硬分叉。然后,到2015年底,比特币核心贡献者意识到隔离证人(SegWit)是可延展性修复程序,是Blockstream的一部分 元素项目, 可以作为向后兼容的软分支部署在比特币上.

经过长时间的奋斗,“隔离见证”软叉终于在2017年夏天启动,也为比特币上的闪电网络铺平了道路.

(有关隔离见证的历史的更多信息,请参见“通往隔离见证的漫长之路:比特币最大的协议升级如何成为现实。”)

阿尔法

即使尚未将隔离见证人部署在比特币协议上(并且尚不能完全肯定会使用它),闪电网络的开发仍在进行中.

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

在2016年10月部署SegNet 4不到六个月的时间里,Blockstream开发团队就将其c-lighting原型提升到了可以使用的地步。在所谓的“雷电一击,在闪电网络的早期迭代中,Decker使用测试网比特币从罗素“购买”了一张猫图片.

猫的图片克里斯蒂安·德克(Christian Decker)是从鲁斯蒂·罗素(Rusty Russell)“买来的”。资料来源:Blockstream.com

到2017年1月,第一个Lightning实施-lnd-已发布于 α. 这样,Lightning Network本身就“正式”进入了“ alpha阶段”:来自世界各地的开发人员首次被邀请试用该技术,而Lightning Labs将继续帮助测试和改进代码。.

反过来,此Alpha阶段导致越来越多的开发人员 应用领域 在lnd和其他Lightning实施之上。这些 ”拉普斯,” Lightning的实现方式已被广泛使用,包括台式机和 移动的 钱包,到 小额支付博客平台, 到 赌博网站, 到 探险家, 等等-尽管在大多数情况下,仍然是为比特币的测试网设计的.

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

此外,到今年年底,其他人开始用真钱实际使用比特币主网上的alpha闪电实现-在某些情况下甚至违反了开发人员的建议。越来越多的Lightning频道开通了,到12月,开发人员Alex Bosworth拥有了 付了电话费 通过他与付款处理器建立的闪电渠道 充值:有史以来通过闪电网络进行的第一笔真实货币购买之一.

又过了一个月,Blockstream(尽管c-lightning实施仍处于测试阶段) 开了 一种 网上商店 在这里可以用真实的比特币购买真实的产品,尽管会明确警告所涉及的风险。在2018年2月,闪电的alpha阶段几乎充满诗意地结束了,比特币的传奇 拉兹洛·汉耶茨(Lazlo Hanyecz) 的 ”比特币披萨”成名 宣布 是他通过闪电网络购买了披萨(当然!).

Lazlo Hanyecz喜欢他的披萨。来源: http://eclipse.heliacal.net/~solar/bitcoin/lightning-pizza/

Beta版

经过多年的发展,甚至经过多年的概念化,几周前也许已经达到了最大的里程碑.

到2018年3月中旬,Lightning Labs的lnd是第一个在Beta中发布的Lightning实施. 已宣布 与此同时,Lightning Labs进行了250万美元的种子投资,包括Twitter首席执行官Jack Dorsey这样的大牌投资者,他们认为Lightning实施已经准备就绪,可以在比特币的主网上使用,尽管主要是针对技术用户的.

此公告之后是 鸣叫 于3月28日在ACINQ上发布,宣布eclair也已发布beta版,因此也被认为可用于主网。该初创公司补充说,他们的Android Lightning钱包将于下周发布。 (在本文发表时,即本周。)

Blockstream的c-lightning实施尚未在Beta中发布,尽管其开发团队表示 比特币杂志 这也可能很快就会发生。但是,添加到仍在增长的列表中的区块链开发公司确实做到了, 推出七个全新的拉普 在三月的最后一周,重点介绍了该公司在闪电战方面的进展.

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

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

但是,即使取得了所有这些进展,闪电网络仍处于起步阶段。如今,网络的大多数用户仍是非常技术(通常是开发人员),并且用例大多是试验性的。虽然Beta版软件是一个重要的里程碑,但网络的开发和完善是一个持续的过程,仍然需要做很多工作,同时还要对路由提出一些开放性的问题。, 隐私 和别的 风险 保持.

最有可能的是,只有进一步的采用才能回答它们.

作者注: 在对本文进行研究时,我意识到闪电网络的全部(预)历史比我已经知道的还要广泛。将其概述为单个零件需要偷工减料并遗漏细节,这对帮助实现该技术的所有人员,项目和概念并没有公义。本文是迄今为止概述该故事的一种尝试,但最好将其理解为一个粗略的摘要,而不是详尽的历史或技术说明。感谢所有提供信息和其他意见的人.