本文共 23394 字,大约阅读时间需要 77 分钟。
摘 要:
近年,随着比特币一步步迈入更多人的视野,其扩展性问题一直如影随形甚至日趋严重,已经成为笼罩在比特币头顶的一大朵乌云。为此学术界和产业界提出了各种解决方案,如区块扩容、分片、侧链等。这其中,支付通道方案中的代表闪电网络恰如其名,似一道穿云而过的闪电,成为解决扩展性问题最耀眼的方案之一,其后雷声阵阵,引众人回首。
自2015年闪电网络白皮书发布后,Lightning Labs、ACINQ、Blockstream作为三个主流的闪电网络技术团队使用不同的程序语言实现了闪电网络的技术框架。许多社区开发者也加入到闪电网络的生态中开发了钱包、游戏、购物、即时通讯等贴近生活场景的应用。迄今,闪电网络上已有1.3万多个节点,3.7万多条支付通道,通道中容纳1000个上下的比特币。技术角度而言,闪电网络是比特币二层链下的扩展性技术,由微支付通道演化而来,其核心技术包括RSMC(Revocable Sequence Maturity Contract,序列到期可撤销合约)和HTLC(Hashed Time Lock Contract,哈希时间锁定合约)。微支付通道提供链下的点对点单向支付的能力,相比链上的交易,性能有质的提升,但其缺陷在于通道有时限且资金只能单向流动;在微支付通道的基础上,RSMC技术解决了资金单向流动的问题,且使支付通道不再有时间限制,为用户的两两交易提供了即时高性能的解决方案;HTLC将RSMC进一步扩展,解决了多方参与资金路由时产生的信任问题。这些技术互相融合,形成了闪电网络。
不可否认,闪电网络的诞生为比特币的扩展性提升引入了能产生质的飞跃的技术解决方案,同时其交易费低廉、支持跨链交易的特性带来了新的应用场景,也为比特币生态注入新的活力。但与闪电网络的优点一样显眼的是闪电网络的缺点,集中化、稳定性、隐私、易用性等都是其亟待解决的问题。
新技术带来新问题,新问题又会被新技术解决,如此循环推演。闪电网络上亦是如此,针对闪电网络各个方面的问题,陆续有研究和研发团队提出新的解决方案。保障用户离线状态下资金安全的瞭望塔、实现链上链下资金便捷互通的潜交换、逾越通道支付上限的原子多路径支付等等各项扩展技术和服务陆续登场。
展望未来,闪电网络有望成为比特币生态中的技术基础之一,将吸引更多生态中甚至生态外的元素加入其中摩擦火花,更进一步地,其有可能成为个人金融业务、零售行业的重要支付工具得以应用。这个过程中,技术人员和生态运营人员也需要为闪电网络的稳定性、安全性、隐私性、易用性、开放性等做出更多的努力。
作 者 【火币研究院】袁煜明,赵文琦
作者联系方式
火币研究院:huobiresearch@huobi.com一、 闪电网络的诞生
2008年比特币白皮书发布,将加密数字资产和区块链概念与技术带入大众视野。但比特币自发布以来一直伴随着若干技术问题。1.交易延时问题:每笔交易的确认需要等待至少6个区块,也就是至少1个小时,与之形成对比的是当今各类电子支付毫秒级的交易确认速度;2.吞吐量问题:受区块容量和共识算法PoW耗时的约束,比特币全网每秒只能处理7笔交易,而2019年天猫双十一的每秒订单峰值已达54.4万笔;3.存储量问题:迄今比特币区块链上已有逾60万个区块,约270GB,且在可预见的将来只增不减,远高于现今各类手机和PC端软件的存储量。在其余区块链上,这些问题同样存在,这些技术瓶颈严重制约了加密数字资产与区块链大规模商用落地引发产业变革的能力。
由此,学术界和产业界提出和实现了各种链上和链下的改进方案。1.链上解决方案如区块扩容(比特现金为例)、更换PoW中的算法减少挖矿耗时(莱特币为例)、分片(Sharding)、提出更轻量级的共识算法(PoS为例)等;2.链下解决方案如隔离见证(SegWit)、楔入式侧链、平行链、Plasma、支付通道等。如表1为提升扩展性的各类技术方案的对比。
闪电网络作为支付通道中的代表,被视作解决比特币扩展性问题最闪耀的技术解决方案,自2015年被提出之后近几年一直备受关注。曾经使用10,000个比特币购买了两个披萨的Laszlo Hanyecz,在2018年再次使用闪电网络支付了649,000聪购买了两个披萨。2019年1月发起的一场名为“闪电火炬”的活动更是声势浩大,“火炬”传递途径覆盖全球几十个国家,众多科技界的大拿都作为火炬手参与传递。短短5年时间,已经有多个团队实现了各个语言版本的闪电网络,其上也涌现出了各类LApp。迄今,闪电网络已经拥有了1.3万多个节点,3.7万多条支付通道,通道中容纳1000个上下的比特币。
究竟闪电网络为什么可以为比特币的扩展性带来质的飞跃?又为什么没能一举解决比特币网络的扩展性问题?本文将从闪电网络的技术原理、贡献与局限、扩展技术及生态情况等多方面对闪电网络做深入探讨。
二、 闪电网络的技术原理
“If a tree falls in the forest and no one is around to hear it, does it make a sound?”这句引言来自于18世纪哲学家George Berkeley,也是Joseph Poon和Thaddeus Dryja在2015年提出的“闪电网络(Lightning Network)”的理念根源。就像无人听闻的陨落无足轻重一样,日常重复的交易也不必人尽皆知。
对于比特币网络来说,交易双方如果有多次交易,大可不必将每次的交易都同步到网络的每个节点。只需将多次交易后,交易双方最终的资金分配状态上报给比特币网络,既可以保证资金状态的最终正确性,也可以缩减交易双方在低效的比特网络上的等待时间提升交易频次,还可以降低对比特币网络的计算及存储资源的消耗。可以说同时解决了比特币网络高延时、低吞吐的问题,打破了困扰比特币多年的性能瓶颈,也为降低交易存储量提供了极好的方案。
本小节将探讨“闪电网络”这个看似“完美”的解决方案的技术原理。闪电网络是基于微支付通道演化而来,将其单向支付通道扩展为双向支付通道,并通RSMC(RevocableSequence Maturity Contract,序列到期可撤销合约)解决双向通道中历史合约作废的问题,通过HTLC(Hashed Time Lock Contract,哈希时间锁定合约)解决跨节点交易的问题,最终形成了一张比特币链下的不依赖可信第三方和可信交易对手的支付网络。
2.1 单向支付的微支付通道
微支付通道的提出为交易双方建立小额的支付通道提供了解决方案,其具有高性能低手续费、安全性强、通道内资金单向流动及通道有时限等4个特点:2.1.1 高性能,低手续费
2.1.2 安全性强
2.1.3 通道资金单向流动
微支付通道只适用于Alice向Bob付款的场景,不适用于Alice与Bob互相转账的情形。通道在能力上并没有限制资金的双向流动,但从资金Bob流向Alice的交易是不可信的交易,即便Bob签署了一份付款合约发送给Alice,Bob仍可以将发生该份合约之前的合约签署发布,从而抵赖掉这次付款。2.1.4 通道时限
微支付通道通过时间锁机制保障了付款方的权益(上文2.1.2小节中提到),但同时会使通道最长只能保留到时间锁的到期时间。一旦到达截止时间,即便通道内的金额并没有完全被支付或者交易双方仍存在支付需求,通道会被关闭。如果不关闭,上例中,通道中的10个BTC将全部返还给Alice,Bob显然不会允许这样的情况发生,其会在截止时刻之前发布通道中最新的合约并关闭通道。2.2 更进一步的RSMC
为了给交易双方提供双向的及更长期的支付通道,闪电网络在微支付通道的基础上设计了RSMC(Revocable Sequence Maturity Contract,序列到期可撤销合约)。随之带来的是更复杂的签约机制和防抵赖机制。RSMC中主要涉及了5种交易:
2.2.1 支付通道的建立与交易
输出脚本的能力包含,1.将8 BTC归属给Bob;2.剩余2 BTC分两种情况处理,如果使用Alice的钥匙取款,则在等待100个区块后2 BTC才能归属给Alice,如果使用AliceR1(这把钥匙将在下文中介绍)和Bob的钥匙共同取款,则2 BTC会立即归属给Bob。因此,即便对手方Bob消失,Alice也可以通过广播C1a,在等待100个区块之后将自己的资金取回。
通过C1a和C1b交易的签订,双方建立了打款的信任基础,此时存款交易会被广播到区块链网络,Alice和Bob之间的支付通道就建立了。2.2.2 支付通道的正常关闭
当Alice或者Bob认为二者的资金交易结束或者想要取回双签名钱包中的资金时,可以将最新的“提交”交易在区块链上广播进行资金分配。
如图4所示,以Alice为例,她可以将C2a广播,C2a中的输出脚本将会执行触发D2a“分配”交易。分配时,Bob会立即取回4 BTC,但Alice还需等待100个区块的时间才能取回6 BTC。这是RSMC对率先提出结束交易一方的“惩罚”。 “分配”交易执行结束后,Alice和Bob关闭了交易通道并在比特币网络上登记了自己的最终资金状态。 2.2.3 RSMC中的抵赖与违约补偿 由于基于RSMC建立的支付通道并没有在物理上作废历史状态的交易,理论上,参与者仍可以通过广播历史交易来抵赖后续的付款交易。但RSMC巧妙设计了惩罚机制阻止此种情形发生。如图5所示,假设Bob企图通过发布State 1 的C1b来抵赖State 2发生的付款交易并关闭支付通道,D1b将会被触发执行,Alice在State 1中的余额2 BTC将立即被分配到Alice的账户中。剩下的8 BTC将通过RD1b“可撤回分配”交易,在C1b发布后100个区块分配到Bob的账户中。但100个区块的产生是很长的一段时间,如果Alice在此期间发现了Bob的抵赖行为,可以拿着Bob给她的BobR1撤回钥匙广播BR1b“违约补偿”交易,将双签名电子钱包中剩余的8 BTC全部拿走,同时使RD1b交易失效。被抵赖者既拿回了自己的资金,也通过罚没钱包中所有资金的方式惩罚了抵赖者。由此消除了支付通道内交易的对手风险。
值得一提的是,2019年瞭望塔机制已经开始逐步应用到闪电网络的节点中,即便用户处于离线状态,也可委托瞭望塔为其监控资金是否遭到窃取,一旦遭到窃取,瞭望塔会代替用户广播“违约补偿”交易。用户不再需要隔一段时间就上线检查对手是否作弊,大大降低了用户对闪电网络的使用成本。关于瞭望塔会在本文的5.1小节做更深入的探讨。2.3 编织网络的HTLC
RSMC在微支付通道的基础上为用户两两之间的资金交易提供了长期、高效的解决方案。但如果每两个用户需要交易时都需要建立新的支付通道,将会大幅增加网络中的连接数,每个通道的建立也都需要比特币网络的处理(必然就涉及了等待和交易费用),这并不经济。HTLC(Hashed Time Lock Contract,哈希时间锁定合约)提供了借用网络中已经建立的连接,使未直连的用户能够进行可信的资金交易的解决方案。只要网络中有一条路径能连接交易双方就可以进行可信交易,大幅提升了网络的扩展性。2.3.1 多方参与问题
如图6在没有HTLC的情况下,如果未建立支付通道的Alice想向Carol转账1 BTC,就需要与二人都建立过支付通道的Bob的帮助。Alice先将1 BTC转给Bob,Bob再将其转给Carol。这需要一个可信的Bob才能保证支付顺利完成,因为Bob可能会将这1 BTC中饱私囊。即便Bob可信,这种交易方式也违背了比特币的初衷——通过分布式账本避免依赖可信的第三方。2.3.2 HTLC的处理流程
HTLC通过巧妙利用哈希时间锁保证了中间的路由节点无法扣留路过的资金,也不需要依赖可信的第三方来做担保。如图7所示为HTLC的处理流程。
交易的发起。当Alice要向Carol付款1 BTC,正式发起交易之前,Carol会先自己准备好一个R,然后对其哈希加密生成H(注意无法通过H反推出R),即H = Hash®,并将这个H传输给Alice。 正向传递H建立HTLC。Alice拿到H后,会将H发送给Bob,并向Bob发起HTLC的转账交易。如果Bob能在15:00(仅是一个示例时间)之前告诉Alice H对应的R是多少,Bob就可以拿到1 BTC,否则,Alice可以拿回1 BTC。Bob在与Alice签订HTLC合约并拿到H之后,会对Carol进行相同的操作,签订合约并传递H,同时设立一个更早的截止时间14:00。 反向传递R清除HTLC。Carol拿到H后发现与自己持有的H相同,于是将R匹配到HTLC中拿到1 BTC,并告知Bob R。同理,Bob可以凭借R拿到Alice的1 BTC同时结束与Alice的HTLC。整个交易结束。 这个过程中,路由节点Bob要通过R才能拿到Alice的1 BTC,但为了拿到R,他不得不先向Carol交出1 BTC,无法中饱私囊,由此解决了中间节点作恶的问题。值得注意的是,链路上的锁定时间必须是递减的,假设Alice和Bob约定的截止时间是15:00而Bob与Carol的约定时间是16:00,则Carol可以在15:30时通过R拿走Bob的1 BTC,而Alice的1 BTC已经在15:00时取回了,Bob就会遭受损失。但由于Bob和Carol交易的截止时间是由Bob定的,所以Bob自身通过合理安排时间可以避免这种情况的发生。
同时,RSMC和HTLC可以在同一个“提交”交易中拟定的,具体形式如图8所示。2.3.3 路由与手续费
读到这里读者心中可能会有疑问,Alice如何知道Bob可以连接到Carol,而Bob又为什么要帮助Alice向Carol转账呢?这就涉及到HTLC的路由机制与费用机制了。路由
针对路由,HTLC使用了源路由与洋葱路由的机制。网络上所有的节点会发布自己路由信息和资金限制形成支付通道表。交易的源头(发起方)通过该表计算起点到终点的路径并指定交易通过该路径执行。同时,利用洋葱路由的机制,使得每一个路由节点都只知道相邻的节点,无法了解整条路径,由此达到保护隐私的目的。这两种机制均是已有的路由机制,被应用到了闪电网络的构建中。手续费
实际上,作为中间节点的Bob可以标明他路由的手续费,如0.01 BTC,那么Alice在向Carol转账1 BTC的交易中,会在与Bob签订交易时向其支付1.01 BTC,而Bob向Carol支付1 BTC,达到了手续费收取的效果。如果Bob是一个天价手续费收取者,Alice在计算路由方案时就会将Bob排除在外,选取别的路由节点。2.4 闪电网络
由此,RSMC与HTLC互为助力,RSMC解决资金单向流动的问题,HTLC解决多方参与的问题,在比特币二层链下形成了高扩展性的支付通道——闪电网络。三、 闪电网络的生态
3.1 开发团队
自2015年Joseph Poon和Thaddeus Dryja发布第一个版本的闪电网络的白皮书以来,陆续有团队加入到闪电网络核心技术研发的行列中来,详细信息参考表2。其中最主流的3个团队(或公司)是Lightning Labs、ACINQ及Blockstream,他们基于不同语言研发了闪电网络的协议及其关联核心技术,稍晚一些,Nayuta也加入了他们的行列。下面将对这四支团队做一些介绍。
Lightning Labs创建于2016年,是一支围绕闪电网络进行技术、产品研发的国际团队。其开源产品包括(Loop、LND、Neutrino等)旨在提供安全、可扩展的闪电支付系统,帮助用户高效的进行日常转账、支付操作。此外,Lightning Labs还进一步提供基于闪电网络的可验证、非托管衍生金融服务。从开源开发者社区来说,Lightning Labs从实践上打通了开源软件生态和下一代比特币金融软件生态。 ACINQ成立于2014年,是一个来自法国巴黎的创业团队,主要为比特币生态进行面向扩展性优化的技术研发并提供相关产品、服务。ACINQ基于Scala语言开发了闪电网络的实现Éclair(该单词在法语中正是“闪电”的意思),被认为是最主流的闪电网络协议实现之一。此外,基于Éclair网络,ACINQ推出了相应的产品栈,包括Phoenix、ACINQ Node、Strike等。Blockstream创建于2014年,是比特币生态领先的技术、服务提供商,专注于包括密码学、分布式系统方向上的研究。Blockstream的核心产品c-lightning是闪电网络最主流的实现之一。其他主要产品包括Elements、Blockstream Satellite、Liquid Network等。其技术愿景是打造基于比特币区块链的加密金融基础设施框架。利用前沿的密码、安全工程技术,Blockstream旨在降低金融市场上的信任成本从而大幅提高交易效率。经过长时间的实践积累,该团队对于在P2P开放网络环境下构建高性能、可扩展、普惠的金融交易协议具有重要的研发经验。
Nayuta是一支来自于日本的技术产品团队,建立于2015年,主要面向比特币生态进行软、硬件系统研发。围绕闪电网络,Nayuta推出了包括协议实现以及上层应用端的不同产品,如Ptarmigan、Nayuta Wallet等。其中,其核心产品Ptarmigan节点软件实现了闪电网络标准,并提供在不同硬件平台上的支持,从而能够良好对接基于物联网设备的新一代支付需求。此外,Nayuta正在研发面向企业用户的联盟链闪电网络,提供企业间高性能支付、结算服务。3.2 应用情况
闪电网络应用(LApps, Lightning Network Apps)目前还处于发展的早期,但其即时性和低手续费也吸引了众多开发者贡献了很多支持闪电支付的应用,覆盖钱包、游戏、购物、加密数字资产兑换、餐饮、即时通讯等等。 加密数字资产钱包。据Lightning Network Stores的数据统计,迄今为止,市面上共有30款左右的加密数字资产钱包支持闪电网络,这一数字在2019年初是仅为6款。这些钱包分为托管钱包和非托管钱包两类,支持的终端主要是Android和iOS,少部分钱包还支持Windows、Mac、Linux及浏览器插件。值得注意的是,在7月初,老牌钱包Electrum发布新版本,也支持了闪电网络、瞭望塔及潜交换等功能。即时通讯。有开发者利用闪电网络的特性开发了即时通讯软件,如Lightning Labs团队开发的Whatsat,该App能通过非直接连接提供匿名发送信息的能力。洋葱路由会使得信息的路径和源头变得难以追踪增强匿名性;另一方面,由于没有中心化的服务器,用户两两之间通过建立直接连接的聊天内容也难以被外界追查。类似的应用还有LnSMS.world、Receive SMS、Paypercall等。
线上购物。闪电网络快速支付和低手续费的特性为使用比特币进行购物提供了新的生命力,有开发者提供了基于闪电网络的网上购物中心,Bitrefill、Paid.co、CoinMall等,以及线上销售平台,如Nanopos等,也有团队支持了使用闪电网络钱包到现有电子商务平台(如Bitcard支持在Amazon上使用比特币购买礼品卡)或餐饮店上购买商品或服务,如LN.Pizza、Starblocks等。
游戏。闪电网络的即时性为在线轻量级游戏提供了可能,各类游戏如棋类(Lightning Chess为例)、纸牌类(Lightning Poker为例)、博彩类(BC.game、Luckdice为例)等都出现在了应用商店中并吸引了大量玩家的眼球。
跨链交易。闪电网络点对点网络传输模式使其天然支持原子交换,这就使得跨链交易十分便捷。相关的应用如Sparkswap、ZigZag等也出现在市场上,提供非托管的去中心化的买卖及加密数字资产交易的服务。
除了这些之外,闪电网络之上还活跃着大量其他应用,如小费支付、广告,甚至还有嵌入硬件的尝试(如PolloFeed,一款通过闪电网络远程喂鸟的应用)。 可以看到,闪电网络的诞生为区块的生态注入了新的生命力。由于不支持智能合约,相比于以太坊等,区块链的去中心化应用生态一直没有得到很好的发展。闪电网络的诞生使得我们日常生活中经常使用的应用或服务开始有了比特币网络下的翻版,虽然其易用性和用户规模还远不能相比,但至少提供了起点。3.3 活跃情况
2015年,闪电网络的概念一经推出就收获到了区块链领域热烈的讨论和开发人员的投入。2017年12月27日,Alex Bosworth使用Bitrefill支付电话费诞生了闪电网络上第一笔商业交易。2018年初,闪电网络正式在比特币主网上线,在经历短期的快速增长后增速就趋于平缓。 2018年10月到2019年3月,闪电网络经历了一轮快速的增长,通道数和容量均增长了数倍,分别从近1万条通道、容纳100个左右的BTC增长至4万条通道、容纳1000多个比特币。该增长一部分得益于声势浩大的“闪电火炬”传递活动,一度火出圈外;另一部分原因是该时间段内比特币的价格一直在低位徘徊,持币人变现意愿大幅下滑,推动一部分比特币沉淀到闪电网络中。此后,通道数和容量均经历了小幅的下跌而后上涨的趋势,这也可能是比特币的投资属性带来的波动。迄今,闪电网络通道数3.7万余条,容纳资金在1000 BTC上下浮动,尚未回到19年的巅峰水平。当前,闪电网络上的节点数约1.3万个,根据Lightning Network Explorer的数据,其大多集中在西欧和美国,基本和比特币的活跃地区一致。闪电网络是比特币网络的二层网络,而闪电网络的用户主也要来自于比特币网络用户的转化,参考近期在90万上下波动比特币的活跃地址数(地址数和用户数不能等价),闪电网络还有很大的成长空间。新技术的研发带来的闪电网络的实用性和用户友好性的提升或是后续闪电网络扩张的原动力。
四、 闪电网路的贡献与局限4.1 贡献
4.1.1 提升比特币网络扩展性 闪电网络能为比特币带来的扩展性的提升是毋庸置疑的,其设计的初衷就是为了解决比特币区块大小限制和交易等待时间长带来的扩展性困境——每秒仅能处理7笔交易,这个困境也是制约比特币发展的重要因素之一。闪电网络创新性的设计了RSMC和HTLC,提供在链下进行近实时小额交易的能力,既缓解了比特币主链的压力,又为用户提供了便捷的支付方式,一举多得,为区块链更大规模的扩张提供了可能性。4.1.2 降低交易的时间和资金成本
降低交易成本主要从两个方面体现。1.降低交易等待时间。原本在比特币主链上,每笔交易需要10分钟才能提交,1个小时才能确认,而在闪电网络上,点对点的通信模式,用户之间只需签署双方均认可的交易协议就可以提交,双方均在线的情况下实时就可达成。且通道的持续时长不受限制,用户可在通道内反复交易,在交易结束后再将资金分配状态广播到主链确认资金分配,将原本多次的确认等待时间压缩到1次。2.降低交易手续费。比特币主链上每笔交易都需要收取一定的手续费,其峰值一度达到55美元(后续有所回落,近期在1美元上下浮动);而在闪电网络上只有打开和关闭通道需要在主链上进行交易,其余交易均在闪电网络内进行,而目前网络内主要路由节点一天的收入也才在10万聪(约7美元)左右,可见路由佣金之低。由此,闪点网络为比特币生态拓展了中高频小额交易的场景,也为用户提供了中高频小额交易的更优选择。4.1.3 支持跨链交易
区块链上主流的跨链机制主要有三种,公证人(Notary schemes)、侧链/中继链(Sidechains / Relays)和源自闪电网络的哈希锁定(Hash-locking)。相比于其他两类,哈希锁定的方式不需要依赖可信的第三方,不会受到51%攻击,实现也最为轻量级。闪电网络使用了哈希时间锁的技术,天然就支持了跨链交易,使得闪电网络能为用户提供去信任化的多方跨链交易的能力。4.1.4 促进比特币生态发展
比特币作为一种加密数字资产,比特币网络作为一种点对点的电子现金系统,其生态系统的基础就是便捷的支付。无疑,闪电网络技术的诞生为破除比特币支付因性能带来的瓶颈有重大现实意义。虽然相比传统的支付宝、VISA等支付方案其还有一定差距,但就比特币自身来说,实则是迈出了即时支付从不可能到可能的一大步,为其进入日常生活的支付场景提供了重要技术支持。 此外,比特币生态一直饱受诟病的一点是其未能发展出像以太坊等的去中心化应用(decentralized app, DApp)的生态,以致其应用场景蜷缩在支付和投资(目前更多的可能是投机)上,也将其开发群体和用户群体限制在一个很小的范围内。而闪电网络的诞生催生了LApps,为完全分布式的应用在比特币生态上的发展铺好了上升的阶梯。交易成本(时间成本和金钱成本)的降低和小额支付的高性能支持,吸引了更多的社区开发者的加入,因而贡献了更多元化的应用场景,从而能吸引更多用户加入其中,形成积极的正向循环。4.2 局限
4.2.1 受限的支付上限 非直连的用户在闪电网络上支付时,实际上是通过支付接力实现的,因而会产生路由节点资金不够完成接力的情况,导致越大额的资金越难支付成功。19年初声势浩大的“闪电火炬”接力活动也因遭遇流动性问题显得有些意兴阑珊。 但值得注意的是,2019年12月底Blockstream宣布原子多路径支付(Atomic Multi-Path Payments)技术已通过互操作性测试,目前还未正式上线。c-lightning 在今年5月中旬发布的0.8.2版本中也支持了大通道支付,移除了0.16个BTC的付款上限。虽然这两项技术,目前还没有在闪电网络中大规模落地,但这些扩展技术的发展有望切实解决闪电网络支付通道上限问题,为闪电网络引入更多的金融、贸易等领域应用场景。4.2.2 节点和资金集中化明显
闪电网路上线以来,其集中化问题一直受到广泛关注,该问题主要体现在两个方面。1.路由节点集中化。2.资金集中化。
闪电网络利用HTLC机制实现了无直接连接的用户之间的支付通道,但中间路由节点的创建和维护需要一定的技术门槛,同时低廉的佣金也难以激励用户节点承担路由的工作,因此催生了路由节点的集中化。集中化的路由节点一定程度上降低了路由的路径长度,提升了交易的稳定性,但会带来单点问题、负载问题、隐私问题等,违背了区块链去中心化的思想同时也一定程度上催生了资金集中化的问题。 中心的路由节点为了保证能承担更多的路由负载必然会存放大量资金在节点上。一篇研究论文[1]对闪电网络从2018年1月14至2019年7月13期间的数据分析表示,闪电网络内的资金分布十分不均衡,基尼系数高达约0.88,这表明网络上10%的节点持有了80%的资金,50%的节点持有了99%的资金。这不是一个健康发展的生态环境的表现。4.2.3 网络稳定性问题亟待解决
对于支付系统来说,稳定性是重中之重,没有人愿意将资金放在一个三天两头崩溃或者业务失败的平台上。但年轻的闪电网络确实还面临着一系列稳定性问题。其中单点问题、流动性攻击问题、支付成功率问题可能是目前最显著的几个稳定性问题。
前文中有提到闪电网路的中心化问题,单点问题是中心化问题的延伸,一旦中心节点或者通道遭到攻击或者丢失连接会导致很多节点变成孤立节点,将大大降低整个网络的可用性甚至导致网络瘫痪。如图16所示,当前关键通道(如果通道断连会导致有节点无法形成支付路径)的数目已达两千两百余条,约占总通道数的38%。另一个值得担心的稳定性问题就是流动性攻击的问题,论文[2]中提到在现有的闪电网络技术条件下,攻击者可以使用少于0.25 BTC使闪电网络中高达650 BTC丧失流动性达3天之久。该种攻击的主要思想是,攻击节点同时作为支付的发起方和接受方,以小额资金发起转账请求,但接受方在签订HTLC之后不为前继节点提供R,使整条链路都处于等待状态,通道上节点的流动性被锁定。通过循环这种操作,达到锁死网络内大量流动性的目的,可导致网络瘫痪。
支付成功率也是衡量支付通道稳定性的重要标准。据Diar在2018年6月底的一份报告中显示,仅数美金的支付的成功率也仅在70%左右,随着金额的增加会有显著下滑,交易金额超过300 USD时,成功率仅有1%。这也呼应了前文提到的“支付通道上限问题”。同时,中间路由节点的下线也是造成支付失败的原因之一,闪电网络的交易成交要求交易双方同时在线签订协,一方下线会导致交易搁置,一旦一方下线时长超过了时间锁的约定时间,交易就会失败。
4.2.4 难以保障的数据隐私
闪电网络借由洋葱路由一定程度上加大了支付路径追踪的难度,但是随着集中化问题的产生,大部分交易都会经由中心节点达成,这大大增加了暴露交易方的风险,几位研究人员也在研究中[3]指出了这一问题。同时,闪电网络应用到更多的线上线下的支付环境中时,在大数据技术成熟的当下,支付节点的主人也更容易暴露其身份。如果闪电网络的集中化问题能得到解决,隐私问题也能在一定程度上得到缓解。
4.2.5 受约束的网络可扩展性
闪电网络本身的扩展性问题也值得关注。由于闪电网络采用了源路由的机制,网络中的每一个节点都有需要维护一份支付路径路由表用于规划交易的路由路径。这在闪电网络现有规模下并不是什么问题,但是当网络规模扩大后,全网节点的连接信息和可支付金额信息的存储及实时更新问题,高并发情况的路径选择余额分配问题,等等都会带来扩展性问题并制约闪电网络的发展。4.2.6 较高的使用门槛
降低用户门槛提高使用的友好度是应用型技术能普及的重要先决条件。即便对于比特币用户,要理解使用闪电网络交易或者如何成为一个路由节点赚取佣金,并不是一件很容易的事情,更不用说广大的非比特币用户群体。由于闪电网络的发展还在早期,没有成熟的商业化包装,用户在使用闪电网络进行交易时不得不去了解一些其中的技术细节,还要经历并不友好的操作过程,最后还可能遭遇支付失败,这大大提升了用户的门槛降低了用户的使用意愿。 五、 闪电网络的扩展技术与服务通过前文的剖析可以看到,闪电网络为比特币技术和生态的发展均有裨益,但由于其技术完整度尚不高,不可避免地也引入了一些问题。针对这些问题,研究人员和开发社区持续研究和引入各项闪电网络的扩展技术和服务,本章将以瞭望塔、潜交换以及原子多路径支付为代表进行探讨。
5.1 “欺诈斗士”瞭望塔
背景
为了消除闪电网络的中的对手风险,RSMC技术设计了惩罚机制,不仅可以追回资金还能罚没抵赖者在通道中的所有资金补偿受害者。但是该惩罚机制的运行要求用户定期上线检查,以确认是否遭遇到对手方的抵赖。如果用户错过了可以实施惩罚的时间窗口期,其损失的资金将无法被追回。但作为一项支付技术,要求用户定期上线检查资金安全状况,其使用感之差不言而喻。可以认为,这个问题得不到解决,闪电网络的支付解决方案在市场化竞争上毫无优势可言。瞭望塔技术的提出就是为了解决这个问题,保障用户在持续离线状态下资金不被对手方盗取。发展
瞭望塔技术的雏形,在闪电网络的白皮书中就有提及。其核心思想是在不泄露用户隐私信息的情况下,通过第三方代理代替用户监察对手抵赖行为并发布违约补偿交易。在白皮书之后不断有研究者和开发团队针对瞭望塔技术提出更细致的技术解决方案和闪电网络节点激励方案。McCorry等人提出的Pisa协议[4]、Avarikioti等人提出的瞭望塔的分布式服务协议DCWC[5]和瞭望塔激励兼容的Cerberus通道[6]。除了学术研究之外,业界也一直有团队在尝试落地瞭望塔。2019年6月,Lightning Labs团队首次将瞭望塔技术集成到期闪电网络中[7]。紧随其后的2019年7月,BitMEX将其闪电网络节点升级至包含瞭望塔功能的版本[8]。原理
瞭望塔在闪电网络上的实现主要涉及三个角色,交易双方及瞭望塔。仍以Alice和Bob的支付通道为例进行讨论,假设Alice使用了瞭望塔服务。 Alice:每次当二者之间发生了交易更新了支付通道的状态,Alice均会向瞭望塔发送签名消息授予瞭望塔代为执行违约补偿交易的权利,同时告知瞭望塔交易的哈希信息。 Bob:Bob是Alice的对手方,可能会在给Alice转账后通过发布历史交易上链,来抵赖当前的转账交易。 瞭望塔:瞭望塔会利用Alice提供的哈希信息与链上交易对比,并持续监测是否有抵赖行为。一旦发现历史状态的交易被Bob发布上线,就会解密Alice发送的与历史交易对应的签名消息,并代替Alice发布违约补偿交易,将通道内的所有资金都转移给Alice。瞭望塔技术提出与应用对于提升闪电网络的易用性至关重要,但其本身也面临着技术和运营上的各类挑战,其中最受关注的是扩展性、隐私和运营模式。
为了实现监测抵赖交易的能力,瞭望塔需要实时搜集与存储闪电网络中所有支付通道的状态变更,并与链上新打包的交易进行比对。这意味着瞭望塔不仅需要存储和维护全量的链上数据,同时也要实时搜集和监测和存储链下数据,当闪电网络规模不断扩大,瞭望塔自身的扩展性就成为了问题。 同时,随着瞭望塔服务时间的增长,对于每一个用户其存储和计算成本会持续上升。在这个过程中,用户开放给瞭望塔的信息越少,用户的隐私性就越强,但瞭望塔的开销就会越高。隐私导向型的瞭望塔不会获取每条发送至瞭望塔的消息的账户和通道信息,但这样也就意味着无法以账户模式对用户进行管理及收取费用,盈利会非常困难,使瞭望塔缺少持续经营的激励机制。业务导向性的瞭望塔可以将消息与账户联系起来,制定合理的营收模式,但这种方式会暴露用户的资金流动情况及其他个人习惯和信息,带来隐私保护的挑战,甚至可能将瞭望塔演变成金融监管中心,丧失公有区块链完全分布式的特点。5.2 “上下互通”潜交换
背景
用户两两之间的支付通道可以想象成是一个沙漏,沙漏的每一端代表一个用户,沙漏中的沙子代表锁定在支付通道中的资金。沙子可以在沙漏的两边自由分配,但是如果想向沙漏中增加沙子或者把沙漏中的沙子取出,只能选择将沙漏打破。这就是用户在使用闪电网络的支付通道时另一个易用性问题所在,通道中的资金容量在通道建立之初就确定了,无法向通道中追加资金,也无法在不关闭通道的情况下取回通道中的资金,各个通道间及链上的资金无法与实现相互流转。这极大限制了用户的资金流动性。为了改善这个问题,再平衡技术实现了同一用户在其多个通道中进行资金划转,但仍未实现链上链下余额的统一管理。在此背景下,潜交换(Submarine Swap)技术被提出,实现了在不关闭支付通道的情况下,完成链上链下的资金交换,对通道中的资金进行充提。最终,大大降低了同一用户在链上、链下及链下的各通道间资金统一管理的难度。发展
潜交换技术最早由Lightning Labs的Alex Bosworth和Olaoluwa Osuntokun提出。之所以被命名为潜交换,是因为他可以实现将链上资产传递到链下的闪电网络中,就像潜水艇可以将水面上的信息传递到水面下。目前,潜交换技术已经开始逐步应用到现有的闪电网络中。Lightning Labs开发的Loop[9]项目支持loop in (链上向链下转账)及loop out (链下向链上转账)功能,该功能可以被用于单个用户自身的链上链下资金转移,也可以被用于链上用户向闪电网络中的商户支付等。除了比特币和闪电网络内部,由于潜交换技术只要求交易双方中的一方在闪电网络中,其可以被应用在跨链转账的场景,如REDSHIFT[10]提供了可视化的利用潜交换做资产转移的服务等。原理
通常,在提到潜交换时,其语义通常包含了(正)潜交换和反潜交换。(正)潜交换指用户将链上资金转移到链下的过程,反潜交换则反之。两种交换实现原理基本一致,技术上以HTLC为基础,应用上以潜交换服务商为核心。 具体来说,潜交换的原理与前文2.3中讲述HTLC的原理基本一致,区别在于,前文中讲述的HTLC技术仅应用在了链下场景,潜交换技术中,利用HTLC,通过潜交换服务提供商,实现了链上与链下的互通。 以(正)潜交换为例,如图20所示,假设Alice希望将自己的链上资金“充值”到闪电网络通道中,Bob是潜交换服务提供商。 那么1. Alice自己准备好R,并对其进行哈希计算得到H;2. Alice在链上与Bob建立HTLC,并向其转账1 BTC同时告知Bob H,Bob需要在约定时间内提供与H对应的R才能使用这笔资金,否则资金将退回给Alice;3. Bob与Alice在闪电网络中也建立HTLC,在这个之中,Bob向Alice支付1 BTC,同时也要求Alice在约定时间内提供R。4. 当Alice在闪电网络中收取1 BTC时,就向Bob揭示了R的值,Bob利用该R可以获取到链上Alice转账的1 BTC。与前文所述的“正向传递H建立HTLC,反向传递R清除HTLC”的过程是完全一致的。只不过由于发生了链上交易,Alice需要再支付一笔链上交易的手续费。反潜交换的过程与正潜交换正好相反,如图21所示,过程不再赘述。但值得注意的是,在反潜交换中,由于链上交易是由Bob发起(Bob向Alice的链上地址转账),Bob需要支付链上交易的手续费。所以Bob会要求Alice在链下预付一笔链上交易的手续费,这笔预付款是与Alice实际的转账款分开支付的,即便Alice的潜交换转账失败或者取消,在技术上也并没有设计机制取回这笔预付款。
5.3 “化整为零”AMP
背景
通道的支付上限问题也是当前闪电网络面临的重大易用性问题之一。因为非直连的用户需要经过网络中的多个节点才能完成支付,而路径上任意一个节点的通道中的余额小于支付额都会造成支付失败。闪电网络中的支付成功率会随着支付金额的上升而迅速下降。另外,同一个用户的资金可能分散在多个闪电网络节点的多个通道中,无法实现跨通道合并支付。原子多路径支付(Atomic Multi-Path Payments, AMP)技术的提出即是为了解决这两个问题。发展
原子多路径技术最早是在2018年由Lightning Labs的工程负责人Olaoluwa Osuntokun首次提出[11]。在2019年12月底,Blockstream宣布该项技术已经通过互操作性测试,但还未正式上线。2020年5月上旬,Lightning Labs旗下的LND 0.10版本发布,支持了多路径支付[12]。可以看到,该项技术已经逐步落地到闪电网络中。原理
原子多路径支付的原理并不复杂,简单来说,就是将原本由一条路径传递的支付改由多条路径完成。其核心在于实现原子性、支付哈希不可重用、顺序无关性、及无交互[11]。 原子性:“原子多路径”中的“原子”,指的就是此处的原子性。它指的是,即便支付被拆解到多个路径进行传递,但最终,支付的金额是一个不可分割的原子,要么全部被支付给接受方,要么全部被退回发送方,不能存在部分支付成功的情况。 支付哈希不可重用:交易被拆解到多条路径支付后,每一份拆解的子交易都会有一个的哈希值。各子交易哈希值需要各不相同且相关性低,避免带来安全隐患。 顺序无关性:各个子交易的到达顺序不影响交易的合法性。 无交互:此处的无交互指的是发送者可以在不与接收者发生额外交互的情况下发起原子多路径支付,接收者对此不感知。如图22所示,为原子多路径支付支持的多种场景,包括流出流动性不足(支付节点单一通道中没有足够的资金进行支付)、流入流动性不足(接收节点的对手节点单一通道中没有足够的资金进行支付)以及中间节点流动性不足(网络中除了交易的发送方、接受方及与其直接相连的对手节点外,其余的传输节点间单一通道内资金不足的情况)等。
5.4 还有更多
除了上述三个以外,还有许多其他的扩展技术和服务用于解决闪电网络中的其他各类问题。如Lightning Labs提供的降低闪电网络用户的配置难度的Autopilot;可以实现在一个用户的多个通道之间进行资金划转的再平衡(Rebalancing);保护隐私的同时降低带宽和存储,帮助实现轻量级闪电网络钱包客户端的中微子(Neutrino)协议;目前已经应用在c-lightning 0.8.2上的容纳更多资金的Wumbo通道;在同一笔交易中可以自动开启及关闭通道以完成通道资金转移的拼接(splicing)技术;降低用户建立通道和提取资金的操作成本的lnurl 通道子协议技术;以LightningTo.Me、LNBIG.com和Bitrefill等为代表的闪电网络服务提供商(LSPs)等等。这些革新正将闪电网络和比特币带向更为大众化的方向。
六、 总结与展望6.1 未来发展
2019年12月3日,加密数字资产交易所Bitfinex宣布对闪电网络上的存取款业务提供支持。可以预见在未来,更多主流的交易所、加密数字资产钱包将加入这一行列,完成对闪电网络的业务拓展。在将来的加密数字资产活动中,用户能够简单的通过交易所、钱包APP完成闪电网络的相关交易,从而更灵活的管理、配置个人的相关加密数字资产账户及资产。这样趋势的发生,将很大程度上扩大闪电网络的用户群体,进而进一步推动闪电网络的不断普及。
从比特币技术生态构成的角度来看,最近几年闪电网络能够成为生态中重要的基础服务之一,但不会是唯一。更有可能的情况是,形成多种扩容方案动态并存的局面。在提高比特币扩展性、降低交易手续费、优化用户支付体验方面,与闪电网络并存的解决方案(分片、跨链等)将会相互补充,共同建立面向特定应用领域的高度互补技术体系,共同解决比特币本身的局限和挑战。 另一方面,闪电网络的出现为Layer-3的上层金融应用和服务提供了有力的技术基础。随着结算实时性提高、交易手续费的降低,在未来,我们将可能看到面向比特币生态的去中心化金融市场(DeFi)的起步,如借贷、抵押、保险业务等,而可以预见的是,这一市场的发展将相当程度地依赖闪电网络提供底层的基础支付环境,并大幅度提升比特币资产的流动性。6.2 改进方向
为了实现这一发展预期,闪电网络开发者和社区需要从技术研发和生态运营角度展开大量的工作。
关于火币研究院
火币区块链应用研究院(简称“火币研究院”)成立于2016年4月,于2018年3月起致力于全面拓展区块链各领域的研究与探索,以泛区块链领域为研究对象,以加速区块链技术研究开发、推动区块链行业应用落地、促进区块链行业生态优化为研究目标,主要研究内容包括区块链领域的行业趋势、技术路径、应用创新、模式探索等。本着公益、严谨、创新的原则,火币研究院将通过多种形式与政府、企业、高校等机构开展广泛而深入的合作,搭建涵盖区块链完整产业链的研究平台,为区块链产业人士提供坚实的理论基础与趋势判断,推动整个区块链行业的健康、可持续发展。联系我们:
咨询邮箱: huobiresearch@huobi.com 官方网站: https://research.huobi.cn 微信公众号: HuobiCN 新浪微博: 火币区块链研究院 https://www.weibo.com/u/6690456123 Twitter: Huobi_Research https://twitter.com/Huobi_Research Medium: Huobi Research https://medium.com/@huobiresearch免责声明
转载地址:http://rdugf.baihongyu.com/