闪电网络(上)|如何突破“不可能三角”:用Solidity语言重新实现闪电网络技术原理_BOB:LIC

闪电网络(LightningNetwork)是JosephPoon和ThaddeusDryja在2015年合著的白皮书中提出的。它在比特币社区中产生了很大反响,在众多关于比特币的论文和白皮书中,被公认为排名第二,其价值仅次于中本聪的创世论文。由于闪电网络依赖于隔离验证,一直停留在概念和内部开发阶段。从2017年比特币隔离验证分叉之后步入正常的发展轨道,2018年3月,LightningLabs开发并推出了第一个测试版,之后ACINQ和Blockstream两家公司也相继推出了不同的实现方案。根据统计网站1ml的数据,闪电网络目前有8,204个节点,37,901个支付通道,支付通道总计有1,021.37BTC(约534万美金)。说明闪电网络在过去的一年中取得了显著增长。闪电网络的愿景是解决比特币网络的扩容问题。众所周知,比特币的初衷是实现一个端到端的电子现金系统,为全世界提供一个去信任的、7x24小时服务的电子支付网络。但是比特币的性能却远远达不到要求。按照平均每个交易300字节计算,比特币的平均吞吐量是5.6TPS。然而Visa的峰值吞吐量可以达到47,000TPS。如果对标这个吞吐量,比特币的区块大小要扩张到8GB左右,每年要新增400TB的区块数据。这显然是不现实的。除闪电网络之外,区块链社区同时也提出了众多的扩容解决方案,比如大区块、DPoS、DAG、分片、侧链跨链等。这些方案在比特币的分布式账本技术基础上做了优化,例如调整配置参数、优化数据结构、修改共识算法、账本分区处理、优化网络资源管理等等。但目前来看效果并不理想,在付出了高昂的代价(增加存储量、增加网络流量、增加逻辑复杂度、弱化去中心化)之后,却只是获得了非常有限的性能提升,和Visa相比依然还有几个数量级的差距。唯有闪电网络脑洞大开、另辟蹊径。由于比特币智能合约的复杂性,不利于理解闪电网络的技术原理,OKResearch团队特别使用Solidity语言重新实现了闪电网络,深入理解闪电网络的技术实现方式。现将闪电网络的基本流程和原理抽象出来,方便大家快速理解。01闪电网络的关键技术原理闪电网络的核心解决思路是,创建临时的链下支付通道,使得收付款方的多笔往来交易在链下记录更新,只将最终的支付结果在链上记录,这样可以使得大量的交易不必等待链上的区块更新共识,从而提高支付效率。如何实现不上链的交易也能有最终性,以防止篡改,是闪电网络方案中的核心内容。1、闪电网络解决方案建立在三个重要的概念之上:虚拟银行、共同承诺以及支付通道。1)虚拟银行链上智能合约模拟银?机构,作为Alice和Bob的债务?。虚拟银行具备以下特征:?微型:只有两个账户:Alice/Bob??需信任:公开、透明、不可篡改、不可伪造、不可撤销??户?治:Alice和Bob共同管理银?资产?双重签名:资产重新分配必须要Alice和Bob双?共同签名2)共同承诺双?对债务调整?案达成?致,并且双?签名。此消息并不?刻?播到链上,?是由双?存储在本地,称之为共同承诺。共同承诺是双?真实意愿的表达,是彼此之间对资产分配?案的承诺,具备以下特征:?不可伪造?不可篡改?可以覆盖3)?付通道?付双?以虚拟银?托管双?的资产,通过共同承诺重新清算双?的存款余额,以达到价值转移的效果,这种?付?具称之为?付通道。2、承诺方案根据支付通道的直连和非直连区分为:RSMC承诺方案、HTLC(HashTimeLockContract)承诺方案1)RSMC承诺方案参与方包括进攻?、防御?。RSMC承诺方案通过诚信保证?机制防止作恶动机。在进攻方发起清算申请时,防御?的资?如100美??刻兑现并返回防御者账户。而进攻?的资产100美?将作为诚信保证?被锁定,锁定时长为智能合约设置的freeze_time参数。如果,防御方发现当前进攻方要求分配的承诺?案是已经被撤销的,那么防御?可以在锁定期内通过解开撤销锁,取?进攻方抵押的诚信保证?作为此次罚?。反之,锁定期后,进攻?将可取回??的诚信保证?。RSMC承诺方案一式两份,互为对偶承诺。进攻方和防御方各持有一份,对于虚拟银行来讲,他们具有同等效力。对偶承诺可以防止一方的故障导致支付通道锁死,任何一方都有兑现承诺方案的主动权。?两份对偶承诺的相同点:编号、资产分配?案、资产冻结时间。?两份对偶承诺的不同点:进攻方和防御方位置对调,签名的位置对调,进攻?不同(诚信保证?、撤销锁)。RSMC承诺?案清算流程可分为三部分:承诺方案搭建过程:a)Alice和Bob建立#1RSMC承诺方案,并各自存入100BTC。RSMC方案更迭过程,即支付过程:b)Alice和Bob产生新的债权关系,重新建立#2RSMC承诺?案各自签名并互换,对资产进行二次分配。c)双?公开#1RSMC承诺?案撤销锁的私钥,同时#1RSMC承诺方案失效。RSMC方案可以被不断更换,每一次更换后承诺序号加一。RSMC方案清算,通道关闭过程(假设最新的承诺编号为N):d)Alice在#NRSMC承诺?案上签名,并向虚拟银行发起清算申请。e)Alice作为进攻方,自身的50BTC作为诚信保证金被冻结,而Bob的150BTC立即被释放。保证金冻结期间,Bob如发现被要求分配的承诺方案失效,例如是失效的#1RSMC承诺?案,此时Bob可随时通过之前公开的私钥解开撤销锁,取?进攻方抵押的诚信保证?作为罚?。f)如承诺方案未失效,则冻结期过后,Alice可拿回保证金。上文我们提到,RSMC已基本可以满足基本的清算要求,但其也存在明显的局限性。即通过RSMC方案进行结算的双?,必须建?直连的?付通道才能?付。基于此痛点,诞生了HTLC(HashTimeLockContract)承诺方案。HTLC可通过多个?尾相连的?付通道串联起来形成的?付路径,支持?尾双?通过?付路径完成?付,即没有直连的?付通道也能?付。2)HTLC承诺方案:保证?付路径上相邻的两个?付的原?性HTLC承诺方案涉及到两个新的元素:时间锁和Hash锁。?时间锁:约定在某个时间T之内提交才有效,超时则承诺方案失效。?哈希锁:预订?个数H,给出暗语R,使得Hash(R)=H,承诺有效;否则失效。通常情况下,HTLC方案包含了RSMC方案,在其中作为两个长期有效的RSMC方案之间的桥梁过渡作用。若时间锁及哈希锁匹配则可建立新的RSMC承诺方案,否则将退回至旧RSMC承诺方案。HTLC承诺?案支付流程:从左到右,前向建?承诺?案;从右到左,后向传递暗语R,完成?付。1.Carol?成暗语R,并计算H=hash(R),均发给Alice;2.Alice和Bob之间建立HTLC承诺方案,ExpireTime可设置为2T,Alice将H发送给Bob;3.Bob和Carol之间建立HTLC承诺方案,ExpireTime可设置为T。Bob将H发送给Carol;4.Carol提供H所对应的R给Bob,Bob进行核对。若没有超时?且哈希锁匹配,则按照HTLC分配方案建立长期有效的RSMC承诺方案,同时撤销临时的HTLC承诺方案,此时,HTLC承诺方案就完成了自己的桥梁作用。如果Carol提供的R不匹配或未能在T时长内提供R值,则HTLC承诺方案失效,退回至上一个RSMC承诺方案。5.Bob将Carol提供给自己的R传递给Alice,Alice进行核对。之后同上述Carol和Bob。三者中,Alice和Carol是最终发生交易的两方,Bob处于做市商角色,起到为Alice、Carol构建支付通道的作用。实质上,任何与Bob建立支付通道的一方,之间都可以建立支付关系。Bob与Alice及其与Carol之间的承诺方案可设置为非等价的,例如Bob给Carol支付9.9美元,但之后收取Alice10美元,0.1美元即可作为做市商的通道费用。3.两种承诺方案中需要解决的主要风险:对手方作弊风险、支付通道的非原子性。1)通道内对手风险:有一方不配合怎么办?对于RSMC方案来说,从#N-1到#N承诺方案,?付?有不撤销#N-1的利益驱动,需要外部?付场景约束来促使其公开撤销锁。对于HTLC方案来说,从#N-1到#N承诺方案,接收?只有公开暗语才能得到?付?额;而?付?如果不撤销#N-1,接收?可以直接向虚拟银?兑现#N-1方案。所以HTLC构建了一种均衡的?元博弈规则,使得理性的参与者不会随意作弊。2)跨?付通道的对?风险:相邻通道支付具备原?性先沿着?付路径,从发送?向接收?建?依次建?HTLC承诺?案;然后反?向,从接收?向发送?传递暗语。所以?定是先完成右侧?付,然后再完成左侧?付。对于任意?个中间节点,向右侧的节点完成了?付,意味着规定时间内获得了暗语R。而左侧的时间锁?右侧的长,所以中间节点?定能够从右侧节点获取等额补偿。即做市商利益多来自于锁定时间较短的一方。反之,右侧的节点没有完成?付,那么它就?法得知暗语R。所以左侧的?付也?法完成,这也就是相连通道支付具备原子性。整体来看,信任机制是建立在双?的?治基础之上的。在决策阶段,防御?先签名、进攻方后签名,故防御方具有初审权、进攻?具有复审权;在执?阶段,进攻?具有主动提交权、虚拟银?具有执?权、防御?具有一定期限内的审查权。02'三元不可能'的根本症结与'闪电网络'的关键突破点比特币是一种点对点的电子现金支付网络,其关键突破意义在于使得电子支付拥有了“现金支付”的特点,也就是“交易即结算”——价值符号的转移即代表价值转移,资金的信息流传递与债权债务关系转移同时完成。而电子支付之所以难以实现这种同步性,根本上因为电子时代表示资金的“数字”具备可复制性,导致两个根本性问题:确权问题及双花问题。对于确权问题,比特币采用了签名的方式来解决,即谁拥有私钥就拥有了比特币的支配权。对于双花问题,以下图为例,Bob接受Alice转账时,需要确认Alice没有向任何人转账过相同一笔资金,这就需要遍历全量账本,防止双花本质上是一个无边界的不存在性证明问题。中本聪在《Bitcoin:APeer-to-PeerElectronicCashSystem》中写道:Weneedawayforthepayeetoknowthatthepreviousownersdidnotsignanyearliertransactions.Forourpurposes,theearliesttransactionistheonethatcounts,sowedon'tcareaboutlaterattemptstodouble-spend.Theonlywaytoconfirmtheabsenceofatransactionistobeawareofalltransactions.解决双花问题的唯一方案是获得所有交易历史记录,中本聪在此基础上提出了分布式全局账本的方案。但分布式账本的各项成本十分高昂。?存储:每?个验证节点都要保存?份账本的全量副本。?验证:每?个验证节点都要验证所有交易。?通信:每?个验证节点都要和其它节点通信。?共识:每?个验证节点都要为共识提供算?。并且,每?笔交易被确认所需要的存储、计算、通信复杂度与验证节点的个数N成正?。如此一来,在越分散的节点中达成全局共识则需要越久的时间,去中心化、安全性与交易性能难以兼顾,也就是我们常说的区块链扩容的“三元不可能”。过去数年,区块链技术社区不断涌现出新的扩容解决方案,比如大区块、新的数据结构,新的公式算法以及分片技术和侧链跨链技术等。其中,DPOS和PBFT共识算法是典型的牺牲一定的“去中心化程度”,缩小了参与验证交易的共识节点的范围。而当前非常热门的分片技术和侧链跨链技术,则在此基础上更进一步,虽然同样是让交易验证在更小的节点范围内进行,避免低效的全局共识,但是验证节点开始有了“组”的概念,也就是避免一直让少量固定的节点完成交易验证,造成操纵作弊风险。但是到目前为止,分片技术派仍处在早期阶段,如何攻克分组的“随机性”以及“平衡性”、“依赖性”等问题尚需要更进一步的探索和论证。也就是从实战层面上来讲,尚未有链上扩容方案实现了对“三元不可能”的突破,仅有“闪电网络”这种链下扩容方案一枝独秀!究其根本,是因为闪电网络跳出了“点对点现金支付”这个概念,引入了类似银行转账的“债权清算”机制,即A向B转移的并不是对“现金”的所有权,而是对“虚拟银行”的债权。在双花问题的解决上就由“Bob需要向尽可能多的人确认Alice没有向任何人转账过”转变为“Bob只需要向虚拟银行确认账户余额”就可以,将一个原本无边界的不存在证明问题大大简化。但是与传统银行不同的是,闪电网络中的“虚拟银行”并不涉及“信用中心”范畴,而是通过智能合约技术来保障虚拟银行将会诚实履行债权清算的义务。本质上,闪电网络通过创建链下支付通道,在无数个小组内完成了确权和防止双花的动作,极大的缩减了需要全局共识的交易数量,同时由于各链下小组之间并无强依赖性,使得局部的安全性对整体安全性威胁降低。03闪电网络的主要技术优势闪电网络的技术优势主要包括以下5项:?低交易费?需矿?参与,只需为中间节点?付通道租??实时确认少数节点参与?付,交易时间?百毫秒至?秒不等??并发?付通道上限=?特币TPSx3600x24x?付通道的平均?命周期/4=3,952,800并发数上限=?付通道上限/每个?付占?的通道数=658,800*?付通道的平均?命周期来源:https://1ml.com/statistics;每个?付占?的通道数根据六度空间理论设置为6。?数据存储小绝?多数数据在链下存储,对于链上的存储压?不??隐私性交易数据不上链,不会暴露隐私更多关于“为什么债权清算模式具有更高的效率”以及“闪电网络目前存在哪些缺陷和新的技术解决方案”,我们将在后续文章中展开。-END-

闪电网络客户端 c-lightning 于比特币主网实现“双重资金”通道:据官方消息,由 Blockstream 开发的闪电网络客户端 c-lightning 已在比特币主网上开通了“双重资金”闪电网络通道(Dual-Funded Lightning Channel)。据 Blockstream 介绍,通常情况下,当一个闪电节点打开一个通道时,只有启动该通道的节点可以添加资金,之后可能会产生通道资金不平衡的问题,而双重资金通道是指在打开闪电通道时,两个节点都可以为通道提供资金。所以 Blockstream 认为,双重资金通道可以降低向闪电网络部署资金的成本。但是该方案的标准还处于草案状态,为了使得它成为一个标准,必须要由另一个闪电网络客户端实现。[2021/5/8 21:38:29]

闪电网络节点数量已达17356个:金色财经报道,据1ML.com数据,目前,支撑网络的节点数量达到17356个,相较30天前数据,环比上涨7%;通道数量为38347,相较30天前数据,环比上涨2.5%;闪电网络承载能力目前为1108.34BTC,约合5498.77万美元。[2021/3/4 18:16:05]

Bitrefill首席执行官:由于缺乏交易所支持 闪电网络采用率远低于预期:Bitrefill首席执行官Sergej Kotliar在播客节目中详细阐述了闪电网络对比特币网络的意义,以及它的采用水平,以及是否可以在隐私特性和作恶者之间建立某种联系。Kotliar认为,当涉及到能够帮助比特币和加密行业整体发展的技术进步时,闪电网络仍然代表了一种解决方案,可以在加密领域带来循环经济,使其极其高效和划算。

Kotliar还称:“我认为高额的交易费是推动闪电网络采用的一个动力。但仍然没有足够的交易所来支持它。考虑到这个行业是围绕着各种各样的投机用途,而且大部分流量都发生在交易所之间,我认为这件事至关重要。”Kotliar还指出,当涉及到通过闪电网络等解决方案进行的与隐私相关的升级时,它们被低估了,而作恶者利用这些升级的可能性仍然只有一小部分。(AMBCrypto)[2020/9/12]

闪电网络节点数量已达13194个:金色财经报道,据1ML.com数据,目前,支撑网络的节点数量达到13194个,相较30天前数据,环比上涨2.12%;通道数量为37462,相较30天前数据,环比上涨1.3%;闪电网络承载能力目前为999.29BTC,约合958.65万美元。[2020/7/25]

声音 | 李启威:比特币与闪电网络更贴近比特币白皮书原始构想:据sludgefeed消息,根据1ml.com的数据,闪电网络的网络容量在一个月内飙升了近200%,而同期节点数量增长了8%多。莱特币创始人李启威(Charlie Lee)近日则表示,比特币与闪电网络更贴近比特币白皮书的标题,即“点对点电子现金系统”,这是中本聪的构想。[2018/11/19]

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

[0:93ms0-1:354ms