区块链因Layer1的交易吞吐量上限而常被诟病,离线支付网络提供了一种「线下支付线上结算」的解决方案,为区块链世界的支付赋予了几乎无限的交易吞吐量。因而,支付网络成为了当前最为热门的区块链研究与工程实践方向之一。
经过多年国际学者与工程的发展,支付网络的若干子研究方向已有了大量的论文研究和工程实践,已经不易遍历阅读和详尽了解。然而,当前阶段对于这一重要的研究方向,虽然多数区块链领域的人士对其基本思想有所了解,但对其最新进展具有较全面追踪的国内极客与学者还不多。
本综述系列面向对这一领域具有兴趣的极客和学者,剖析若干子方向,归纳最新研究进展、提出笔者的思考。作者是热爱研究的Nervos小伙伴?Shor,现为上海交通大学博士。
本文中,我们默认读者具备了对于支付网络的基本了解。在部分描述中,我们会将支付网络看作一张图论意义上的图,每个参与者看作一个节点,每个支付通道看作一条图上的边。所以下文中笔者会不自觉地用「图」来指代一个支付网络,用「节点」来指代一个参与者,「边」字来指代一个支付通道。
路由,即一个需要在支付网络上发送交易的人和交易接收者与图上其他节点共同互动而决定支付路径的过程。当然,严格而言,这不一定是一条路径,而可能是一系列路径组成的一个有向无环图,由于其他学者似乎尚未对此范畴采用新名词,因而笔者将此系列路径的总和命名为?transactionpattern。
1、基于网络流的路由协议
最近一周,以太坊网络新增147.64万枚NFT资产:金色财经报道,NFTScan数据显示,最近一周,以太坊网络新增147.64万枚NFT资产,平均每天新增铸造21.09万枚NFT资产。[2022/4/16 14:27:49]
用一个网络流模型刻画支付网路的整体状态具有以下优势:首先,网络流准确刻画了各支付通道的总额度、余量,使用现有的最大流算法可以找到两点之间可以达到的最大支付总额,并且高效地找出一组可行路径。接下来,笔者简要介绍一下网络流问题。
Hint:「基于网络流的路由协议」是笔者所拟的名称,其在大多数文献中对应的词组是?SourceRouting。其原因是这一类路由的过程得由源节点本地完成,其过程中默认源节点掌握了整张支付网络的拓扑结构,并且可以动态探测任意支付通道中的余量。然而,所有已有的SourceRouting方案都是基于最大流算法的,所以笔者大胆地改换了称呼,以便读者理解。
网络流问题简介
我们用网络流模型中的一个残量网络表述一个支付网路的整体状态,其本质是一个四元祖
这个基于线性规划的严谨定义并不方便观众们理解。笔者画了以下的图片来帮助读者理解最大流问题的定义。下图中是s1到t1的最大流为10单位。
倘若把s1到t1的10单位的额度全部用尽,并不只一种方案,其中一种「增广」方案使用后如下图。
此时,s2到t2的最大流依旧为10单位,不过方案唯一。如果恰好把?单位流量用完,则全图残量网络如下。
数据:以太坊网络当前已销毁8133.48枚ETH:Ultrasound数据显示,截止目前,以太坊网络总共销毁8133.48枚ETH。其中以OpenSea开头地址销毁547.69枚ETH,UniswapV2销毁383.22枚,AxieInfinity销毁311.31枚ETH,Tether销毁236.94枚ETH,UniswapV3销毁149.78枚ETH。注:自以太坊伦敦升级引入EIP-1559后,以太坊网络会根据交易需求和区块大小动态调整每笔交易的BaseFee,而这部分的费用将直接燃烧销毁。[2021/8/7 1:40:40]
常用的最大流算法包括预留推进算法和一类基于增广路定理的最大流算法,其中包括了?Edmonds-Karp?算法以及他的衍生算法如?ISAP?算法和?Dinic?算法。
不难发现,对于大额支付,我们可以通过最大流算法得到两节点之间的最大可能支付额度。如果支付金额小于这个额度,我们也就通过最大流算法确立了一个支付方案。
2、基于灯塔节点的路由协议
基于灯塔节点的路由协议的总体思路如下。首先,每个节点都有资格成为灯塔节点,每个节点都有权利选择让哪些灯塔节点来协助路由。这个大前提基本保证了路由方案的去中心化特性不被打破。
然后,为了提供一定的额度隐私性并增加支付成功的概率,每一笔支付的额度被分为|L|份,每一份由不同的灯塔节点协助完成传输。对于不分片的情况,我们认为|L|=1。而灯塔协助传输的方式则是根据自己的视野为这笔金额安排一条通道,并通过与这些通道上的节点通讯获取这个通道上可以通过的最大额度。
动态 | 独立研究员Mikerah将开发基于以太坊网络层的混合网络Meson:独立研究员Mikerah将开发一种基于以太坊网络层的混合网络 Meson,旨在通过提供抗审查和防止元数据被泄漏为用户提供隐私保护。以太坊网络层隐私保护的缺乏不仅会影响以太坊,还会影响所有基于以太坊的区块链,比如以太坊的分支链。Meson 主要目标之一是简化网络级匿名功能的集成,以方便开发者将其简单地集成到混合器或钱包中。[2019/11/17]
早期方法
基于Landmark的路由协议思路来自于计算机网络领域的研究。其中的常见组件如下。
双向BFS寻找最短路径
图嵌入
通过这样的编码方式,可以高效地确定两个节点之间的一条路径——即从付款节点到两节点的最近公共祖先的唯一路径拼接上从LCA到收款节点的唯一路径。
SilentWhispers?与?SpeedyMurmurs
SpeedyMurmurs直接采用了分片支付的方案。除此以外,与SilentWhispers的一大不同是,SpeedyMurmurs中灯塔节点利用树基图嵌入的方式提供支付路径,其出发点针对SilentWhispers双向BFS树在动态网络环境下维护的困难性,即使是拓扑距离非常靠近的两个节点间路由也要经过Landmark节点,以及极差可并发性的问题。?
3、基于数据网络方法的路由协议
近80%的y00ts系列NFT已迁移至Polygon:金色财经报道,OpenSea数据显示,目前已有1.16万枚y00ts系列NFT已迁移至Polygon,占总量的约80%。该系列NFT目前地板价为1.69 ETH,总交易量为394 ETH。
据此前报道,NFT项目y00ts表示将于3月27日开始迁移至Polygon,用户可以直接从官方网站迁移,在24小时内完成迁移将获得奖励。Gas费用将由Magic Eden提供,质押也将免费。在最初的24小时内,y00ts团队将在Polygon上根据y00ts数量一比一空投BTC DeGod。快照将于迁移开始24小时后在Polygon上进行。[2023/3/30 13:34:22]
由于以上的路由方案都没有充分考虑实际支付网路的动态性。所以部分来自计算机网络背景的学者提出了将数据网络中的路由办法直接用到支付网络中的若干方案。由于数据网络的路由理论已经在计算机网路领域非常成熟,这一类方案具有较高的可靠性。动态性也给这类方案提供了非常可观的效率。其中最为经典的是?Spider?协议。
Spider?将支付网络类比为数据传输层,使用数据网络的方法进行动态路由。为了和数据网络的模型匹配,在此方案中,我们依旧假设所有的通道都是双向的。类似于数据网络中的数据包,每一笔交易被拆分为若干金额包通过不同路径寻路。每个金额包被直接通过支付网路通道传输并最终抵达收款者,其转发过程中的节点都锁定了相应额度。在完成了寻路后,根据各个金额包的转发路径完成最终支付。
Coinbase客户拒绝提供账户信息并指控其损害用户利益:金色财经报道,Coinbase的客户拒绝提供他们的账户信息,继续起诉该公司未经授权的加密货币转账。它还指责Coinbase在经济上伤害用户,将他们的账户永久或暂时封锁,并在其交易平台上列出证券,没有遵守联邦法规。
联邦法院最近提交了一项动议,要求原告交出所要求的信息,以换取保护令。[2022/12/29 22:14:47]
然而,支付网路和数据网络的一大区别在于通量限制的存在。因此,每个通道都会对应一个队列保存所有还没能以当前通量完成传输的金额包。只有当有足够的通量从通道的另一侧传来,这个队列中的金额包才能继续传输。值得注意的是,虽然我们用一个金额包的传输过程来描述动态路由过程,其实质是一个寻路与锁定的过程,倘若不加注意会把这个路由过程误以为是支付过程。
4、混合路由协议
通过对?Ripple?和?Bitcoin?支付网络的实际分析,最新的调研发现:
支付网路有必要支持大额交易;
大额交易需要更加侧重支付成功率,小额交易应该更加注重效率。
基于这一发现,Flash?协议用基于最大流的路由方案来完成大额金额的支付,用基于数据网络的路由方法进行小额金额的支付。由此,大额交易的支付成功率和小额交易的效率得以两全。
各类路由方案的对比与分析
笔者在以上表格?Tab.1?中,列举了各类非混合路由协议的优势与劣势。由于难以量化,具有一定的主观色彩。
5、未来研究展望
接下来,笔者提出若干研究展望,并在文末提出这方面科研中可能遇到的问题。
?熟悉「基于增广路的最大流算法」的朋友们应该了解,这类算法都需要为每条边配备上一条「反向边」用来描述一种算法中需要用到的回流。而我们可以惊讶地发现,这种回流正好对应地刻画了双向支付通道中从另一个方向的额度冲抵。因而增广路定理保证了哪怕在支付网络上无规则地「增广」,最后也一定会完成任一笔不超过最大流额度的支付。这样,我们就得到了一种完全「动态」的基于最大流的路由算法。这一点似乎并未被现有文献提及。当然,对于绝大多数小额交易,用这个算法太过于杀鸡用牛刀了。但笔者相信对于早期支付网络中遇到的巨额交易,这个思路会派的上用处。
?可以用「最小费用最大流」来取代底层最大流,使得有多种选项时算法可以挑出一组长度最短、总过路费最少的路径方案。学过一种「最小费用最大流」算法的朋友此时应该能明白笔者的寓意,在此不再展开。
?通过支付网络相关智能合约代码的重构,或者通过另类?landmark?节点的设立,「指导」参与节点建边,以系统性地改进网络的拓扑结构。笔者曾对可能由各个?landmark?引向的结构做过不少畅想,其中包括基于?hypercube、以?landmark?为根的平衡树、以?landmark?为根的?link-cut-tree?等等。
如想在这一方向深入科研,尤其如果在以缩短平均跳数为目的,可能存在两大问题:
第一个问题
实事求是地,当前的支付方案在当前的支付网络规模中已经做得够好了。根据?SpeedyMurmurs?论文中的实验数据,其已经可以在鼎盛时期的?Ripple?网络中达到平均?2?到?4?跳数的水准。在此之上再做优化又能如何呢?更优美且能在未来百千万、上亿规模支付网络中取得更好结果的算法,在当前支付网络下兴许反而因为较大的「常数」而并不能取得一个更好的结果。当然,基础研究是要面向未来大规模支付网络的未来的,但面向未来的研究得要在大规模的网络上进行模拟实验才能具有公信力。接下来笔者来阐述一下大规模支付网络的拓扑结构的模拟是如何不可为的。
第二个问题
难以进行合理的模拟实验。首先,实事求是地说,当前阶段的现实网络中的多数参与者尚且是少数极客精英和资本,其拓扑结构肯定和未来的真实网络大相径庭。其次,笔者认为社交网络中的若干模型并不能真实反应支付网络未来之拓扑结构,例如,笔者并不觉得社交网路中常用的「Watts?图」可以刻画好未来的这个网络,因为大多数节点不会去建很多条边使得图的?density?达到出现?small-worldphenomenon?的?threshold,Watts?图的大前提不会成立。总而言之,笔者认为,一个对未来支付网络拓扑结构的研究,于今至关重要,是若干支付网络更多研究发展的大前提。
References
1.Malavoltaetal.SilentWhispers:EnforcingSecurityandPrivacyinDecentralizedCreditNetworks.NDSS2017
2.?Roosetal.SettlingPaymentsFastandPrivate:EfficientDecentralizedRoutingforPath-BasedTransactions.NDSS2018
3.Sivaramanetal.RoutingCryptocurrencywiththeSpiderNetwork.HotNets2018
4.PengWang,HongXu,XinJin,andTaoWang.Flash:EfficientDynamicRoutingforOffchainNetworks.CoNEXT2019
5.JosephPoonandThaddeusDryja.Thebitcoinlightningnetwork:Scalableoff-chaininstantpayments.https://lightning.network/lightning-network-paper.pdf.2016
6.Raidennetwork.http://raiden.networkwork/.
7.GiovanniDiStasi,StefanoAvallone,RobertoCanonico,andGiorgioVentre.Routingpaymentsonthelightningnetwork.iThings/GreenCom/CPSCom2018
8.LewisGudgeon,PedroMoreno-Sanchez,StefanieRoos,PatrickMcCorry,andArthurGer-vais.SoK:Layer-TwoBlockchainProtocols.FC2020
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。