区块链很慢,而且昂贵。闪电网络(Lightning Network)就是解决这个问题的。如果我不得不发送给你一些比特币,你会在几个小时内收到它们,而且我也支付了很高的交易费。凭这样的声誉,Blockchains将如何接管世界?
任何可以解决区块链不可扩展性的想法都值得关注,特别是时间和精力相关的。闪电网络就是这样一个想法。但在我们理解解决方案之前,我们需要了解问题。
“我是一个缓慢的步行者,但我从不回头。”——亚伯拉罕林肯
将区块链视为注册。此寄存器包含多个页面(块),其中每个页面都有多个交易。一旦页面填满了交易,就需要在开始在下一页上记录交易之前将其添加到寄存器中。
在页面(块)可以添加到寄存器(链)之前,需要进行一些处理以确保每个人都同意它包含的内容。对于每个块,该过程大约需要10分钟(对于比特币区块链)。
想象一下,你发送1BTC给你的朋友乔。交易看起来像这样。
除其他事项外,交易包含有关发件人,收件人,金额和交易费用的信息。
“顾问只拯救足以支付他的费用的客户。”——Arnold H. Glasow
是的,需要额外付费。你可以支付费用以激励矿工尽快将你的交易包含在一个区块中。没有定价,完全取决于你愿意支付多少费用以加快流程。费用越高,交易越快。
在任何给定时刻,有几个交易可以记录在当前页面上。
矿工,即在区块链网络中工作的计算机,必须决定在当前区块中包括哪些可用的交易。为了帮助他们做出决定,他们会查看哪些交易产生的回报最多——这意味着交易费用最高的交易将首先包含在内。
如果有足够的交易费用比你的交易费用更高,那么你的交易将不得不排队等候。等待可以持续几分钟到几个小时。有时甚至是几天。你支付的交易费用越多,你的交易处理速度就越快。
这就是为什么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
转载于:https://blog.51cto.com/13697184/2341276