闪电网络(上)|如何突破“不可能三角”:用Solidity语言重新实现闪电网络技术原理_SMC:imtoken里的usdt提现人民币教程

闪电网络(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-

数据:比特币闪电网络观察到的节点数量超4万个:金色财经报道,根据1ml数据显示,比特币闪电网络观察到的节点数量已经超过4万个,本文撰写时达到40,939个,过去30天涨幅1.62%。此外,当前比特币闪电网络容量达到5054.71 BTC,约合96,750,306.36美元,网络通道数量为82,402个(过去30天下降4.8%)。[2022/10/22 16:35:28]

动态 | 报告:闪电网络将在2020年关注隐私,展示更多用例和参与激励措施:近日,匈牙利研究人员发表对闪电网络的批判性研究报告,调查结果估计,来自交易费用的数据表明,闪电网络基础设施“在经济上是不合理的”。12月27日,Bitcoin Magazine发文称,虽然接受采访的大多数人不同意该论文的结论,但他们的担忧确实揭示闪电网络2019年以及2020年可能的主要优先事项。Blockstream研究员Christian Decker称,“我们同意作者的观点,隐私可能是2020年闪电网络的一个主要话题。”Bitrefill CCO John Carvalho也不认为闪电网络的低交易费存在问题,并预计未来一年会有显著改善。“归根结底,该网络的性质是P2P和自愿的,这意味着反对其合理性的论点必须驳斥该网络持续存在、正在增长并被当今的企业利用的现实。在我看来,我们只是触及表面,闪电网络将在2020年展示更多使用案例和参与激励措施。”此外,他指出,闪电网络从未承诺解决离线隐私问题,这更多是工程师和用户隐私文化的副作用。而且,在链上数据的背景下,“有能力观察闪电网络上一些资金流动并不意味着你有有用的外部污点可以应用于它。”(Bitcoin Magazine)[2019/12/28]

动态 | 澳大利亚程序员警告用户闪电网络的漏洞:澳大利亚软件程序员和比特币闪电网络程序员Rusty Russell警告用户,“各种基于闪电网络都存在安全问题,可能导致资金损失。”拉塞尔发布推文敦促闪电节点运营商尽快更新他们的软件。根据消息,他的警告涉及0.7.1之前的所有C-Lightning版本、0.7之前的LND版本和0.3之前的ECLAir版本。Russell表示完整的细节将在4周内发布,请在此之前进行升级。”[2019/9/1]

动态 | 比特币侧链Liquid即将整合闪电网络 已发布实验性代码:比特币技术开发公司 Blockstream 宣布即将整合旗下比特币侧链 Liquid 和比特币闪电网络实现方案 c-lightning,并发布早期实验性代码。在规划中,Blockstream 还将在 Liquid 的闪电网络上支持其他资产的转账和闪电网络中的匿名转账。Liquid 是一条由 Blockstream 开发的比特币侧链,其设计目标是扩展比特币主链的限制,特点包括资产发行,更快的确认时间和匿名转账。[2019/8/1]

动态 | 闪电网络通道数量达到31204个 过去30天涨幅超过30%:据1ml.com数据显示,闪电网络节点和通道数量呈现持续上升趋势。目前,支撑网络的节点数量达到6902个,在过去的30天中上涨了18.90%,而通道数量已经超过30000个,目前达到31204个,在过去的30天中上涨了37.70%。闪电网络承载能力目前为733.69个BTC,相当于280万6653美元。[2019/3/3]

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

金宝趣谈

[0:15ms0-4:404ms