区块链-什么是闪电网络?

 

目录:http://www.javashuo.com/article/p-nitsjfvy-ey.html安全

1. 引言网络

比特币网络的拥堵问题由来以久,关于扩容的争论也喋喋不休,在屡次共识失败以后,比特大陆团队硬分叉出bch,经过扩大区块容量来实现网络扩容,而bitcoin core团队则经过软分叉方式激活了隔离见证,为后续的闪电网络作准备。架构

比特币是世界上使用最普遍和最具价值的数字货币,它容许任何人在不受信任的环境下进行价值传递。比特币被称为“数字黄金”,这个称谓是对其在加密货币领域地位的确定,但比特币也表现出黄金的一些缺点,Peter Thiel表示,比特币“就像金库中永不移动的金条同样”,说的正是比特币高昂的交易费和极低的处理速度,可否成为支付手段是比特币可否在将来大行其道的关键。分布式

闪电网络能够提供扩容性方面的重大改进。所以,在不影响核心协议的基础安全性的状况下,交易速度和交易费率应该大幅改进。然而,相当重要的是,与闪电网络支付相关的安全性可能使闪电网络不适合大额支付(或者至少将其用于大额支付多是不负责任的)。目前加密货币领域的主要推进力量彷佛是投机和投资,而这些资金流动须要这些较大额度的支付,相比之下,小额零售支付的体量还相对较小。正由于如此,至少在中期内,闪电网络可能并无像有些人想象的那么大的做用。虽然爱好者彷佛很快就会采用这种技术,但其普遍应用可能须要至关长的时间。
目前闪电网络测试网已经上线,虽然也爆出很多问题,但毫无疑问这是区块链网络扩容问题上的一大探索。相信随着参与者愈来愈多,闪电网络也会愈来愈成熟。函数

2. 什么是闪电网络?性能

什么是闪电网络呢?在状态通道一文中咱们提到过,闪电网络是状态通道的典型应用。是一个分布式网络,经过智能合约功能以支持跨参与者网络的即时付款,同时利用区块链的特性消除将资金托管给第三方带来的风险。主要做为用于即时、高容量的微支付。区块链

闪电网络的目的是实现安全地进行链下交易,其本质上是使用了哈希时间锁定智能合约来安全地进行0确认交易的一种机制,经过设置巧妙的‘智能合约’,完善链下通道,使得用户能够在闪电网络上进行0确认的交易。测试

核心的概念主要有两个:RSMC(Recoverable Sequence Maturity Contract)和 HTLC(Hashed Timelock Contract)。RSMC 保障了两我的之间的直接交易能够在链下完成,HTLC 保障了任意两我的之间的转帐均可以经过一条“支付”通道来完成。这两个类型的交易组合构成了闪电网络。从而实现任意两我的均可以在链下完成交易。加密

  • RSMC
    Recoverable Sequence Maturity Contract,中文能够翻译为“可撤销的顺序成熟度合同”。其实主要原理很简单,就是相似准备金机制。

咱们先假定交易双方之间存在一个“微支付通道”(资金池)。双方都预存一部分资金到“微支付通道”里,以后每次交易,就对交易后的资金分配方案共同进行确认,同时签字做废旧的版本。当须要提现时,将最终交易结果写到区块链网络中,被最终确认。能够看到,只有在提现时候才须要经过区块链。.net

任何一个版本的方案都须要通过双方的签名认证才合法。任何一方在任什么时候候均可以提出提现,提现须要提供一个双方都签名过的资金分配方案(意味着确定是某次交易后的结果)。在必定时间内,若是另一方提出证实代表这个方案其实以前被做废了(非最新的交易结果),则资金罚没给质疑成功方。这就确保了没人会拿一个旧的交易结果来提现。

另外,即便双方都确认了某次提现,首先提出提现一方的资金到帐时间要晚于对方,这就鼓励你们尽可能都在链外完成交易。

  • HTLC
    微支付通道是经过 Hashed Timelock Contract 来实现的,中文意思是“哈希的带时钟的合约”。这个其实就是限时转帐。理解起来其实也很简单,经过智能合约,双方约定转帐方先冻结一笔钱,并提供一个哈希值,若是在必定时间内有人能提出一个字符串,使得它哈希后的值跟已知值匹配(实际上意味着转帐方受权了接收方来提现),则这笔钱转给接收方。

不太恰当的例子,约定必定时间内,有人知道了某个暗语(能够生成匹配的哈希值),就能够拿到这个指定的资金。

推广一步,甲想转帐给丙,丙先发给甲一个哈希值。甲能够先跟乙签定一个合同,若是你在必定时间内能告诉我一个暗语,我就给你多少钱。乙因而跑去跟丙签定一个合同,若是你告诉我那个暗语,我就给你多少钱。丙因而告诉乙暗语,拿到乙的钱,乙又从甲拿到钱。最终达到结果是甲转帐给丙。这样甲和丙之间彷佛构成了一条完整的虚拟的“支付通道”。

HTLC 的机制能够扩展到多我的,你们能够想象一下,想象出来了就理解了闪电网络。

闪电网络采用了更合理的支付网络架构,表明着效率的提升。与其向全部人广播交易,交易能够更直接地发送给收款人。只有当交易双方不诚实时,才须要进入繁琐的流程——链上共识操做。经过这种方式,能够实现至关于互联网上各方之间直接沟通所能达到的性能和效率,同时保留比特币区块链的一些安全特性。然而,若是各方想在出现问题时能够随时回归到区块链上并收回资金,那么创建这样一种支付系统是很是复杂的,而且还存在着一些重大风险和局限性。

3. 闪电网络是如何工做的?

闪电网络的正常使用包括经过向区块链网络提交正常的资金交易来开通支付通道,而后进行任何数量的闪电交易,更新通道内资金的临时分配而不广播到区块链,最后关闭支付经过广播最终版本的交易来分配通道内的资金。
闪电网络是基于比特币区块链构建的智能合约系统,容许两方直接进行快速,廉价的支付。为了实现这些快速而廉价的交易,采起了如下步骤:

  • 设置一个多重签名钱包,其中包含必定数量的比特币(由双方中的至少一方提供)
  • 钱包地址而后保存到公共比特币区块链中,包括资产负债表(智能合约),证实该比特币存款的多少属于谁
  • 在此支付通道进行一次设置以后,这两方就能够进行无限次的交易,而无需触及存储在区块链中的信息
  • 对于每次交易,双方签署更新的资产负债表以便始终反映存储在多信用点钱包中的比特币的金额属于谁
  • 更新后的资产负债表不会上传到区块链,而是双方保留其副本。
  • 每当发生争议或支付通道关闭时,双方均可以使用最新的互相签署的资产负债表来支付他们在多信用卡钱包中的份额。

这听起来很是麻烦,但实际上对于最终用户来讲,进行闪电支付几乎不须要烧脑的工做,全部上述操做都将在后台自动进行。

闪电网络使用支付渠道有效地容许用户直接与对方进行交易,而不是将业务广播到整个世界(又名公共区块链)。经过彼此跟踪彼此之间的支付,双方能够避免与区块链进行昂贵且耗时的交互。若是Lightning Network上的余额存在某种争议,那么由双方提供的最近的资产负债表将决定多sig钱包中资金的分配方式。

闪电网络不须要对手方合做退出支付通道。双方均可以选择单方面关闭通道。由于全部各方都有多个多签名。在这个网络上有许多用户之间的通道,理论上能够经过这个网络向任何人发送付款。

4. 闪电网络的主要特色

理论上来讲,闪电网络应该容许网络中的全部参与者经过在节点之间找到一条路径,由此可以在各个方向上进行近乎即时且廉价的交易。所以,只要没有出现问题,就能够避免向比特币网络进行广播,从而造成可扩容网络。该体系架构甚至容许小微交易并加强了付款隐私性。

因为相对时间锁定功能,通道能够无限期地保持开放,而且不存在交易对手方风险; 若是有人试图经过恶意地关闭通道来窃取资金,交易的其余参与方将有一个很长的时间窗口来发起他们本身的赎回交易并收回资金。

  • 快速支付:在既定通道内的支付几乎能够像数据经过互联网在两个节点之间传输同样快。
  • 无需可信第三方:通道中的两个参与者直接使用常规的比特币交易进行互相支付(其中只有一个是广播的),所以任何第三方都不能控制其资金。
  • 为区块链减负:只有开启通道,关闭通道和争议性交易须要提交到区块链上进行,容许闪电网络内的全部其余交易保持未提交状态。这这使得闪电网络用户能够经过比特币进行频繁支付,而不会使必须处理区块链上每笔交易的完整节点承担过多的负担。
  • 支付通道能够无限期地保持开放:只要频道中的双方继续彼此合做,频道能够无限期地保持开放 - 没有强制超时期限。根据双方的意愿,能够长期保持通道开启,这能够进一步减小区块链上的负载,同时也能够稀释最终的费用。
  • 双方约定可快速关闭通道:若是双方赞成,能够当即关闭支付通道(双方可能但愿等待一个或多个确认以确保支付通道在正确的状态下关闭)。双方未达成协定(如一方消失)也能够关闭通道,但须要耗费更长的时间。
  • 洋葱式路由:支付路由信息能够以嵌套的方式加密,以便中间节点只知道他们收到了可路由支付的人和下次发送给谁,防止中间节点知道发起者或目的地。
  • 具备多重签名功能:每一个参与方均可以要求经过多个密钥对他们的付款进行签名(https://en.bitcoin.it/wiki/Lightning_Network#cite_note-poon_multisig-2)。
  • 跨链:若是另外一条区块链支持用于哈希锁的相同哈希函数,以及具有建立时间锁的能力,支付通道就能够跨多个区块链(包括侧链)进行路由。利用异构区块链共识规则,交叉链式原子互换能够当即发生在链外。只要链能够支持相同的加密散列函数,就能够跨区块链进行交易,而不须要信任第三方托管商。
  • 小额支付是可能的:因为费用与支付金额成比例,您能够支付一分钱; 会计甚至以千分之一的精确度完成。
  • 付款即时结算:资金在经过网络到达目的地和返回所需的时间内发送,一般为几分之一秒。
  • 改进隐私:并不是每一个交易都存储在公共区块链上,只有当支付通道最终关闭而且余额支付给双方

5. 是否每一个交易都须要开设新的支付通道?

不是的,闪电网络(所以它的名字)被构建为一个网络。尽管Alice可能尚未与Dave创建开放的支付渠道,但Alice经过Bob间接与Dave链接,或者甚至在二者之间使用多个步骤。借助闪电网络,用户能够与任何经过多跳链接到他们的支付通道网络的人进行交易。从理论上讲,每一个人均可以经过网络与其余人链接。人们也会经过(小)费用来激励这些链接节点,每次交易使用其中一个链接时都会支付这些费用。闪电网络的测试网实施的早期结果证明,确实能够建立足够分散的网络。

闪电网络的架构仍然是值得信赖的(由于它基于智能合约),而且始终确保资金将经过中介机构到达目的地,或者在没有间接路径到达目的地的状况下退款。

Bob和Carol在网络上充当“节点”。闪电网络上的节点在某种程度上与比特币网络上的矿工相似。

6. 闪电网络下的安全风险

一个巨大的未知因素是人们和企业如何实际使用这个网络,评论员们的见解彷佛也不尽相同。有些人认为闪电网络最终会在小额支付场景中无处不在,其中的复杂性将以自动化方式处理。其余人对闪电网络持怀疑态度,一般的设想是在使用该系统时须要更多以手动方式来构建闪电网络的各个组件,其用户体验还会由于通道意外关闭和闪电网络宕机的困扰而变得糟糕。实际上,真实的状况可能位于这两种愿景之间,随着时间的推移,闪电网络可能会更加趋近于雄心勃勃地那种愿景。这种分歧彷佛能够归结为闪电网络的怀疑者认为它是一个复杂,不完整和不切实际的支付系统,其彻底依赖于通道架构系统。支持者则将闪电网络视为比特币区块链上的第二层可扩展构件,最终将由钱包,支付协议系统和通道服务公司进行补充,从而带来简单而无缝的用户体验。最后,钱包能够互相通讯,在无需用户知情或者操心的状况下,自动动态地决定最佳支付方式——链上支付或是经由闪电网络上的最实际的方式。

  • 收款时要求必须在线:如上所述,收款人在收款以前须要签名回收交易,以便付款人知道他们能够在发生恶意通道关闭或拒绝签名的状况下回收资金。所以,要收款就须要一个热钱包,这意味着若是发生安全事故,私钥可能会暴露。
  • 监控通道的需求:闪电网络参与者或服务商可能须要主动监控支付通道。这可能给用户或服务商带来负担,并可能下降通道内资金相对于存储在链上的比特币的安全性。可能会由于未能适当监控通道或链上网络的拥堵,致使错过回收交易截止日期。
  • 矿工能够审查通道关闭的交易:51%的算力可能有能力经过审查通道关闭的交易来窃取闪电网络用户的资金,在这种状况下矿工是对立方。即便没有闪电网络,此类攻击的潜在后果已经至关具备破坏性,但闪电网络可能会为恶意矿工提供更大的攻击面。

收款时私钥暴露到到网络上的可能性,恶意的关闭通道的风险以及矿工审查通道回收交易的风险,虽然这三个因素中单独的每个彷佛都不是那么重要,但加在一块儿,咱们认为这明显致使了更低的安全性 - 虽然全部这些风险均可以在必定程度上加以管理。

有一种风险是,懒惰或信息贫乏的用户在通道中留存了过量资金,而且因为其中一种事故状况而致使资金丢失或被盗。同时还存在的风险是因为价格波动,用户在支付通道中会留存比意图中更多的资金。

  • 匹配失败:若是其中一个对等方没有响应,用户可能须要等待数小时才能关闭付款通道并经过替代路线从新发送资金
  • 没有离线付款:用户没法支付不在线的人
  • 对于大额付款并不理想:尽管可能存在经过各类支付渠道的路线,但同行多个钱包中的资金可能不足以转移大额资金
  • 集中化:闪电网络可能会鼓励支付中心的集中化(相似于矿工集中),这也是为何有人说闪电网络实际上会出现相似银行的超级节点的缘由。

6.闪电网络技术展望

恒星宣布将在2018年部署闪电网络

做者:unclefynn 连接:https://www.jianshu.com/p/b75a6ee8c7cf 来源:简书 简书著做权归做者全部,任何形式的转载都请联系做者得到受权并注明出处。