Boomerang: 在支付通道網路中利用冗餘改進Latency以及Throughput

Brian Po-han Chen
Taipei Ethereum Meetup
4 min readMar 24, 2020

上個月去參加Stanford Blockchain Conference 2020,聽到了許多我覺得很有趣的新題目,有時間再一一分享

我一直對區塊鏈的Scalability很有興趣,如果你不是非常熟悉閃電網路,我建議可以看一下陳品在Coscup19的演講

前幾年許多人在討論Atomic Multi-Path Payments (AMP),原因是當支付通道的金額越高,Client需要在通道中存越高的金額,並且整個網路越難找到適合的支付路徑,Liquidity也會降低.所以Idea就是把大筆的金額分成多個小筆的金額透過不同的路徑付給收取人,但是問題是在網路中這筆應付款項可能會部分成功、部分失敗;所以同時讓所有的微支付交易可以做到Atomic就是這一個題目的挑戰.

AMP 也很常因為部分路徑上的交易延遲或者失敗,而使得完成交易的時間變得很長(long time-to-completion)、減緩已成功的微支付交易的Liquidity、最後使得整個網路的Throughput變差.

舉例:Alice 要轉帳給Bob 4塊錢,透過4個不同的路徑各自轉1塊錢

在上述例子中,AMP整體消耗的Liquidity是$4 * 4 = $16 sec

假設一下如果Alice可以分成8個路徑(增加額外4個冗餘路徑)各自付1塊錢,使得只要其中的4個路徑完成並且Bob不會偷額外的金額,AMP就算完成

在上述例子中,AMP整體消耗變成$1*6 + $2*4 = $14 sec

上面兩個例子都還是假設每個路徑會成功的情況,若是有中間節點crash或者是delay超久,冗餘路徑可以大幅的改進這筆交易的Latency以及整個網路的Throughput跟Liquidity

不過要怎麼保證Bob不會拿額外冗餘路徑上的錢呢?

先講一個這篇文章使用到的重要密碼學工具,利用區塊鏈橢圓曲線上的循環群特性可得到以下的同態特性

Boomerang利用同態特性以及Publicly Verifiable Secret Sharing (有關secret sharing可以參考Kimi的文章)所構成的preimages 和 preimages challenges使得當Bob overdraws款項時,Alice會得到Bob設定的秘密 alpha_0,而Boomerang contract做了一個HTLC-type的限制,當Alice得到alpha_0,則Alice可以revert這筆微支付.

首先,Alice跟Bob同意了將一筆價值v的交易切成v個1塊錢的微支付交易,另外利用額外的u個冗餘路徑來增加效率(BTW 可以不止u個,理論上無限個也可以),所以全部的路徑為v+u

Bob設定一個degree為v的多項式P(x),係數為alpha_0, alpha_1,…,alpha_v

接著Bob 將H(alpha_0), H(alpha_1),…,H(alpha_v)交給Alice來commit 這組P(x),因此Alice可以算出

對於第i-th路徑的微支付交易(HTLC-type)來說,Bob只要揭露preimage P(i)便可以redeem這筆微交易,Bob只要揭露在v個路徑上對應的每一個P(i)就可以得到總額v的交易.而當Bob揭露了v+1個P(i)時,Alice就可以利用插值法將係數算出來取得alpha_0並且revert全部的微交易.

大致上的架構是這樣,有一些實作的細節像是微交易的手續費、設定的延遲時間、合約的script可以去參考paper或者跟我討論,感謝

Reference:

Boomerang: Redundancy Improves Latency and Throughput in Payment-Channel Network

--

--