社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  区块链

【区块链必学】来自一位比特币狂热数学家对闪电网络的6大透彻解析

区块链大本营 • 8 年前 • 453 次点击  

闪电网络(Lightning Network)是一个去中心化的支付系统,已经开始从概念和愿景走向落地和应用。闪电网络基于微支付通道演进而来,可实现实时的、海量的交易网络。闪电网络通过中心模式和点对点模式,大大提升了交易支付的效率,并降低交易成本。它将催生新的业务模式,链上交易将无法与之抗衡。虽然闪电网络仍有一些问题和挑战,包括复杂性、安全性等等,但未来闪电网络将随着稳健地发展,在扩展性和易用性等方面取得突破,为人类创造更大的价值。


作者 | Meni Rosenfeld 数学家,比特币狂热者

编译 | 贾瑞婷


我发明了闪电网络。


这样说好像不太对。据我所知,我是第一个写博客,描述今天的闪电网络大致如何构思的人。


我说这些不是因为闪电网络的出现,为自己邀功,我没有做出什么。我只是抛出了一些非常粗略的想法,有人在我的建议基础上,发明了微支付通道的概念;我没有给出完整的设计,更没有写下任何代码。


说这些是为了强调,闪电网络一直是一个愿景。最早接触比特币时,让我百思不得其解的是,比特币支付系统如何扩展,如何规模化。那时起,我学到的一些概念,类似SPV(Simplified Payment Verification, 简单支付验证),修剪(prunning)给到了一些启发,但是并没有完全解答我的疑问。自从我听说了通道,并思考通道怎样用于网络中,通道就成了讨论可扩展性,规模化时,我最先想到的概念。


用链上交易锚定一个通道,比特币交易可以不用通过整个网络或是等待每笔交易的确认。支付通道可以被单方面关闭以撤销付款,就像正常的比特币在可控的地址那样操作。这个概念听起来如此强大,没有人会不爱这个想法。


但是我真正兴奋是闪电网络的发展如此迅速,已不再只是愿景,而是真正开始落实。


闪电网络比我之前想象的还要好。基于当时的协议和我的理解,我能想到的是,设定了有效期的单向通道;随着有效期临近或有限容量用尽,交易通道要不断关闭和重新开启。如果想有长期通道减少链上交易数量,用户需要提前锁定大量资金,如果交易的另一方有问题,资金的撤回将被大大延迟。


但是,闪电网络的通道有两个主要特点:


1.   通道没有有效期设定。相反,他们使用检查序列验证/CSV的原始文件创建一个宽限期,来保证安全。只要两方合作,通道可以无限期存在。


2.   通道是双向的。支付可以双向发出,一笔交易的发出可以自动补充给接收的一方。即使有限资金锁定在渠道中,仍有无限量的交易笔数可以顺利通过。


总之,理论上讲,用户可以创建固定数量的通道,一生都可以使用。用户通过这些通道收取工资或款项,也可以通过通道发放资金,如此循环往复,不需要关闭或创建新的通道。


我在2012年文章描述的是,中心化网络(hub-based network),而不是点对点网格网络(p2p mesh network),点对点网格网络是动态的可以不断扩展的网络架构。这是闪电网络的新功能带来的可能性。


在之前的旧模式下,很多资源将用于维持通道,你必须要保证每个通道都很重要。为随机用户开启通道是行不通的。用户需要大型的、连接良好的网络中心,才可以将支付进行路由分配。


但是随着永久双向支付的开通,P2P网络有可能实现,从每个环节改善网络连接性,为任意方向的路由创造了新的机会。






闪电网络是万能的么?


闪电网络异常强大,比任何支付方法都要经济、快捷、可扩展无任何限制,有潜力可以涵盖任意金额的支付,无论是1万美元一辆的汽车,5美元一杯的咖啡,还是0.01美元一篇的在线新闻。


那些闪电网络的批评者只是没能够充分理解闪电网络,批评的声音都是因为误解而生。因此本文的目的是理清一些误解,建立概念框架,讨论闪电网络和它的优点。


但这并不意味着闪电网络没有真正的挑战和问题。


首先,闪电网络相比初始的比特币协议更为复杂。复杂的事物往往更难使用,更难落地。应用过程中更容易出错。


闪电网络的特征是,为了接收付款,节点必须联机。这是一个显著的可用性差异,带来了新的安全挑战。


安全挑战可以通过一些方法和机制来应对,但是这又带来更多复杂因素。


寻找支付路由也是非常有挑战的,即便支付路由存在,并且隐私模式与正常的比特币交易不同。


虽然我在此文中为闪电网络正名,但是没人可以确保闪电网络会像想象中那样可以正常运行。


或许等待闪电网络夺得大片江山,市场将不再需要它。硬件的飞跃也许在某天会让所有交易都可以在链上操作;或许密码原语,尤其是零知识证明(Zero—Knowledge Proof) 的进步会激发出新的设计,可以以一种更为优雅更为简练的方式解决规模化和可扩展的问题。


但是,尽管如此,我仍然相信闪电网络是一个非常强大的武器。我们应该有所准备,通过闪电网络或与其他解决方案配合,来发挥它的价值。



问问自己,我们需要什么?


大家一致认为,能够定义比特币未来方向的,是它的去中心化。


问题是,比特币在很多方面可能会变得中心化。在网络节点、挖矿制造商、挖矿运营、协议开发和更改的决策、交易、支付处理器等等领域都可能呈现出中心化。闪电网络中心也可能会呈现出中心化特点。


我想强调的是有很多折衷方法。一般情况下,从一个方面改善去中心化往往带来另一方面的不足。我们要努力的方向是,打造一个理想的中间地带,让所有的功能都得到充分满足。


举例来说,进行简单的链上扩容,如果把区块大小设定太低,那么交易将会非常昂贵,用户不得不依赖托管服务和交易处理器,导致中心化。如果区块大小限制太高,运行在完全验证的网络节点上成本将会非常高,导致节点过少,进而又陷入中心化。两者之间有一个理想的中间地点,交易和节点都不会太贵。


有人说,闪电网络会创造中心化,严格来说,是这样的。然而,经常被忽视的一点是,当闪电网络用对了,比目前的折衷方案更“去中心化”一些,同时又比折衷方案更加优化。通过闪电网络,你可以同时拥有便宜的支付、更多的网络节点以及闪电网络节点。


具体来说,假如地球上100亿人类都是用比特币作为全球货币,通过传统的链上扩展来实现。每个人每年发生1000笔交易,那么这意味着全年的交易量将达到10万亿次。假如每个交易是200字节,那么每年交易额的存储数据将达到2PB。要实现这个目标,我们必须需要增加带宽(大约每月200TB)和CPU的成本。


这意味着节点数不会很多。可是,能够被检测到的节点不多的话,网络就更容易被黑客、被政治力量等等关闭。


在理想情况下,闪电网络可以在每人每年1个交易的前提下运作良好。安全起见,我们假设每人每年产生10笔交易(总共每年1000亿笔交易)。这样,运行节点的成本将被减少到之前的百分之一。


这意味着每10分钟,将有400MB的数据被发送出。为了达到这个数据,我们或许需要添加大型的链上交易而不是用闪电网络来做;假如这种大型交易平均数额为1万美元,每年100亿次的交易将满足100万亿的GDP总额,区块将会增至440MB。


目前的比特币协议只能支持4MWU,大约3MB。很清晰的是,区块需要扩容,问题是何时扩容,如何扩容,花费多少钱去扩容。


我估计,链上交易的成本最终大约为1美元。如果你想在链上买一本咖啡,那无疑这个成本不低,但是如果想要做大型交易的话还可以接受,人们仍然会通过链上付款来做大额采购。


上面交易量的估计是基于链上支付是可以通过现有的支付体系去衡量的。但是一旦闪电网络体系被赋能,它将给真正小额支付的世界带来巨大改变;小额支付基本上不需要任何成本,并且没有任何规模限制,闪电网络将因此催生新的业务模式,链上交易将无法与之抗衡。全球的支付量级预计将达到每年10万亿笔,而且没有任何额外成本。



中心模式


闪电网络可以在两种主要模式下发挥价值—中心模式或/点对点模式。两种模式均可行。基于下面原因,我们将首先来探讨中心模式:


  • 中心模式的概念更易于描述

  • 跟人们头脑中多年的想法更为接近

  • 更为常见的说法是,中心模式与传统银行系统类似。


  我想说事实远非如此。


基本想法是这样的,假如全球范围内有大约M个中心提供闪电网络路由支付服务(打个比方,M=30万)。每个中心都有一个公开通道可以与其他中心联通,且成本不应该太高昂。


同时,每个终端用户都有K个此类中心的公开通道(K=10),每个通道的大概容量都均衡的,支付的发出和接受的容量是差不多的。


假如小王想给小李付一笔款,这个支付过程将经过三步来完成:从A点到A点所链接的中心X;从中心X到中心Y;再从中心Y到B点。三步完成支付,速度很快,成本也很低。因为A点与10个中心相连接,B点也是10个中心连接,即便某个中心暂时宕机也很容易找到支付通路。


A -> X -> Y -> B


A点的每个通道容量是有限的;普遍的误解是一旦通道用完,小王需要花钱买一个链上发送端以新建通道。然而,这些通道是双向的。A不可能凭空创造钱(我们说的是比特币,不是法币),因此小王不仅仅是付钱给别人,她也从别人那个收钱,她通过自己的通道完成这些流程。每一笔收到的钱会倒流入这些通道中,能够再次使用。


常见的场景类似于每月员工收到一笔薪水并在整个月把这笔薪水花掉。每月初,员工小王的所有通道里面都没有向外流的容量;所有在通道中锁定的资金归属于所连接的中心。等于说,每月月初没发工资的时候,小王是没钱可以花的。等小王发了工资,有了钱,这些钱就分散到不同的通道,去补充到所有的通道。跟每月收到的工资一样,小王有了外流容量,可以用在整个月的花销中。.


当然啦,如果小王不想每个月都过得紧紧巴巴,那么每月的花销不一定要跟收入完全一样。她可以在通道中留有一些剩余空间,这样通道总容量比月薪高出一些,就可以。


更为实际一点,小王想每月把月薪的10%用来储蓄,储蓄数年。如果储蓄是其他的资产形式,譬如黄金或股票,我们可以通过通道来购买,跟买其他的东西并无两样。但是,如果储蓄比特币—那么即使她在通道中有额外容量,随着时间的推移,这些容量会填满。如果每月进账10 mBTC,出帐9 mBTC,通道中的资产负债均衡会被打破,资产大于负债。


最终,到达某一个月,小王的通道里面就没有入账容量了,她无法通过通道接收当月工资。这时,小王必须创建一笔交易,从非闪电网络地址来接收资金,并且要开辟新的通道以增加入账容量。


如果小王为了长期存储而关闭一个通道,她能够确保将该通道充分利用;如果通道中尚有剩余空间,该空间不是0但是仍然不足的话,她可以用一个三角形的结构来把支付转给自己,这样一来,另一个通道就会得到补充,被关闭通道的全部容量被她收入囊中。


假设K=10个通道,每月10%的储蓄,在任意时间都成立的话, 那么通道容量总和就等于小王的月薪,大约每月需要重新开启一个通道。这个数字随锁定资金的百分比而直接减少。


回到整个网络架构的话题,中心之间的通道平衡也需要考虑进来。举例来说,假如A总是通过中心X和Y向B发送交易,同时也有很多用户也通过X->Y这个连接的话,那么这个通道很有可能会饱和,X到Y的容量空间就被用完了。


通过资费调整和用市场力量来选择支付路径,这个问题迎刃而解。只要X和Y之间的通道是平衡的,X和Y均可以收取正常的服务费。而一旦X->Y路径容量饱和了,则可以收取更高的费用,这样用户就会选择其他的支付路径。换个说法,如果支付业务量不饱和,可以收取较低的服务费,鼓励用户选择X->Y的支付路径,补充这个通道的容量。极端情况下,甚至可以收取负的服务费(等于补贴用户)。这样的调整策略,加上用户希望把支付的服务费降到最低的意愿,同时又有很多的支付通道选择,很好的网络连接条件,“看不见的手”就会发挥作用,保证整个网络的平衡和良好的运作。


前面我们说了,M=30万个中心、N=100亿用户、K=10通道/用户,按照平均用户所拥有的通道和按照中心所连接的通道来计算,总数是一致的。这样,整体成本得以平衡。


然而,如果中心太少,或者建通道的成本太高,那么我们可以考虑一个4步走模式。这样的话,我们可以有400万个中心,每个中心与4000个其他中心相连。如果安排得当,任意两个中心间都可以找到一个中间点。


这样一来,每次小王想给小李付钱的时候,她可以选择一个A点,A点与X中心连接,小李选择一个B点,B点与Z中心相连,X和Z中心之间有一个中间点Y。那么这样付款的路径就变成了A -> X -> Y -> Z -> B。


4步走路径会比3步走耗时更长一点,也会更贵一点。但是这种网络拓扑结构让我们有更大数目的网络中心,启动成本也会大大降低。


即使我们假定任意两个节点之间只有一个中间点,在选择路径遇到问题时,我们仍有很大的灵活性,因为X和Y的选择更多元。


不用赘述的是,不管是在3步走还是在4步走模式下,无需所有节点都是完全连接在一起的。即使中间有些连接缺失,我们还是可以找到其他的路径来替代。这就是一个强健的、充分连接的网络的强大优势。


但是,一个无法忽视的问题由此而生……



闪电网络跟银行系统一样么?


到这里,我认为答案已经很清楚了。闪电网络与银行系统根本不一样。


最大的不同是,闪电网络并不持有你的钱。钱存在通道中,通道锚定在比特币区块链中,只有你授权,这笔钱才能动。如果该通道的另外一端出于恶意或行为不当,拒绝合作,你可以单方面关闭该通道,以正常的比特币收回这笔钱。


闪电网络的这项能力不需要通过实践来验证。单是可以轻易撤销这一点,就会让交易对方遵守行为规定,提供良好的服务。更不用说,在极端情况下,一个完全中心化的闪电网络,是由一个中心与所有人连接起来的。相比传统银行体系上,有了重大改善。


此外,运行闪电网络比运行银行更为简单,成本更低。正如我们所观察的,几百万个中心只需花数千美金就可以搭建起来。


这意味闪电网络可以通过两大优势让其保持竞争力—低门槛和无厂商锁定。使用闪电网络的费用可以忽略不计,消耗的资源所带来的成本非常低。


隐私问题仍然存在。闪电网络比传统网络节点更了解用户的财务行为。然而,闪电网络所掌握的信息还是非常少的,可以获取接收客户端的公开密钥,但是并不知道他们在真实世界中的身份和付款原因。此外,由于用户不会公开每一笔付款交易,相比传统模式,其他节点所了解的会更少。闪电网络的隐私保护模式与标准比特币不同,但是由于它限制了获得支付信息的相关方,也会因此更加安全。


关于审核机制,闪电网络比链上系统扩容可以更好去避免审核。因为闪电网络中心和网络节点很多,链上扩容的节点数更少,更难以诱骗闪电网络交易进入审核中。



闪电网络成本是多少呢?


通过闪电网络付费的终端用户所要付出的成本,将反应在运行闪电网络的中心里面。预估该系统的精确成本很难,但是我会给出一些初步的数字。在4步走模式下,所有中心的总成本,可以被拆分为下列项目:


运行节点的成本:由于运行闪电网络不一定需要完全验证的比特币网络节点,而运行节点的费用本身也不高,因此此项费用可以忽略不计


支付处理和路由成本:因为每笔闪电网络支付只涉及到闪电网络上的节点,而比特币交易则涉及到网络上的所有节点,处理每笔交易只需要很少的设备来发送数据进行签名,此项费用可以忽略不计。


系统设置和运营成本:用户只需要下载,安装和运行一套软件系统,此项费用可以忽略不计。


创建通道成本:每个中心都有4000个通道与其他中心相连接,这些通道的寿命都有10年的时间。总共400万个中心,我们预估每个通道开启的成本为1美元,那么总共的成本是1美元×400万中心×4000通道/10年=16亿美元/每年锁定在通道中的资本的时间价值:这就很难计算了。如有费用调整很靠谱,我相信闪电网络可以运行很好,每个跨中心通道的容量与一个普通人每月月薪的十分之一差不多。这意味着,小王最多可以付给小李总共5个月的工资,之后他们之间的所有路径就饱和了。但是,小王和其他用户之间的中间通道还是不会饱和。假如平均月薪为1000美元,这意味着锁定在通道中的总价值是1000美元×400万中心×4000通道/10年=1.6万亿/每年。因为比特币是抗通胀的,其时间价值是很低的,我们可以估计5%的每年时间价值和安全成本。这样来算,每年的成本是800亿美元,是创建通道成本的50倍。


总体算来下,所有中心的成本是每年不到1000亿美元。按照每年10万亿的交易量来计算的话,这意味着每笔交易的平均成本是不到1美分。


请注意,这是平均值,不是最小值。运行闪电网络中心的主要成本来自于创建通道(这笔费用根据所付出的金额而有所减少)和锁定资金。这样一来,收取的费用会与付出的费用成一定比例。这就意味着,所有付款的平均费用,无论大小,都是1美分,但是小额付款的费用会更低,最低可以达到一美分的百分之一甚至千分之一。真正的微支付将因此得以实现,在那些1美分的支付交易费用仍然付不起的贫困国家中微支付将成为现实,一般的支付都是小额度的且非常便宜。


上面的计算中,我没有算进来需要用户承担的创建自己渠道的费用。


以上我们的讨论是闪电网络多么便宜。需要再次强调的是,闪电网络多么迅速。与链上交易需要在区块进行安全确认所不同,闪电网络依赖于区块链上已经得到确认的公开渠道的建议,因此每个交易都可以瞬间确认并得到安全保障。与可扩展性和交易成本相比,闪电网络的快速敏捷性让它更加重要。



P2P点对点模式


我们已经花了很多篇幅来讨论闪电网络是怎样在中心化模式下运作,但仍然保持去中心化特性的。但更有意思的一点是,闪电网络的愿景是真正的点对点网格网络。


我们讨论了3步走和4步走模式。如果考虑一个极端的情况,我们看一下让任意两名用户通过多步(T次跳)连接,究竟需要什么。如果我们把所有连接都正确设计,每名用户所需要的通道数量可以达到最少。假如T=10步,N=100亿用户,每名需要与K=15名用户相连接。


当然啦,这样精心设计的网络不是真正的点对点。所以,我们可能需要一个完全随机的网络,其中的NK通道数量在用户之间不均匀分布。结果证明,如果K大于N的自然对数的一半(上述情况中K至少为12),就可以达成效果。


上述的计算结果没有解决所需步数的问题。在阈值K=12时,这个数是非常大的。然而,增加K,我们减小T值。大部分随机图表的研究结果是接近极限,对于100亿节点网络的数字模拟是非常困难的,但是如果缩小规模来推断的话,按照K=20来计算,任意一对用户需要平均8步来建立连接,连接路径的可能性非常多。增加T值将引起连接路径的指数级增加。假使任意两人的连接通过12步来完成,那么两人间的连接路径将达到数百万。


以上的这些都是假定我们在一个完全随机的网络上。实际上,完全随机的情况不存在,每个用户都有与来自同一地区或同行业的人有更多的经济活动,他们所关注的活动也有这样的一些地域或行业偏向。次级网络中的交易可以通过更少的步数来完成。


同时,我们没必要担心偶尔发生的远程点对点交易--如果用户需要向网络另外一端的人发出一笔交易,他只需要开启一个新的通道通过链上交易来完成,在未来就可以很容易为网络远端的用户付款。


由于网络不是完全随机的,而是在实际需要的基础上建立起来的,闪电网络的性能数据比随机图表模型下预测的更好。


用户通过不同路径连接。在这些路径想要去到的方向上,有足够的容量吗?


对中心模式的分析在这里也适用。用户要努力让他们的通道达到平衡,通过费用来调节。这意味着,无论何时一项支付被分配,在多种路径中,能够最多补充其他通道的将会被选中。


在个人层面上,用户希望收到的付款价值会与发出的一样多,因此用户的个人通道将会是平衡的状态。大额的资金流动,或者调整由储蓄引起的不均衡,可以临时在链上交易。



聚焦未来


未来的闪电网络将会是那种形式呢?中心模式还是点对点网络?


为什么不能两者兼有呢?


中心模式将会存在,用户能够连接到网络中心。用户也能够与他们的同级,譬如朋友和商业伙伴以点对点连接。大部分付款交易走网络中心的短路由。但是,用户和他们的同级的互联互通会保证网络的强健,即使这些中心可能会发生一些故障。


在错综复杂的通道丛林中寻找最佳的路由通道将有赖于客户端软件,而这并不容易。如果网络路由能够正常运转,我认为没有理由闪电网络无法良好运行。


我已经开始专注分析未来所有人都使用闪电网络的应用场景。当然,这可能还需要几十年的时间。怎么才能到达这个境界还是一个未知数。但可以肯定的是,缓慢的、稳定的、有机的增长将发生。从早期用户连接朋友和服务提供商开始,并在有需要的时候创造新的通道,网络将会被建立起来,并发挥越来越多的价值。


闪电网络,你觉得未来前景如何呢?



热门文章






营长招人啦


CSDN区块链大本营招采编2名:

1. 对区块链技术有一定的理解,对大公司动态有极强敏感性,且有深度剖析的楞劲儿。

2. 出稿速度快,具有每天报题和出稿的能力。

3. 有能力采访行业高端人物,能将其观点进行深刻呈现。

4. 相关媒体经验2年以上。

5. 英语6级以上,能快速编译。

6. 本科以上


待遇:

绝不低于行业水平,只要有才,我们愿意给你一切资源。

邮件发送:puge@csdn.net

邮件注明:姓名+区块链+采编应聘


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/tWF7rJKKRl
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/10433