TER:HashKey Capital:一文读懂比特币闪电网络机制、?进展与挑战_Metabolic

编者按:本文来自链闻,撰文:钱柏均,就职于HashKeyCapitalResearch,审校:邹传伟,万向区块链、PlatON首席经济学家,Odaily星球日报经授权转载。是时候认真研究一下比特币闪电网络的技术、解决方案和近期发展了。闪电网络曾经被诟病的资产安全问题在2019年得到大幅度改进,用户体验也有所优化。过去闪电网络限于小额支付的问题,也藉由支付路径的扩增而得到解决。在未来,原子多路径支付伴随HTLC将会成倍增加路由选择,有望大幅增加通道流动性。但挑战依然存在:闪电网络系统的稳定度和支付规模尚且不足,且无法支持多数应用层,因此离规模化的商业应用及用户大幅扩增还有一段距离。此外,闪电网络通道手续费收费过低,节点数量上升缓慢,如何激励运营节点加入也将是一大考验。闪电网络是一种比特币链下支付协议,目标是解决比特币的可扩展性问题。尽管闪电网络还处在早期发展阶段,但比特币支付网络加上闪电网络,利用链下支付和「净额轧差」概念,有助于提高比特币交易效率,降低交易成本,一定程度上加强了比特币作为交易媒介的属性。本文将通过三个方面,阐述和分析比特币闪电网络的进展与挑战:第一部分介绍闪电网络运作机制;第二部分介绍2019年闪电网络技术进展;第三部分介绍闪电网络落地概况和有待解决的问题。闪电网络运作机制

闪电网络基于微支付通道演进而来,由微型银行和支付通道两个概念所构筑,并就支付通道概念设计出了两种类型的交易合同——可撤销的序列成熟度合约RSMC和哈希时间锁定合约HTLC。其中,RSMC解决通道中货币单向流动及确权问题,HTLC解决货币跨节点传递通道的问题。闪电网络的优点包括:一是交易费用低廉,无需矿工参与,用户只需为中间节点支付通道费用。二是交易时间迅速,只有少数节点参与,维持秒级交易时间。三是数据存储负担小,大多数数据存储在链下,对链上存储压力不大。四是隐私性,交易数据不上链,隐私性得到一定的保护。接下来依次介绍闪电网络中的关键组成部分:智能合约、支付通道、路由和费用机制。智能合约闪电网络链上智能合约如同微型银行运作。用户A与B(相互为交易对手)如同微型银行的存款人,而支付通道中的交易就是双方调整各自存款余额的行为。微型银行存在以下要素:点对点:只存在A、B双方无须信任:公开、透明、不可篡改、不可伪造自治:A、B共同管理链上资产双签:链上资产分配需要双方签名承诺:双方对存款余额调整方案达成?致,并且双方签名。此消息并不立刻广播到链上,而是由双方存储在本地,并可经由双方同意进行覆盖。支付通道支付通道是支付双方以闪电网络托管双方的资产,通过共同承诺重新清算双方的存款余额,以达到价值转移的效果,由RSMC及HTLC两个合约所组成。RSMC

首先假定交易双方之间存在一个支付通道。交易双方先预存一部分资金到微支付通道里,初始情况下双方的分配方案等于预存金额。每次发生交易后,需要对调整后的资金分配方案共同进行确认,同时签字把旧版的分配方案作废。任何一方需要提现时,将他手里双方签署过的交易结果写到区块链网络中并确认。需要强调的是,只有在提现的时候才需要通过区块链。任何一个版本的资金分配方案都需要经过双方的签名认证才合法。任何一方在任何时候都可以提出提现的请求,提现时需要提供一个双方都签名过的资金分配方案。在一定时间内,如果另外一方拿出证明表明这个方案并非最新的交易结果,则提出方的资金归于质疑方;否则按照提出方的结果进行分配。罚金机制可以确保用户不会故意拿旧交易结果来提现。即使双方都确认了某次提现,提出方的资金到账时间要晚于对方。RSMC交易构造

图1:RSMC交易构造,来源:https://blocking.net/假设Alice及Bob想进行链下闪电网络交易,并且双方预存金额均是0.5BTC。首先,Alice和Bob各自将0.5BTC的保证金打到一个2-2多重签名地址当中(即FundingTx)。FundingTx交易暂不被签名,也不被广播到链上。接着,Alice构造一笔承诺交易C1a,其中包含一笔退款交易RD1a。C1a的第一个输出是RD1a,由Alice另一个私钥Alice2和Bob私钥的多重签名向Alice的地址转入0.5BTC。但RD1a包含一个seq变量以防止其马上进入区块,而是要等seq=100个区块。C1a的第二个输出是向Bob的地址转入0.5BTC。Alice将C1a/RD1a交给Bob签名。与此同时,Bob构造一笔承诺交易C1b,其中包含一笔退款交易RD1b。C1b的第一个输出是RD1b,由Bob的另一个私钥Bob2和Alice的私钥的多重签名向Bob的地址转入0.5BTC。但RD1b包含一个seq变量,防止其马上进入区块,而是要等seq=1000个区块确认。C1b的第二个输出是向Alice的地址转入0.5BTC。Bob将C1b/RD1b交给Alice签名。然后,Bob对C1a/RD1a签名并返给Alice,同时Alice对C1b/RD1b签名并返给Bob。最后,Alice检查C1a/RD1a以及Bob的签名,确认后自己签名。同时,Bob检查C1b/RD1b以及Alice的签名,确认后自己签名。可以看出两点:第一,C1a/RD1a和C1b/RD1b在结构上相互对称,实际上是站在Alice和Bob各自立场上,对双方预存金额均是0.5BTC这一事实的不同表述。这有点类似中国古代「券」的概念:以竹片写作契约,分左右两券,各执其一,其中左券为契约中履约索偿的凭证。但C1a/RD1a和C1b/RD1b在地位上比左右券平等。第二,C1a和C1b花费的是同一个交易输出,因此C1a和C1b中只有一个能被打包进区块。如果Alice广播C1a,那么Bob马上就能拿到0.5BTC,而Alice要等seq=1000个区块的确认后才能拿到0.5BTC。反之,如果Bob广播C1b,那么Alice马上就能拿到0.5BTC,而Bob要等seq=1000个区块的确认后才能拿到0.5BTC。换言之,如果交易的一方单方面广播交易以关闭支付通道,他将延迟拿回自己的资金,而对方则可以马上拿回自己的资金。这种安排构成对后者的保护。RSMC交易更新假设Alice向Bob支付0.1BTC,那么双方在支付通道内的资金分配方案将从0.5/0.5变为0.4/0.6。与前文一样,按照「一个产权关系,各自表述」的原则,Alice和Bob将分别构造C2a/RD2a和C2b/RD2b,以确认调整后的资金分配方案。

图2:RSMC交易更新,来源:https://blocking.net/与此同时,双方需要将旧版的资金分配方案签名作废掉。这就要用到「显示以撤销」安排。在C1a的第一个输出RD1a中,Alice把自己的另一个私钥Alice2交给Bob,这意味着Alice放弃C1a而认可C2a。如果Alice反悔,那么Bob可以用Alice2构造一个惩罚交易BR1a。惩罚交易把Alice的资金转入Bob的地址,并且不受seq变量的制约。如果Alice广播C1a/RD1a,那么Bob将广播BR1a。BR1a将在RD1a之前执行,从而对Alice构成惩罚。

图3:惩罚交易,来源:https://blocking.net/反之,在C1b的第一个输出RD1b中,Bob把自己的另一个私钥Bob2交给Alice,这意味着Bob放弃C1b而认可C2b。类似地,Alice可以构造惩罚交易对Bob进行反制。由上面不难看出,seq变量提供了一个实施惩罚和反制的时间窗口。RSMC交易终止关闭支付通道,并根据双方最终认可的资金分配方案构造交易并广播。HTLC

RSMC已可以满足基础清算要求,但也存在明显的局限性:通过RSMC方案进行结算的双方,必须建立直连的支付通道才能支付。基于此痛点,闪电网络需要另一个协议HTLC。HTLC支持「条件支付」,通过多个首尾相连的支付通道串联起来形成的支付路径,支持首尾双方通过支付路径完成支付。HTLC的核心是时间锁和Hash锁。时间锁是交易双方约定在某个时间T之内提交才有效,超时则承诺方案失效。哈希锁可以理解为,对一个哈希值H,提供原像R,使得Hash(R)=H,承诺有效;否则失效。如果支付交易因为各种原因未能成功,时间锁能够让交易参与各方收回自己的资金,避免欺诈行为。假设Alice想要开启一个与Bob的交易,交易金额为0.5BTC,但Alice需要通过Carol才能与Bob建立通道进行交易:

图4:HTLC与支付路径第一步:Bob设定原像R,把哈希值H=Hash(R)告诉Alice。第二步:Alice通过HTLC向Carol进行条件支付:当且仅当Carol在T时刻前提供与哈希值H对应的原像,Alice才向Carol支付0.5BTC。类似地,Carol通过HTLC向Bob进行条件支付:当且仅当Bob在t时刻前提供与哈希值H对应的原像,Carol才向Bob支付0.5BTC。其中,t<T。第三步:Bob在t时刻前向Carol提供R,获得0.5BTC,此时Carol知悉R。反之,0.5BTC会返回给Carol,Carol不会遭受任何损失。第四步:Carol在T时刻前向Alice提供R,获得0.5BTC。反之,0.5BTC会返回给Alice,Alice不会遭受任何损失。可以看出两点:第一,在HTLC下,支付要么完成,要么完不成但不会对参与者造成损失,因此是「原子式」的,这是序贯博弈均衡的结果;第二,原像R和资金相向流动,原像R可以被视为收据。总的来说,RSMC保障两个人之间的直接交易可以在链下完成,HTLC保障任意两个人之间的转账都可以通过一条首尾相接的支付通道来完成。闪电网络整合这两种机制,即可实现任意两个人之间的交易都在链下完成。在整个交易中,智能合约起到了中介的重要角色,而区块链网络则确保最终的交易结果被确认。路由闪电网络使用源路由和洋葱路由。通过源路由,源节点负责计算从源到目的地的整条支付路径。为此,源节点需要下载完整的公开支付通道表,以便计算出一条支付路径,并根据这条支付路径涉及的所有通道的负载量来计算手续费和所需条数。在点对点交易中,这个过程会涉及到大量数据,而且数据量还会随着网络扩大而增加。而洋葱路由则让交易链中间节点无法得知整个交易发起或接受方,保障了用户隐私。由于HTLC的时限性,交易达成速度不够快就会失效,因此提高交易传播速度对闪电网络效率非常重要。而要提高交易传播速度,最重要问题便是如何规划最短支付路径。闪电网络运用PBMC(Probability-basedmissioncontrol)机制解决这个问题。初始设定每个节点都有一个默认成功率,并根据实际转账完成率调整。网络路由的交易越多,任务控制组件就越了解这个网络的特性,也就能更好地规划支付路径。费用机制对于链上BTC交易,用户选择每笔交易的手续费,矿工选择手续费较高的交易生成区块,以最大程度提高收入。但闪电网络目前是以另外一种方式运作:节点运营商设定手续费,用户为他们的支付选择路径和通道,以最大程度降低手续费。因此,闪电网络能够提供较低廉的收费架构。运营商提供专门化服务,运营商之间就费率展开竞争更加恰当,操作上也更为便捷。在闪电网络中,节点运营商必须确定两种类型的路由费:基本费和费率。基本费是每次交易通过路由支付时收取的固定费用,以千分之一聪来表示。例如,基本费1000,这就表示每个交易的基本费是1聪。而费率则指按支付价值的一定百分比来收费,实际费率公式为费率除以1,000,000。例如,费率1000是指1,000/1,000,000,也就是0.1%,一旦转账成功,该路由通道会收取0.1%的转账价值费用。此外,为了给路由支付提供流动性,闪电网络节点运营商需要在支付通道锁定一定数量的比特币,包含入境流动及出境流动。入境流动指节点的支付通道可以接收其他路由节点的最大资金数额。而出境流动则指节点的支付通道可以用来支付其他路由节点的最大资金数额。节点可以控制出境流动,但无法控制入境流动,因为入境流动取决于其他路由节点存放在通道内的资金数额。比如,如果节点A要通过路由节点B收取节点C的1BTC,则节点A需要有至少1BTC的入境流动。也就是路由节点B需要放置至少1BTC在A、B之间的通道中,交易才能成功。入境流动无法控制会造成闪电网络交易效率低下。如果两个节点交易中间隔了一个以上的路由节点,就算能够自身入境流动余额足够,但无法确认其他路由节点的入境流动余额是否足够。只要有一个路由节点入境余额不够,就会造成交易失败。节点运营商需要时时调整基本费、费率并监控调整后影响。因为支付需求通道时常改变,再加上目前费率普遍过低(一个大型节点日均收入为10万聪,约等于7美元),所以多数节点入不敷出。因此,当前闪电网络中的流动性提供者,并非受投资回报所推动。但为了实现大规模应用,闪电网络费率设计需要重新思考激励力度,通过兼顾投资回报和流动性架构以吸引节点运营商。2019年闪电网络技术进展

2019年,闪电网络有许多进展,大幅增加了易用性、用户资产安全及支付规模。以下,是较为重要的4个技术进展:瞭望塔Watchtowers闪电网络白皮书首次描述了瞭望塔机制,该机制在2019年改善并应用。瞭望塔针对的问题是,使用闪电网络的人需要保持在线状态,以确保他们的交易对手没有试图窃取资金。暸望塔可以检测到不诚实的一方是否试图窃取资金,然后广播正确交易的消息,将资金发回诚实的一方。换言之,如果一个不良行为节点试图传播一个旧的交易,瞭望塔就会惩罚该节点。闪电网络用户可以连接专业运营的第三方暸望塔来保护他们的利益,任何路由节点也都可以运行自己的瞭望塔来保护自身利益。暸望台还可带来威吓与抑制欺诈的效果。对潜在攻击者来说,因为不清楚交易对手是否链接暸望塔,欺诈成本会大幅度增加。图5显示了瞭望塔运行机制,瞭望塔实际上是由专业机构代一般用户实施图3的惩罚机制。

图5:瞭望塔运行机制延续图1-图3的表述,考虑两个交易对手Alice和Bob,各放0.5BTC在通道,然后Alice支付Bob0.1BTC。此时,通道余额应为Alice拥有0.4BTC,Bob拥有0.6BTC。假设Alice想欺诈,把交易1含有双方签名的通道状态广播到链上。如果在seq=1000个区块确认时间内,Bob没有上线提出反对,欺诈便会成功,Bob将损失0.1BTC。假设Bob委托瞭望塔来防范交易对手诈欺。Bob建立一个撤销型交易,授权瞭望塔必要时可以撤销交易对手广播的过期交易。Bob将该交易预先签名并设定暗示数,将暗示数及预先签名的交易送至瞭望塔。该暗示数可以让瞭望塔识别出过期交易,但不能让瞭望塔得知交易明细或通道余额。此后,每当区块链上广播新交易时,瞭望塔会根据哈希表来比对暗示数。一旦有交易之暗示数符合Bob设定之暗示数,瞭望塔就可知该交易为须撤销之交易。此时,瞭望塔解密Bob提供的撤销型交易并证明Alice发布的是过期交易,重组并广播Bob预先签好名的交易,将Alice通道内的余额罚没给Bob。也就是说,只在欺诈行为发生时,瞭望塔才可以解密撤销型交易并得知其中内容,因此不会严重影响用户隐私。潜交换SubmarineSwaps潜交换技术是由AlexBosworth创建,被作为一种无缝衔接链上和链下比特币流通的技术。潜交换运作机制类似HTLC,但同时涉及链上和链下交易。

图6:潜交换运作机制假设Alice要将链上比特币支付给闪电网络上的用户Bob,但是Alice并没有闪电网络通道。第一步:Bob会设定一组暗示数R,并将其哈希值H告知Alice。第二步:Alice通过链上HTLC,将比特币连同Bob的闪电网络地址一同送至潜交换服务商,要求潜交换服务商在一定时间内揭示暗示数才能获得这笔链上比特币。类似地,潜交换服务商通过链下HTLC,将同样数量的比特币通过闪电网络支付通道转到Bob的闪电网络地址,要求Bob在一定时间内揭示暗示数才能获得这笔链下比特币。第三步:Bob揭示暗示数获得链下比特币,潜交换服务商再利用暗示数获得链上比特币,整个潜交换完成。由此可见,潜交换最大功用是提升链上、链下的互操作性,并因为HTLC的特性,能将信用成本降至最低。潜交换可以用来延长支付通道使用寿命上。闪电网络交易需要交易双方通道余额充足。当通道流动性枯竭后,用户倾向关掉原有通道,等到下次需要时再开启一个新通道,但这限制了闪电网络通道扩展和商业规模化。在使用潜交换时,用户可以无需经由链上交易,经由潜交换服务提供商就可获得链下比特币,从而维持通道余额。原子多路径支付AtomicMulti-PathPayments目前闪电网络交易单次支付的路由只能是单方向的。假设Alice要支付0.01BTC给用户Bob,那么他不仅必须在单通道上有0.01BTC,而且该路由上的所有中间商也必须在通道中准备好0.01BTC才能进行交易。换句话说,支付额越大,就越难找到合适的支付路径。多路径支付的想法在2018年已经有丰富的讨论,最初想法如下:将大额付款分割成小部分款项,这些小部分款项再通过不同的节点运营商从付款人转移到收款人手里。该解决方案面临的挑战是,利用闪电网络支付有失败的可能,将一笔交易分割为多笔交易可能出现部分交易成功而部分交易失败的情况。换言之,越大额的支付越可能出现部分支付的问题,这会制约用户使用闪电网络进行大额付款的意愿。解决方法是原子多路径支付,简单来说就是多路径支付+防部分支付机制。「原子」的含义是:仅当所有小额支付均成功时,交易对手才会收到完整的付款;如果某些小额付款失败,那么整个交易就会失败,资金将退回付款方。

图7:原子多路径支付流程原子多路径支付有如下好处:第一,提升隐私性。不管拆分成多少个通道来支付款项,只有交易双方知道其中的过程。第二,提升支付体验。用户可以一次性转出大额款项,无须考虑通道金额上限问题。中微子协议neutrino中微子协议由一条「过滤层」链所组成。每一个过滤层和一个比特币区块连结,以压缩的方式代表其连结的区块,过滤层相较于原区块大小约压缩250倍。中微子协议目的是减轻客户端硬件设施的负担,只撷取和交易双方相关的数据,避免硬件设施需要和比特币主链时刻同步。中微子协议运行流程如下:

图8:中微子协议运作流程每当一个新区块产出,全节点计算区块对应的中微子过滤层,并发送给闪电网络上所有中微子客户端。因此,大约每10分钟,客户端会收到一个中微子过滤层,客户端比对所有钱包,看是否有任何交易与钱包用户相关。一旦发现该区块包含钱包用户相关交易,客户端会下载「剥离区块」。「剥离区块」只包含交易数据,不包含签名和「见证」数据,可以让客户端减少一半以上硬件负担。通过新数据,客户端得以更新钱包余额。一般来说,闪电网络钱包运营商希望提供的产品具有高用户体验及低使用门槛的特点,但提高易用性往往会降低安全性,比如个人资料遭窃取或用户资产丢失。此外,大量数据承载使闪电网络难以在移动端实现。中微子协议让用户不必运行全节点,且可以在移动设备上进行操作,对用户量扩展有极大帮助。闪电网络落地概况和有待解决的问题

闪电网络落地概况BitcoinVisuals提供的闪电网络节点数、通道数和BTC承载量等关键指标显示,闪电网络自2019年4月达到增长高峰后陷入停滞。目前闪电网络节点数量为5104个。节点数量在2019上半年经历了持续增长,从2019年1月4月节点数量增加了77%。但从2019年5月初截至2020年2月10日,闪电网络节点数却只增加了15%,增长率大幅下滑。闪电网络通道数量从2019年4月初开始下滑,截至2020年2月10日下滑了20%,目前通道数量为32,030个。BTC承载量从2019年1月的525.80枚上升到了2019年4月初的1,059.50枚,增幅为101.5%;但自2019年4月初截至2020年2月10日,BTC承载量已下滑至865.58枚。

图9:闪电网络节点数(左)、通道数(右)和BTC承载量(左)变化闪电网络节点数、通道数及BTC承载量从2019年4月开始下滑主要有三个原因:比特币币价从三月开始快速上涨,投资人变现意愿提高从图9可以看出,闪电网络节点数成长最快的时间,正好是比特币币价徘徊在谷底的区间。这段时间许多投资者的比特币在二级市场被套、无法变现,闪电网络通道成为投资者可以考虑的一个比特币存放处。但从2019年3月开始,比特币上涨,且闪电网络尚未有足够多的应用场景及商户,许多闪电网络用户选择将比特币在二级市场变现套利而非继续存放在闪电网络。从图10也可以看出,从2019年4月起,比特币交易量大幅上升,意味着比特币在二级市场流通量增加,相对地,存放在闪电网络通道的比例下降。

图9:比特币币价(左)与节点数(右)

图9:比特币交易量(左)与节点数(右)闪电网络节点盈利无法覆盖成本及风险运营一个闪电网络节点的成本=架设节点成本+运营成本+锁定资金流动性成本,而风险则为闪电网络或节点遭受黑客攻击的可能。目前闪电网络共锁定价值800多万美元的比特币,损失大量流动性且面临着黑客攻击的风险,但节点运营商每月的盈利只有1-20美元不等。显然,闪电网络节点目前还缺乏可持续的商业模式。闪电网络为天然垄断市场,小型节点逐渐无法生存由于闪电网络开关通道费用的设计,用户多开一个通道就多一笔开关通道费,且各节点的服务高度同质化,不同之处主要是连接其他节点数量多寡。因此,用户倾向找一个较多连接其他节点的节点,这样不仅交易较容易成功,所需支付的通道费也越低。从经济层面考虑,中心化超级节点是用户较为理想的选择。在用户数量没有大幅增加的状况下,关闭小型或无用节点,而扩大大型节点的连结量,是节点运营商节省成本的一种方式。闪电网络有待解决的问题节点需保持在线为使交易成功,闪电网络节点需要时时在线,相比传统支付系统并不方便。闪电网络用户并没有冷存储资金的选择,用户无法安全地存储资金。虽然暸望台能解决不在线欺诈的行为,但也让整个生态趋向中心化。如果一个重要节点下线,容易让整个网络流动性大幅下降,甚至造成用户资金冻结数天的情况。路由经济设计不佳闪电网络为高隐私性而实行洋葱路由。在洋葱路由下,每个节点只知道前后两个节点的地址,没法重新还原整条链或确定收款人的身份,中间方只在掌握须知信息的基础上进行传输。实际操作中的问题在于,无法得知究竟哪个节点在线,哪个节点能连通到目的用户。虽然寻找最短路径不是难题,已经有很多成熟可靠的算法,但是交易过程中,闪电网络需要计算整条路径的费用。一旦中间有个节点发送失败,发起交易的用户除了要重新发送交易以外,还要从起始节点开始重新计算费率,造成时间浪费及用户体验下降。为了提高交易成功率,每个节点都需要维护所有的节点和通道列表。随着网络规模增大,这个表也越来越大,需要同步和更新的消息也越来越多,这会占用大量带宽。即使如此,发送前无法保证一定成功,发送过程中通道还有可能被关闭。可能解决方式是建造一个可信赖的路由网络,由规模化的商业节点负责担任路由节点,构建一个成本低且高效的路由网。

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

大币网

[0:15ms0-4:245ms