当比特币于 2008 年由 Satoshi Nakamoto 首次提出时,James A. Donald 对该系统的第一次公开评论包含以下内容:“我理解你的提案的方式,似乎没有达到所需的规模”。十年后,可扩展性仍然是比特币以及其他资深加密货币系统的最大问题。
可伸缩性到底意味着什么?好吧,在它存在的整个过程中,比特币每秒只能处理大约 7 笔交易。虽然这在一开始就足够了,但该系统已经拥挤了几年了。因此,交易需要很长时间才能处理,交易费用也是偏高的。
如果比特币永远成为现有支付系统的完全替代品,它显然需要能够与它们竞争。截至目前,它还差得很远。要了解情况的严重程度,只需比较比特币每秒 7 次的小额交易,以及 Visa 的平均 24,000 次交易,以及每秒约 50,000 次交易的峰值容量。
多年来,比特币的社区就如何提高比特币的可扩展性提出了各种建议,但尚未达成清晰的总体共识。这就是为什么我们目前有几个类似比特币的网络从原始网络分支出来的原因。然而,目前正在测试的一种提议的解决方案可能能够正常工作。它被称为闪电网络。
什么是闪电网络?
在历史的某个时刻,发送电报是最快捷,最有效的长途通信方式。为此,你必须前往当地邮局,填写表格并根据其中包含的信件支付费用。然后,该消息将被发送到最近的电报局,以便传送到远端。邮差然后将电报发送到目的地。
基本上,有很多人参与发送一条简短的短信,你必须付出相当多的钱。这几乎是比特币网络的当前状态。在这个类比中,闪电网络基本上像如果有一个你想要快速拨号交谈的人:只需要按“1”就可以让你朋友的电话响了。
简而言之,比特币闪电网络背后的想法可能听起来像这样:我们真的不需要每一笔交易都记录在区块链上。
相反,Lightning Network 为比特币的区块链增加了另一层,使用户能够在该额外层上的任何两方之间创建支付渠道。这些渠道可以根据需要存在,并且由于它们是在两个人之间建立的,交易几乎是即时的,费用将极低甚至不存在。
它是如何工作的?
输入 Danny 和 Jon。他们可能正在一起工作,他们可能是亲戚或一对夫妇,重点是他们需要经常,快速且以最低费用向对方汇款。因此,他们在闪电网络上建立了一个频道。
首先,他们需要创建一个多功能钱包,这是一个钱包,他们可以用他们各自的私钥访问。然后,他们都将一定数量的比特币(比如每个 3 比特币)存入该钱包。
从那时起,他们可以在两者之间进行无限制的交易。基本上,这些交易是存储在共享钱包中的资金的重新分配。例如,如果 Danny 想要向 Jon 发送 1BTC,她将需要将该金额的所有权转让给他。然后,他们两个使用他们的私钥签署更新的资产负债表。
资金的实际分配发生在渠道关闭时。该算法使用最近签署的资产负债表来确定谁获得了什么。如果 Danny 和 Jon 决定在一次交易后关闭频道,Danny 将获得 2BTC,而 Jon 将获得 4BTC。
只有在频道关闭后,有关其初始和最终余额的信息才会广播到比特币区块链。因此,Lightning Network 的工作方式是它允许用户在主区块链之外进行大量交易,然后将它们记录为单个交易。
最令人兴奋的是,一旦该技术被广泛采用,你甚至不一定需要建立专门的渠道来向某个人发送资金。相反,你可以使用与你已连接的人的频道向某人发送付款。系统将自动找到最短路径。
这就是闪电网最终可能为比特币购买一杯咖啡的永无止境的辩论提供答案的方法。从它的外观来看,通过 Lightning 频道闪电网络这样做可能会起作用,因为它几乎只是一次购买,不会产生任何费用。
那安全吗?但是,值得注意的是,Lightning Network 的概念意味着系统将在区块链之上工作,但实际上并不具备其安全性。因此,它很可能主要用于小微交易。需要去中心化安全性的较大转账很可能仍将在原始层上完成。
最后,目前正在测试的 Lightning Network 的另一个有趣特征是交叉链原子交换,它是不同区块链之间的代币转移。简而言之,它是一种在不使用加密货币交换的情况下将任何给定的加密货币交换到另一种加密货币的方式。
最终,这项技术可能会使不安全的集中式加密货币交换以及与交易相关的麻烦都过时。比特币和莱特币测试区块链之间交换代币的第一个测试已经证明是成功的。
谁开发了它?
Lightning Network 最初是由 Joseph Poon 和 Thaddeus Dryja 在 2015 年的白皮书中描述的——当前版本的白皮书可以在这里找到。目前有三个团队共同开展闪电网络的大部分工作:Blockstream,Lightning Labs 和 ACINQ,以及来自比特币社区其他成员的意见。
上面提到的每个初创公司都在使用他们自己的实现,以不同编程语言编写的 Lightning 网络协议。
服务商
产品
Blockstream 适用于 C 版的 LN 版本。
Lightning Labs 正在开发一个用 Golang 编写的 Lightning Network Daemon(lnd)。
ACINQ 负责 Scala 实施。
此外,目前还有正在开发其他实施方案。完整列表可在此处获得。最后,重要的是要提到最近的测试已经证明三个主要实现是完全可互操作的,这意味着它们可以彼此无缝地协同工作。
何时,在哪儿以及为何使用它?
加密货币社区似乎热切期待 Lightning Network 的推出。最初,它是专门为比特币设计的,但该技术目前正在为一系列其他加密货币开发,如 Stellar,Litecoin,Zcash,Ether 和 Ripple。
真正的比特币实际上已经被发送并且几乎总是使用 Blockstream,Lightning Labs 和 ACINQ 的实现接收,证明所有这三个实现都是可互操作的。此外,已经公布了第一版闪电网络规则概述的规范。
这些规范是网络向前迈出的一大步,因为它们可以被应用程序的开发人员使用,也可以在其他编程语言中实现 Lightning Network。
然而,该网络仍处于起步阶段。到目前为止,还没有软件可以让网络的真实临时用户进行交易。此外,目前的实施仍然是非常错误的时机。Lightning Network 开发人员已经敦促用户使用比特币的测试网了解网络,而不是发送任何真钱。
开发人员还建议用户保持耐心,因为网络代码非常复杂,需要严格的测试。为了被比特币社区完全采用,Lightning Network 需要证明自己是安全和可用的。考虑到这一点以及许多其他因素,专家预测,完全正常工作的闪电网络可能需要几个月到几年的时间。
至于使用网络的原因,答案很简单:可扩展性。如果网络实际上将提供比特币主要问题的解决方案,它很可能会被其他加密货币采用。
如果发生这种情况,可能会进一步开发交叉链原子交换技术,从而标志着建立真正去中心化的加密货币交换的第一步。
Pros 优点
正如之前提到的,闪电网络只是迈出了第一步。它仍然处于开发阶段,它是否会像开发人员想象的那样实际工作仍有待观察。如果是这样,以下是 Lightning Network 的一些最重要的优势,你可以从中受益:
交易速度。一旦网络上线,就不必等待你尝试进行的每笔交易的多次确认。无论网络有多繁忙,交易几乎都是即时的。如果发生这种情况,加密货币市场将朝着能够与 Visa,MasterCard 和 PayPal 等传统支付系统竞争迈出巨大的一步。
交易费用。由于交易实际上将在闪电网络频道内和区块链之外进行,因此你只需支付最微小的费用(如果有的话)。这是 Lightning Network 的主要优势之一,因为这将完全使比特币成为商店,咖啡馆,酒吧等的一种付款方式。
可扩展性。据说闪电网能够将比特币和其他加密货币的每秒交易数量达到每秒至少 100 万笔交易的前所未有的高度。
交叉链原子交换。交叉区块链交易的第一次测试奏效了,这一切都非常令人兴奋。只要两个区块链共享相同的加密哈希函数(并且大多数主要区域链共享),用户将能够将钱从一个链转发到另一个链,而不必信任第三方中介,例如交换。该技术具有真正的革命性潜力。
安全和匿名。绝大多数加密货币都没有完全匿名。发送仍然可以从一个钱包跟踪到另一个钱包。然而,当谈到闪电网络时,大部分交易都发生在主区块链之外,因此通过 Lightning 渠道进行的所有微支付几乎都无法追踪。
Cons 缺点
没有全面运作。目前 Lightning Network 的主要缺点可能还在于它尚未完全投入运营,因此没有办法完全断言它实际上有多好。此外,它的概念在纸面上看起来很棒,但是到目前为止还不可能知道它是否会在实现后看起来很棒。
渠道的复杂性。闪电网络被概念化为一种渠道网络,一旦建立,理论上应该允许无缝交易。但是,如果付款必须采取过于错综复杂的路线,则无法确定会发生什么。当然,如果你的交易需要通过几十个中间渠道,费用就会增加。
渠道上限。该网络的另一个缺点是,在其当前版本中,通道被限制。也就是说,两个用户在建立频道时存储在钱包中的比特币数量是该频道中的最大资金数量。这种设置创造了一种情况,即某些用户可能需要在主要区块链中选择闪电网络渠道中的流动性和其外部的流动性。这远非理想,特别是那些资源相当有限的人。
路由集中。此外,人们一直担心会形成“枢纽”——一种拥有大量资金的节点,大多数交易都将通过这些节点。许多比特币爱好者认为这是网络的进一步集中化。但是,这些中心不太可能能够获得任何重大的交易费用。
同样,值得指出的是,目前上面列出的闪电网络的优点和缺点都非常具有推测性。
我应该使用闪电网吗?
嗯,事实上,如果你不是高级用户,那么你还不能使用 Lightning Network。所以,你现在唯一可以做的就是等待,看看闪电网络是否能够实现而非炒作,它是否真正起作用和描述以及它是否安全。
请记住,Lightning Network 不是唯一的缩放提案,并且它绝不是该竞赛中无可争议的领导者,比特币现金(BCH)是其主要竞争对手。BCH 擅长者和闪电支持者之间的辩论很激烈,看不到尽头。可能是其中一个提案出现在最前面,它们可能共存,或者可能存在完全不同的解决方案。
闪电网听起来令人兴奋。如果它确实提供,请考虑你实际使用比特币的内容。如果你使用代币作为长期投资而不是其他任何东西,你可能甚至不需要 Lightning Network,因为目前委托它处理大额转账似乎并不完全安全。
但是,如果你将比特币视为一种替代支付方式,那么闪电网络如果符合预期,对你来说将是至关重要的。即时微支付,匿名性增加,几乎不存在费用——它似乎真正为大多数比特币的问题提供了解决方案。
======================================================================
分享一些以太坊、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)及其工作原理