NCE:通道网络中的再平衡(Rebalancing)算法加速思路_balance

继上一次关于支付网络中路由问题的全面研究之后,热爱研究的Nervos小伙伴Shor对通道网络中的再平衡算法又做了详细的研究。

本文中,我们会介绍通道网络中的Rebalance问题。首先我们将介绍问题的定义和现有的解决算法。之后,我们会针对这一问题,介绍必要的图论基础和建模方法。最后,我们提供一种算法加速思路。

支付网络中的Rebalance问题简介

我们把一个支付网络看作一个无向图,每个图中的节点代表一个PID,每条边代表一个支付通道,其中每条边在两端节点各有一个存量。注意:我们默认每个支付通道内部总存量守恒,即由A,B组成的通道中,如果A有余额50,B有余额80,B在向A支付10元后,A有余额60,B有余额70。

杜均:加密货币合规投资通道的打开是机构“爆买”比特币的重要因素之一:12月30日,火币联合创始人、节点资本创始合伙人杜均做客PANews主办的年终投资论坛——“2021年加密市场新趋势”,在谈及机构为何选择现在“爆买”比特币问题时,杜均表示主要受以下两大因素影响:

一是加密货币合规投资通道的打开及稳定,在今年以前,市场上几乎没有投资加密货币的合规通道,尤其是在亚洲市场,投资者如果想要合规购买加密货币还是比较困难的。今年灰度做了一个很好的尝试,灰度推出了合规比特币信托(GBTC),为机构投资者打开了布局加密货币的合规通道。

二是市场的造富效应,机构投资者同散户一样,也会被加密货币的财富效应吸引而进场。比特币今年年内涨幅超270%,不断突破历史新高,吸引着越来越多的圈外投资者布局加密货币。[2020/12/30 16:06:48]

有时,因为网络拓扑结构等原因,一个支付通道的一个方向总比另一个方向「更受欢迎」,在此情况下,各个通道的有限总存量都被「堆积」到一侧,或者说「受欢迎方向」的流量就此耗尽了。因此,支付网络会频繁出现通道流量耗尽,不得不再次「上链」打开新通道的情况。再平衡技术通过以下方式试图缓解这一问题。

公告 | BuyBit于2月19日开通体验收益OTC特别通道:据官方消息,XBIT新春红包算力体验活动已圆满结束,用户参与活动体验的BTC收益,已于2月17日全部发放完毕。为进一步保证活动体验的真实性,保障用户的权益,BuyBit号召OTC商家,搭建了OTC特别通道。

据悉,BuyBit已将BTC场外交易的最小限额由0.1特别调至0.0001,并减免相关手续费,用户可自由对收益进行交易处理。本次OTC特别限额有效期截止本月底,将于3月1日恢复至0.1,请参与活动的用户及时处理活动收益。详情见原文链接。[2020/2/20]

例如下图中,我们考虑一个由四条边构成的回路,他们主流方向的10单位余量都已经耗尽。

其中每个箭头?

表示一个连接了A与B的无向通道,其中A方存量是a,B方存量是b。值得注意的是,箭头方向代表了主流方向,因而我们画成了一个有向图,不过最新基于RbR的支付通道都是双向的。Revive通过一个来自全局leader的协调,完成一个rebalance工作。例如,可以协调B向A转账5个单位,协调A向C转账5个单位,协调C向D转账5个单位,协调D向B转账5个单位,使得全图结构如下图所示。其本质上是找到一个「回路」,并在这个回路上让所有通道一起逆着主流方向回流、抵回一些流量。??

公告 | MXC抹茶开启“携手共抗新型冠状病肺炎”捐赠通道:据MXC抹茶官方公告,MXC抹茶已开启“携手共抗新型冠状病肺炎”捐赠通道,支持BTC、ETH、USDT形式捐赠。另据官方公告,24日、25日,MXC抹茶志愿者累计向湖北省黄冈市红安县红十字会、大连沙河口区红十字会、地方公益人士及1062位需要帮助的人士发出17640支N90/KN95级防护口罩。相关防护口罩已进入顺丰救灾运输通道。发往红十字会的防护口罩将用于向辖区医院定向捐赠。详情查看原文。[2020/1/25]

当我们提及Rebalance时,到底在试图解决哪些问题?

笔者认为,关键需要解决两个问题:?

第一个问题是已知全图求调度方案的问题。

第二个问题是协议问题:有谁来实现上述的运算过程?如果是以个别实体节点完成,如何让他们即时收取到一部分图的实时信息并作出rebalance决策?如何规避他们作恶?如果是以一种去中心化的方式实现,又如何使信息收集、运算和实施三个环节成为可能?如何让网络节点参与并遵循我们想要设定的规则?

分析 | 金色盘面:BTC/USD面临通道上轨压力:金色盘面综合分析:BTC/USD2小时K线图,DIF走平,MA12形成支撑,多头再次挑战通道上轨,目前看这里会有一次比较激烈的争夺,空头凭借6600高点压制多头的攻势,而多头必须尽快拿下这个压力位,否则后面做多心态不稳。[2018/8/12]

本文中,我们先抛开第二个问题,专注于第一个问题。

支付网络中现有的rebalancing问题可以被这样抽象刻画:

给定一个支付网络,寻找足够多的回路,最大化可以调整的流量。无疑这是个线性规划问题。

现有的思路是直接解这一个线性规划问题。但是,直接求解这个线性规划问题的代价是非常昂贵的。最新的线性规划算法理论复杂度为O(M^w),其中M为变量和约束条件个数,w是一个略小于3的常数。对于当前具有万级别节点的支付网络而言这个复杂度可以接受,不过我们认为这个复杂度对于未来具有百万上亿级别节点的支付网络来说,高了一些。但也没高太多!倘若能把复杂度稍微优化下去一些,就可以接受了。

现场 | 江卓尔:闪电通道违反经济学常识,没法成为常用的支付手段:金色财经独家报道,在8月1日香港举行的扩融世界BCH周年国际峰会暨BCH生态建设项目发布会上,江卓尔在圆桌论坛上参与讨论问题:“更大的区块是否会造成BCH中心化的问题?反对BCH的人认为,BCH不可能只通过扩大区块达到扩容问题,如果有其他手段,那是什么呢?”江卓尔认为,闪电通道在交易拥堵时,需要很高的手续费,这样就推进不下去。支付宝在推广时期,手续费是负的,而闪电网络是正的。所以闪电通道是违反经济学常识的,这没办法成为常用的支付手段。另一方面,扩大主链容量,按照中本聪的设计,用国际去运行节点的话,可以达到100m区块,这个在很长时间内都是实用的。所以目前如果能用简单的方法达到扩容,就不用去考虑更复杂的方法。[2018/8/1]

接下来,我们将给出我们的解决思路。不过在此之前,我们先介绍一些必要的基础知识。

需要的预备知识

图论基础??

对于一个有向图,一个强连通分量指一个任意两点之间可以互相由图上有向边访达的子图。一个极大强连通分量是一个增加任何一个其它节点后就不具备强连通分量性质的子图。例如上图中,我们可以用灰色区域勾勒出它的四个极大强连通分量。

我们可以观察到以下方面:

极大强连通分量对任何一个有向图的所有节点完成了一个partition。

任何一个回路只会存在在同一个极大强连通分量内。

存在一个极高效的O(N)算法求出任一有向图的所有极大强连通分量。

其中N是全网节点数量。

将每个极大强连通分量看作一个整体,用边连接所有有访达关系的分量并缩点后,我们得到了一个有向无环图。

具体优化办法

接下来,我们介绍具体算法。

首先,我们对原支付网络图做一个简化变幻,将每一个双向通道变换为从存量多的一方指向存量少的一方的有向边,边的容量是两端存量差的一半。例如下图中,我们将上图变换为下图。

于是,我们将寻找回路问题转化成了寻找有向图环路的问题。有向图的每一条边代表了一个为了让原图的对应通道更加平衡需要回流流量的一个「势能」。每一个环路可以被看作一个回流方案。在进行强连通分量缩点后,我们只需要通过现有线性规划解每一个极大强连通分量内部的rebalance问题。?

其解决方案便已明朗:只需要求解出这个有向图的所有极大强连通分量,并且在每一个极大强连通分量中通过常规的线性规划,求得一个最优的调度方案。因为我们认为每个回路并不会跨两个不同的极大强连通分量,所以我们认为这个方法求出的就是全局的最优调度方案。?

这里其实有个小问题:这真的是个等价转换吗?实事求是地说并不是。有可能会出现最优全局调度方案中有回路横跨两个极大强连通分量的情况,因为有可能会出现「需要为了多数人苦一苦少数人」能得到更优解的可能性。不过笔者暂时认为这种偏差是值得的。况且,涉及到现实落地,兴许那些少数人并不会接受这样的调度。?

细心的读者们应该发现了本文中的两个没有解释清楚的问题:

1.到底优化了多少?

这个问题,本质上在问未来的大规模支付网络会有多少个极大强连通分量,分量越多,优化效果就越明显。本质上这个问题是未来大规模支付网络的拓扑结构是怎么样的。可以预期的是,如果绝大多数群众节点的度数只有4度左右,极大强连通分量的期望数量是关于网络节点数量以一种低于线性的速度增长的。

2.上文中的等价转化牺牲了多少?

其实,这两个问题本质上都在问:未来的大规模通道网络的拓扑结构究竟是怎么样的?

笔者认为,这个问题不但笔者回答不了,恐怕也没有人能准确回答的了。这一点笔者已经在之前的文章「一份关于支付网络中路由问题的全面研究」中给出了解释。

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

区块博客

[0:0ms0-4:36ms