比特币价格·比特币行情
Ctrl+D收藏简单区块链

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

作者:

时间:2020/12/13 21:15:16

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

本文中,我们会介绍通道网络(Channel Network,CN)中的 Rebalance 问题。首先我们将介绍问题的定义和现有的解决算法。之后,我们会针对这一问题,介绍必要的图论基础和建模方法。最后,我们提供一种算法加速思路。(本文默认读者具备对于通道网络的常识。)

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

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

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

其中每个箭头 

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

当我们提及 Rebalance 时,到底在试图解决哪些问题?笔者认为,关键需要解决两个问题: 

第一个问题是已知全图求调度方案的问题(将在之后着重介绍)。

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

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

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

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

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

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

需要的预备知识图论基础(强连通分量)  

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

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

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

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

存在一个极高效的 O(N) 算法求出任一有向图的所有极大强连通分量(具体算法本文中不赘述)。

其中 N 是全网节点数量。

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

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

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

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

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

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

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

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

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

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

其中每个箭头 

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

当我们提及 Rebalance 时,到底在试图解决哪些问题?笔者认为,关键需要解决两个问题: 

需要的预备知识图论基础(强连通分量)  

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

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

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

BKEX Global 已上线官方验证通道功能:据BKEX Global 公告,BKEX Global 现已上线官方验证通道功能,用户可通过该功能页面查询官方身份,避免虚假行为。 \nBKEX团队致力于保护用户隐私,信息安全及资产安全。不会以任何形式向外界泄露任何用户信息,也不会以任何形式向用户索要账号密码、短信及谷歌验证码等信息。[2020/4/6]

分析 | BCH警惕下降通道上轨压力:分析师K神表示,BCH消息刺激,放量突破19年6月顶点至近期的中期下降趋势线,一度涨至接近300美元附近再小幅回落到290美元上方,形态上前面9月25日大跌触及下边线支撑后,接下来到10月25日一个多月的时间,日线走出一个双底结构,10月25日跟随BTC强势反弹,直接突破上方240美元颈线位压制,近几天迎来了快速拉升,一直冲至通道上边阻力线附近,若再次强势突破并维持放量,将持续拉大反弹空间,均线上当前价格已站上90日均线,中短期均线多头排列,整体后续有进一步走强的趋势,持续拉升短线指标超买,价格已涨至前期筹码密集成交平台,一次性突破的可能性不大,预计近期将处于90日均线附近震荡整理,蓄势后再尝试上攻,支撑278美元,压力位300美元。[2019/10/29]

动态 | 莱特币闪电网络通道数量达到1000个:据themerkle报道,莱特币闪电网络通道数量达到1000个,目前为1012个,这意味着莱特币可以在未来几年内创造更多的支付渠道。[2019/3/6]

标签:

区块链热门资讯
苹果联合创始人Wozniak携WOZX进军区块链 首发上线霍比特HBTC

自工业革命以来,人类不断向自然界排放大量二氧化碳等温室气体,超出了地球承载与调节能力,导致海洋——陆地——大气碳循环失衡,温室气体浓度和地球温度“双升”,并通过地球系统大气圈、水圈、岩石圈、冰冻圈、生物圈五大圈层相互作用,产生复合连锁效应,严重破坏了地球生态环境,对人类生存和发展产生重大影响。

2020/12/13 21:15:31
滴滴尝试推动支付业务 日订单达百万级

今日,界面新闻从滴滴知情人士处获得一份滴滴金融旗下支付业务的月报。月报显示,自今年下半年来,其支付业务数据上升,日订单已达百万级,滴滴支付用户近3000万。 目前,滴滴生态内的网约车、花小猪、青桔单车、快的新出租车等产品均可以使用滴滴支付。上述知情人士还称,央行数字货币(DCEP)此前已在青桔单车上,测试完成全国DCEP的第一单支付。

2020/12/13 21:15:26
一分钟了解以太坊layer2扩容

Ethereum二层(layer2)扩容是怎么回事?Optimism、xDai、OMG和Loopring等项目之间又有什么区别?接下来我们将回答这些问题。 自以太坊网络推出以来,以太坊的扩容是讨论最多的话题之一。关于扩容的争论总是在以太坊网络出现重大拥堵后上演。

2020/12/13 21:15:22
星展银行的“灰度”式野望

星展银行的最新公告,将数字货币交易与数字证券发行再度推上风口浪尖。 多位数字货币领域学者及行业内投资人注意到,星展银行数字交易平台提供数字货币交易的四种货币中,包含了新加坡元、美元、港币、日元。透过这四种法定货币,星展银行在东南亚数字资产领域的野心已经显露。

2020/12/13 21:15:11
ZKSwap:基于Layer2技术的AMM

市场对去中心化交易的需求已经在Uniswap上得到验证。 今年以来,Uniswap的交易量大幅增长,尤其是8月底的时候,Uniswap的日交易额超过4.26亿美元,超过了Coinbase Pro,交易量增长幅度一度赶超主流中心化交易平台。

2020/12/13 21:15:07
区块链女子图鉴 | “万” 有引力

区块链是新事物,圈子不大,其中多以男性为主。随着行业的深入,越来越多的女性赢得了更多的关注和掌声。 她们年龄不大,身家不斐,有着各种各样的名号,在这个“圈子”的上位圈中是少数群体,更凭借一身胆识谋略在一众男性间站稳脚跟,也是许多女性后来者的榜样和偶像。 在这个微微“沉闷”的春天,与金色一道,相遇真正的区块链女神。

2020/12/13 21:15:01