区块链很慢,并且昂贵。闪电网络(Lightning Network)就是解决这个问题的。若是我不得不发送给你一些比特币,你会在几个小时内收到它们,并且我也支付了很高的交易费。凭这样的声誉,Blockchains将如何接管世界?php
任何能够解决区块链不可扩展性的想法都值得关注,特别是时间和精力相关的。闪电网络就是这样一个想法。但在咱们理解解决方案以前,咱们须要了解问题。java
“我是一个缓慢的步行者,但我从不回头。”——亚伯拉罕林肯node
将区块链视为注册。此寄存器包含多个页面(块),其中每一个页面都有多个交易。一旦页面填满了交易,就须要在开始在下一页上记录交易以前将其添加到寄存器中。python
在页面(块)能够添加到寄存器(链)以前,须要进行一些处理以确保每一个人都赞成它包含的内容。对于每一个块,该过程大约须要10分钟(对于比特币区块链)。android
想象一下,你发送1BTC给你的朋友乔。交易看起来像这样。程序员
除其余事项外,交易包含有关发件人,收件人,金额和交易费用的信息。web
“顾问只拯救足以支付他的费用的客户。”——Arnold H. Glasowmongodb
是的,须要额外付费。你能够支付费用以激励矿工尽快将你的交易包含在一个区块中。没有订价,彻底取决于你愿意支付多少费用以加快流程。费用越高,交易越快。编程
在任何给定时刻,有几个交易能够记录在当前页面上。网络
矿工,即在区块链网络中工做的计算机,必须决定在当前区块中包括哪些可用的交易。为了帮助他们作出决定,他们会查看哪些交易产生的回报最多——这意味着交易费用最高的交易将首先包含在内。
若是有足够的交易费用比你的交易费用更高,那么你的交易将不得不排队等候。等待能够持续几分钟到几个小时。有时甚至是几天。你支付的交易费用越多,你的交易处理速度就越快。
这就是为何Blockchains很慢,所以每一个人开始使用都很昂贵。理想状况下,Blockchain的采用意味着会发生更多交易,但随着交易数量的增长,网络将变得缓慢,成为采用的障碍。悖论!
闪电网络(LN)是解决该问题的潜在解决方案。
“雷声很好,雷声使人印象深入;但这是工做的闪电。“——马克吐温
LN背后的想法是并不是全部交易都须要记录在区块链上。
想象一下你和我之间的交易不少次。在这种状况下,咱们能够绕过区块链上的交易记录并将其从链中带走。
用最简单的术语来讲,它是如何工做的——咱们将在咱们之间打开一种称为支付渠道的东西,并在区块链上记录它的开头。如今,你和我能够经过此付款渠道进行屡次交易,而且能够保持开放数小时,数天,数周或数十年。咱们再次触摸Blockchain的惟一一次是咱们想要关闭频道的时候。而后,咱们将写出经过区块链上的渠道发生的交易的最终状态。
使用这种支付渠道的概念,咱们能够建立一个支付渠道网络,这样不多须要在区块链上进行交易。想象一下,有三个角色 - Xan,Yelena和Zeke。
若是Xan和Yelena之间有一个支付渠道,Yelena和Zeke之间有一个支付渠道,那么Xan能够经过Yelena向Zeke汇款。
假设Xan想要向Zeke发送2个BTC,Yelena将向Zeke发送2个BTC,而且Xan将向Yelena报销2个BTC。
这就是Lightning Network的想法。由于你不会常常触摸区块链,因此交易将以闪电般的速度发生。正如你如今可能已经猜到的那样,全部的魔力都发生在支付渠道中。让咱们学习这个魔术。
“就我的而言,咱们是一滴。咱们在一块儿就是一片海洋。“——Ryunosuke Satoro
这就像一个保险箱,两我的存入相同数额的钱,每一个人都锁定它。
这种在公共场所存入等量金钱的行为以“开放交易”的形式记录在区块链上,以后在这两我的之间开放支付渠道。
在这样一个盒子里锁钱的想法是没有一我的能够在没有另外一我的的状况下把钱花在盒子里。而后,此框中的钱用于彼此之间的交易。
想象一下,Xan和Yelena在10个BTC中共用一个共用框。如今,若是Xan想要送2个BTC给Yelena,他会怎么作?
要作到这一点,他会将他在公共场所中的两个比特币的全部权转让给Yelena。在转移承诺后,若是盒子被解锁,Xan将可以得到8个BTC,Yelena将可以得到12个BTC。
但他们不会打开盒子,由于他们想继续在他们之间进行交易。这就是这种安排的美妙之处。
如今,若是次日,Yelena必须向Xan发送1个BTC,她也会这样作——将其中一个比特币的全部权转让给Xan。在这两笔交易以后,若是开箱,Xan能够申请9个BTC,Yelena能够得到11个BTC。
想象一下脱链交易的样子,请考虑如下事项:
总而言之,支付渠道只不过是将一些资金聚集在一块儿,而后以商定的方式转让聚集资金全部权的承诺。若是Xan或Yelena想要关闭频道,他们能够。
关闭一个频道只是意味着打开盒子并拿走里面的钱。这个盒子的开口发生在Blockchain上,谁拥有盒子中的多少钱永远记录下来。
这就是支付渠道的运做方式。但这甚至没有接近定义他们的真正潜力。当两个或多个支付渠道共同构成一个网络——闪电网络时,它们的真正力量得以释放。
“很棒的事情是由一系列小东西组合而成的。”——文森特梵高
LN的工做原理是将比特币全部权的价值转移到比特币的全部权承诺。
这种转变是巨大的。像往常同样,咱们将用一个例子来理解这一点。想象一下,有三我的:Xan,Yelena和Zeke。这样在Xan和Yelena之间就有一个支付渠道,Yelena和Zeke之间还有另外一个渠道。请注意,Xan和Zeke之间没有支付渠道。
在这种状况下,若是Xan想要将2个BTC转移到Zeke,他可使用Yelena和Zeke之间的支付渠道来作到这一点。这看起来怎么样?
Xan要求Yelena在Yelena-Zeke支付渠道上将2个BTC的承诺转让给Zeke,而后他在Xan-Yelena频道以2个BTC向Yelena报销。
经过这种支付渠道网络,能够从区块链中卸载大量的交易,从链条上进行,从而释放链条的带宽。使用支付渠道网络,可能会发生数百万笔交易,并且交易费用也很高。
这就是闪电网络。并且,如今你知道如何向你的朋友解释它。或者,若是你感到懒惰,只需将它们发送到这篇文章。
======================================================================
分享一些以太坊、EOS、比特币等区块链相关的交互式在线编程实战教程:
- EOS教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、帐户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
- java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
- python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
- php以太坊,主要是介绍使用php进行智能合约开发交互,进行帐号建立、交易、转帐、代币开发以及过滤器和交易等内容。
- 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
- 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
- C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括帐户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
- java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如建立地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
- php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如建立地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
- tendermint区块链开发详解,本课程适合但愿使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。
汇智网原创翻译,转载请标明出处。这里是原文最简单易懂的介绍闪电网络Lightning Network