继上一次关于支付网络中路由问题的全面研究之后,热爱研究的Nervos小伙伴Shor对通道网络中的再平衡算法又做了详细的研究。
本文中,我们会介绍通道网络中的Rebalance问题。首先我们将介绍问题的定义和现有的解决算法。之后,我们会针对这一问题,介绍必要的图论基础和建模方法。最后,我们提供一种算法加速思路。
支付网络中的Rebalance问题简介
我们把一个支付网络看作一个无向图,每个图中的节点代表一个PID,每条边代表一个支付通道,其中每条边在两端节点各有一个存量。注意:我们默认每个支付通道内部总存量守恒,即由A,B组成的通道中,如果A有余额50,B有余额80,B在向A支付10元后,A有余额60,B有余额70。
闪电网络通道数量突破80,000个:金色财经报道,据最新数据显示,闪电网络通道数量已经突破80,000个,创下历史新高,本文撰写时为80,069个,过去三十天增长6.6%。此外,闪电网络节点数量正逼近30,000个里程碑,目前为29,804个,过去三十天增长7.78%;网络容量当前为3196.16 BTC,价值约合195,940,143.42美元,过去三十天增长7%。[2021/11/6 6:34:59]
有时,因为网络拓扑结构等原因,一个支付通道的一个方向总比另一个方向「更受欢迎」,在此情况下,各个通道的有限总存量都被「堆积」到一侧,或者说「受欢迎方向」的流量就此耗尽了。因此,支付网络会频繁出现通道流量耗尽,不得不再次「上链」打开新通道的情况。再平衡技术通过以下方式试图缓解这一问题。
金价开启上涨通道 机构看涨后期走势:本周以来,金价呈现涨升趋势。中信证券分析称,受美元流动性和油价危机影响,黄金在3月份出现大幅回调,目前流动性紧张缓解,金价开始反弹。卓创资讯贵金属分析师张伟也表示,全球央行大规模刺激救市,市场流动性较之前大幅缓解,金价在前期超跌后,正走在上行通道中。(上证报)[2020/4/16]
例如下图中,我们考虑一个由四条边构成的回路,他们主流方向的10单位余量都已经耗尽。
其中每个箭头?
表示一个连接了A与B的无向通道,其中A方存量是a,B方存量是b。值得注意的是,箭头方向代表了主流方向,因而我们画成了一个有向图,不过最新基于RbR的支付通道都是双向的。Revive通过一个来自全局leader的协调,完成一个rebalance工作。例如,可以协调B向A转账5个单位,协调A向C转账5个单位,协调C向D转账5个单位,协调D向B转账5个单位,使得全图结构如下图所示。其本质上是找到一个「回路」,并在这个回路上让所有通道一起逆着主流方向回流、抵回一些流量。??
比特币闪电网络通道数量为36333个:据1ML数据,当前比特币闪电网络节点数为11623个,过去30天内增加3.77%;通道数量为36333个,过去30天内增加1.1%;网络容量达到895.92个BTC,过去30天内增加2%。[2020/2/29]
当我们提及Rebalance时,到底在试图解决哪些问题?
笔者认为,关键需要解决两个问题:?
第一个问题是已知全图求调度方案的问题。
第二个问题是协议问题:有谁来实现上述的运算过程?如果是以个别实体节点完成,如何让他们即时收取到一部分图的实时信息并作出rebalance决策?如何规避他们作恶?如果是以一种去中心化的方式实现,又如何使信息收集、运算和实施三个环节成为可能?如何让网络节点参与并遵循我们想要设定的规则?
分析 | BCH警惕下降通道上轨压力:分析师K神表示,BCH消息刺激,放量突破19年6月顶点至近期的中期下降趋势线,一度涨至接近300美元附近再小幅回落到290美元上方,形态上前面9月25日大跌触及下边线支撑后,接下来到10月25日一个多月的时间,日线走出一个双底结构,10月25日跟随BTC强势反弹,直接突破上方240美元颈线位压制,近几天迎来了快速拉升,一直冲至通道上边阻力线附近,若再次强势突破并维持放量,将持续拉大反弹空间,均线上当前价格已站上90日均线,中短期均线多头排列,整体后续有进一步走强的趋势,持续拉升短线指标超买,价格已涨至前期筹码密集成交平台,一次性突破的可能性不大,预计近期将处于90日均线附近震荡整理,蓄势后再尝试上攻,支撑278美元,压力位300美元。[2019/10/29]
本文中,我们先抛开第二个问题,专注于第一个问题。
分析 | EOS上升通道内 短线仍以下寻支撑为主:火币全球站数据显示,EOS当前报价3.788美元,日内下跌2.49%。
针对当前走势,分析师K神表示,EOS今日硬分叉升级,也没能带动盘面向上,技术图形上已跌破通道中轨趋势线,走势依然较弱,量能持续衰减,日线MACD即将死叉,一旦形成将进一步加大下跌空间,下方支撑为30日均线3.65美元,前期该点位连续收出下插针形态,表明多头在这个位置还是有抵抗的,预计短期内仍将震荡下寻支撑为主,压力4美元。[2019/9/23]
支付网络中现有的rebalancing问题可以被这样抽象刻画:
给定一个支付网络,寻找足够多的回路,最大化可以调整的流量。无疑这是个线性规划问题。
现有的思路是直接解这一个线性规划问题。但是,直接求解这个线性规划问题的代价是非常昂贵的。最新的线性规划算法理论复杂度为O(M^w),其中M为变量和约束条件个数,w是一个略小于3的常数。对于当前具有万级别节点的支付网络而言这个复杂度可以接受,不过我们认为这个复杂度对于未来具有百万上亿级别节点的支付网络来说,高了一些。但也没高太多!倘若能把复杂度稍微优化下去一些,就可以接受了。
接下来,我们将给出我们的解决思路。不过在此之前,我们先介绍一些必要的基础知识。
需要的预备知识
图论基础??
对于一个有向图,一个强连通分量指一个任意两点之间可以互相由图上有向边访达的子图。一个极大强连通分量是一个增加任何一个其它节点后就不具备强连通分量性质的子图。例如上图中,我们可以用灰色区域勾勒出它的四个极大强连通分量。
我们可以观察到以下方面:
极大强连通分量对任何一个有向图的所有节点完成了一个partition。
任何一个回路只会存在在同一个极大强连通分量内。
存在一个极高效的O(N)算法求出任一有向图的所有极大强连通分量。
其中N是全网节点数量。
将每个极大强连通分量看作一个整体,用边连接所有有访达关系的分量并缩点后,我们得到了一个有向无环图。
具体优化办法
接下来,我们介绍具体算法。
首先,我们对原支付网络图做一个简化变幻,将每一个双向通道变换为从存量多的一方指向存量少的一方的有向边,边的容量是两端存量差的一半。例如下图中,我们将上图变换为下图。
于是,我们将寻找回路问题转化成了寻找有向图环路的问题。有向图的每一条边代表了一个为了让原图的对应通道更加平衡需要回流流量的一个「势能」。每一个环路可以被看作一个回流方案。在进行强连通分量缩点后,我们只需要通过现有线性规划解每一个极大强连通分量内部的rebalance问题。?
其解决方案便已明朗:只需要求解出这个有向图的所有极大强连通分量,并且在每一个极大强连通分量中通过常规的线性规划,求得一个最优的调度方案。因为我们认为每个回路并不会跨两个不同的极大强连通分量,所以我们认为这个方法求出的就是全局的最优调度方案。?
这里其实有个小问题:这真的是个等价转换吗?实事求是地说并不是。有可能会出现最优全局调度方案中有回路横跨两个极大强连通分量的情况,因为有可能会出现「需要为了多数人苦一苦少数人」能得到更优解的可能性。不过笔者暂时认为这种偏差是值得的。况且,涉及到现实落地,兴许那些少数人并不会接受这样的调度。?
细心的读者们应该发现了本文中的两个没有解释清楚的问题:
1.到底优化了多少?
这个问题,本质上在问未来的大规模支付网络会有多少个极大强连通分量,分量越多,优化效果就越明显。本质上这个问题是未来大规模支付网络的拓扑结构是怎么样的。可以预期的是,如果绝大多数群众节点的度数只有4度左右,极大强连通分量的期望数量是关于网络节点数量以一种低于线性的速度增长的。
2.上文中的等价转化牺牲了多少?
其实,这两个问题本质上都在问:未来的大规模通道网络的拓扑结构究竟是怎么样的?
笔者认为,这个问题不但笔者回答不了,恐怕也没有人能准确回答的了。这一点笔者已经在之前的文章「一份关于支付网络中路由问题的全面研究」中给出了解释。
70后炒股、80后炒房、90后炒币、00后炒鞋智者说,人生总要有点爱好和乐趣。只不过,时代会变,不同年龄段的人群也有完全不同的喜好.
行情瞬息万变,作为交易者应该做到通则变,变则通,交易没有固定这说法,方式方法可以固定,但思维一定要活跃,同样的形态未必走同样的走势,是因为在大的环境下出现细小的变化比特币日内行情冲高回落.
尊敬的用户: 您好!火币合约自上线实时结算功能以来,得到了广大用户的好评与支持。为了给用户提供更好的服务,火币合约平台将于新加坡时间2020年12月11日18:00上线BTC/USDT、ETH/.
尊敬的用户: 经过综合评估,CoinBene将于12月14日11:00下线CELO/USDT杠杆,用户请于12月14日11:00之前择机平仓、撤单,归还杠杆借币.
尊敬的用户: BiKi余币宝将于12月11日开启DOT定期理财,预期年化收益8.88%,活动详情如下: DOT定期理财细则: 申购时间:12月11日00:00—12月15日24:00公告 | O.
尊敬的虎符用户, 虎符已于2020年11月30日10:00(UTC8)重磅上线ATP/USDT交易对并举办“净买入大赛”活动.