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