繼上一次關于支付網絡中路由問題的全面研究之后,熱愛研究的Nervos小伙伴Shor對通道網絡中的再平衡算法又做了詳細的研究。
本文中,我們會介紹通道網絡中的Rebalance問題。首先我們將介紹問題的定義和現有的解決算法。之后,我們會針對這一問題,介紹必要的圖論基礎和建模方法。最后,我們提供一種算法加速思路。
支付網絡中的Rebalance問題簡介
我們把一個支付網絡看作一個無向圖,每個圖中的節點代表一個PID,每條邊代表一個支付通道,其中每條邊在兩端節點各有一個存量。注意:我們默認每個支付通道內部總存量守恒,即由A,B組成的通道中,如果A有余額50,B有余額80,B在向A支付10元后,A有余額60,B有余額70。
有時,因為網絡拓撲結構等原因,一個支付通道的一個方向總比另一個方向「更受歡迎」,在此情況下,各個通道的有限總存量都被「堆積」到一側,或者說「受歡迎方向」的流量就此耗盡了。因此,支付網絡會頻繁出現通道流量耗盡,不得不再次「上鏈」打開新通道的情況。再平衡技術通過以下方式試圖緩解這一問題。
Statemine與Bifrost雙向跨鏈通道已開啟,公益平行鏈資產流動性實現閉環:2月18日消息,據鏈上數據顯示,Bifrost主網于2月17日20時成功升級v0.9.26版本,該版本升級中包含合并Polkadot v0.9.16最新代碼,該版本升級后,Bifrost與Statemine由單向跨鏈升級為雙向跨鏈,代表目前Statemine的資產流動性已經實現閉,開發者或社區可以考慮使用Statemine發行資產。
據稱,該資產將同時具備高安全、低成本、可跨鏈等特性,易于在各平行鏈生態中交互使用,據Bifrost團隊透露,接下來將會推動Statemine資產的流動性及在平行鏈中的應用場景。[2022/2/18 10:01:20]
例如下圖中,我們考慮一個由四條邊構成的回路,他們主流方向的10單位余量都已經耗盡。
LEEK映射HDAO通道期限延遲:據官方通告,LEEK映射HDAO的活動受全球各地社區熱烈響應,團隊決定迎合市場要求,映射活動期限將延遲至5月16日北京時間00:00,以確保全球各地區的用戶們都有足夠的時間完成映射操作。HDAO團隊非常感謝所有忠實用戶的熱情響應,平臺也將竭盡所能服務大家。[2021/4/30 21:12:40]
其中每個箭頭
表示一個連接了A與B的無向通道,其中A方存量是a,B方存量是b。值得注意的是,箭頭方向代表了主流方向,因而我們畫成了一個有向圖,不過最新基于RbR的支付通道都是雙向的。Revive通過一個來自全局leader的協調,完成一個rebalance工作。例如,可以協調B向A轉賬5個單位,協調A向C轉賬5個單位,協調C向D轉賬5個單位,協調D向B轉賬5個單位,使得全圖結構如下圖所示。其本質上是找到一個「回路」,并在這個回路上讓所有通道一起逆著主流方向回流、抵回一些流量。
Bitfinex支持閃電網絡Wumbo通道:金色財經報道,加密貨幣交易所Bitfinex今日宣布,已增加對Wumbo通道的支持,用來擴大比特幣閃電網絡的支付通道。在發布時,Bitfinex已打開三個Wumbo通道,每個通道可容納五個比特幣。該交易所表示,這些是迄今為止該網絡最大的通道。[2020/9/23]
當我們提及Rebalance時,到底在試圖解決哪些問題?
筆者認為,關鍵需要解決兩個問題:
第一個問題是已知全圖求調度方案的問題。
第二個問題是協議問題:有誰來實現上述的運算過程?如果是以個別實體節點完成,如何讓他們即時收取到一部分圖的實時信息并作出rebalance決策?如何規避他們作惡?如果是以一種去中心化的方式實現,又如何使信息收集、運算和實施三個環節成為可能?如何讓網絡節點參與并遵循我們想要設定的規則?
聲音 | 中科院鄭志明:價值能夠自由流轉,前提是區塊鏈建立了低成本的信任通道:12月7日,由中國科學院學部主辦、中國信息通信研究院等單位聯合支持的“區塊鏈技術與應用”科學與技術前沿論壇在深圳開幕。中國科學院信息技術科學部鄭志明院士、數學物理學部王小云院士等四位院士發表主題演講,同時還有300余名來自政府和企業界的代表出席會議,圍繞區塊鏈與數字身份、監管科技、金融應用等話題展開討論。
會上,中國科學院院士鄭志明稱,價值互聯、價值能夠自由流轉,是人類社會最基礎、最重要的事情。其前提是建立低成本的信任通道,這就是區塊鏈能夠做到的。“中央在四中全會前組織局集體學習區塊鏈,我們覺得是因為區塊鏈和社會治理的能力和追求息息相關,其中最重要的就是信任”,鄭志明院士表示。他同時認為,區塊鏈是去傳統信任的機制,是用技術來保證信任的成熟技術,是數字經濟發展的必由之路。[2019/12/7]
本文中,我們先拋開第二個問題,專注于第一個問題。
支付網絡中現有的rebalancing問題可以被這樣抽象刻畫:
動態 | 比特幣閃電網絡通道數量已達39302個:據1ML數據,當前比特幣閃電網絡節點數為7387個,過去30天內增加17.98%;通道數量為39302個,過去30天內增加47.70%;網絡容量已達到1056.54個BTC,過去30天內增加54%。[2019/3/17]
給定一個支付網絡,尋找足夠多的回路,最大化可以調整的流量。無疑這是個線性規劃問題。
現有的思路是直接解這一個線性規劃問題。但是,直接求解這個線性規劃問題的代價是非常昂貴的。最新的線性規劃算法理論復雜度為O(M^w),其中M為變量和約束條件個數,w是一個略小于3的常數。對于當前具有萬級別節點的支付網絡而言這個復雜度可以接受,不過我們認為這個復雜度對于未來具有百萬上億級別節點的支付網絡來說,高了一些。但也沒高太多!倘若能把復雜度稍微優化下去一些,就可以接受了。
接下來,我們將給出我們的解決思路。不過在此之前,我們先介紹一些必要的基礎知識。
需要的預備知識
圖論基礎
對于一個有向圖,一個強連通分量指一個任意兩點之間可以互相由圖上有向邊訪達的子圖。一個極大強連通分量是一個增加任何一個其它節點后就不具備強連通分量性質的子圖。例如上圖中,我們可以用灰色區域勾勒出它的四個極大強連通分量。
我們可以觀察到以下方面:
極大強連通分量對任何一個有向圖的所有節點完成了一個partition。
任何一個回路只會存在在同一個極大強連通分量內。
存在一個極高效的O(N)算法求出任一有向圖的所有極大強連通分量。
其中N是全網節點數量。
將每個極大強連通分量看作一個整體,用邊連接所有有訪達關系的分量并縮點后,我們得到了一個有向無環圖。
具體優化辦法
接下來,我們介紹具體算法。
首先,我們對原支付網絡圖做一個簡化變幻,將每一個雙向通道變換為從存量多的一方指向存量少的一方的有向邊,邊的容量是兩端存量差的一半。例如下圖中,我們將上圖變換為下圖。
于是,我們將尋找回路問題轉化成了尋找有向圖環路的問題。有向圖的每一條邊代表了一個為了讓原圖的對應通道更加平衡需要回流流量的一個「勢能」。每一個環路可以被看作一個回流方案。在進行強連通分量縮點后,我們只需要通過現有線性規劃解每一個極大強連通分量內部的rebalance問題。
其解決方案便已明朗:只需要求解出這個有向圖的所有極大強連通分量,并且在每一個極大強連通分量中通過常規的線性規劃,求得一個最優的調度方案。因為我們認為每個回路并不會跨兩個不同的極大強連通分量,所以我們認為這個方法求出的就是全局的最優調度方案。
這里其實有個小問題:這真的是個等價轉換嗎?實事求是地說并不是。有可能會出現最優全局調度方案中有回路橫跨兩個極大強連通分量的情況,因為有可能會出現「需要為了多數人苦一苦少數人」能得到更優解的可能性。不過筆者暫時認為這種偏差是值得的。況且,涉及到現實落地,興許那些少數人并不會接受這樣的調度。
細心的讀者們應該發現了本文中的兩個沒有解釋清楚的問題:
1.到底優化了多少?
這個問題,本質上在問未來的大規模支付網絡會有多少個極大強連通分量,分量越多,優化效果就越明顯。本質上這個問題是未來大規模支付網絡的拓撲結構是怎么樣的。可以預期的是,如果絕大多數群眾節點的度數只有4度左右,極大強連通分量的期望數量是關于網絡節點數量以一種低于線性的速度增長的。
2.上文中的等價轉化犧牲了多少?
其實,這兩個問題本質上都在問:未來的大規模通道網絡的拓撲結構究竟是怎么樣的?
筆者認為,這個問題不但筆者回答不了,恐怕也沒有人能準確回答的了。這一點筆者已經在之前的文章「一份關于支付網絡中路由問題的全面研究」中給出了解釋。
要點: 比特幣在所有交易所的存量已降至兩年來最低點;在2020年的大部分時間里,這一數額一直在減少;在過去的24小時里,BTC價格上升至接近歷史最高點的上漲行情結束.
1900/1/1 0:00:00來源:澎湃新聞 記者:葉映荷 中簽的蘇州數字人民幣紅包到賬啦。12月11日早上,“蘇州發布”官方微信號發文宣布,經過前期的報名登記、數據準備,“雙12蘇州購物節”數字人民幣消費紅包經公證處現場公.
1900/1/1 0:00:00去中心化交易所聚合器1inch今日宣布籌集了1200萬美元的A輪融資。1inch聯合創始人兼首席執行官SergejKunz告訴TheBlock,通過一項未來代幣簡單協議促進了這一輪融資.
1900/1/1 0:00:00作者:馬迪爾 來源:人民數字Fintech各國加速數字貨幣研發與測試,本質上是一種科技領域話語權的爭奪.
1900/1/1 0:00:002020年12月5日,2020世界區塊鏈大會·武漢正式在武漢國際會展中心開幕。大會由巴比特主辦,并得到了武漢市政府、江漢區政府、武漢市經信局、中國信通院等部門單位的大力支持.
1900/1/1 0:00:00作者:云核變量金融董事總經理劉夏 來源:中國金融信息網 簡單來說,數字人民幣和支付寶、微信支付的使用體驗沒什么差別。但是,從貨幣的統計口徑上看,央行數字貨幣屬于M0,即現金的范疇.
1900/1/1 0:00:00