当比特币于2008年由Satoshi Nakamoto首次提出时,James A. Donald对该系统的第一次公开评论包含如下内容:“我理解你的提案的方式,彷佛没有达到所需的规模”。十年后,可扩展性仍然是比特币以及其余资深加密货币系统的最大问题。php
可伸缩性到底意味着什么?好吧,在它存在的整个过程当中,比特币每秒只能处理大约7笔交易。虽然这在一开始就足够了,但该系统已经拥挤了几年了。所以,交易须要很长时间才能处理,交易费用也是偏高的。java
若是比特币永远成为现有支付系统的彻底替代品,它显然须要可以与它们竞争。截至目前,它还差得很远。要了解状况的严重程度,只需比较比特币每秒7次的小额交易,以及Visa的平均24,000次交易,以及每秒约50,000次交易的峰值容量。node
多年来,比特币的社区就如何提升比特币的可扩展性提出了各类建议,但还没有达成清晰的整体共识。这就是为何咱们目前有几个相似比特币的网络从原始网络分支出来的缘由。然而,目前正在测试的一种提议的解决方案可能可以正常工做。它被称为闪电网络。python
在历史的某个时刻,发送电报是最快捷,最有效的长途通讯方式。为此,你必须前往当地邮局,填写表格并根据其中包含的信件支付费用。而后,该消息将被发送到最近的电报局,以便传送到远端。邮差而后将电报发送到目的地。android
基本上,有不少人参与发送一条简短的短信,你必须付出至关多的钱。这几乎是比特币网络的当前状态。在这个类比中,闪电网络基本上像若是有一个你想要快速拨号交谈的人:只须要按“1”就可让你朋友的电话响了。git
简而言之,比特币闪电网络背后的想法可能听起来像这样:咱们真的不须要每一笔交易都记录在区块链上。程序员
相反,Lightning Network为比特币的区块链增长了另外一层,使用户可以在该额外层上的任何两方之间建立支付渠道。这些渠道能够根据须要存在,而且因为它们是在两我的之间创建的,交易几乎是即时的,费用将极低甚至不存在。github
输入Danny和Jon。他们可能正在一块儿工做,他们多是亲戚或一对夫妇,重点是他们须要常常,快速且以最低费用向对方汇款。所以,他们在闪电网络上创建了一个频道。web
首先,他们须要建立一个多功能钱包,这是一个钱包,他们能够用他们各自的私钥访问。而后,他们都将必定数量的比特币(好比每一个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须要证实本身是安全和可用的。考虑到这一点以及许多其余因素,专家预测,彻底正常工做的闪电网络可能须要几个月到几年的时间。
至于使用网络的缘由,答案很简单:可扩展性。若是网络实际上将提供比特币主要问题的解决方案,它极可能会被其余加密货币采用。
若是发生这种状况,可能会进一步开发交叉链原子交换技术,从而标志着创建真正去中心化的加密货币交换的第一步。
正如以前提到的,闪电网络只是迈出了第一步。它仍然处于开发阶段,它是否会像开发人员想象的那样实际工做仍有待观察。若是是这样,如下是Lightning Network的一些最重要的优点,你能够从中受益:
交易速度。一旦网络上线,就没必要等待你尝试进行的每笔交易的屡次确认。不管网络有多繁忙,交易几乎都是即时的。若是发生这种状况,加密货币市场将朝着可以与Visa,MasterCard和PayPal等传统支付系统竞争迈出巨大的一步。
交易费用。因为交易实际上将在闪电网络频道内和区块链以外进行,所以你只需支付最微小的费用(若是有的话)。这是Lightning Network的主要优点之一,由于这将彻底使比特币成为商店,咖啡馆,酒吧等的一种付款方式。
可扩展性。听说闪电网可以将比特币和其余加密货币的每秒交易数量达到每秒至少100万笔交易的史无前例的高度。
**交叉链原子交换。**交叉区块链交易的第一次测试奏效了,这一切都很是使人兴奋。只要两个区块链共享相同的加密哈希函数(而且大多数主要区域链共享),用户将可以将钱从一个链转发到另外一个链,而没必要信任第三方中介,例如交换。该技术具备真正的革命性潜力。
安全和匿名。绝大多数加密货币都没有彻底匿名。发送仍然能够从一个钱包跟踪到另外一个钱包。然而,当谈到闪电网络时,大部分交易都发生在主区块链以外,所以经过Lightning渠道进行的全部微支付几乎都没法追踪。
没有全面运做。目前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)及其工做原理