8

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

 3 years ago
source link: https://medium.com/taipei-ethereum-meetup/boomerang-%E5%9C%A8%E6%94%AF%E4%BB%98%E9%80%9A%E9%81%93%E7%B6%B2%E8%B7%AF%E4%B8%AD%E5%88%A9%E7%94%A8%E5%86%97%E9%A4%98%E6%94%B9%E9%80%B2latency%E4%BB%A5%E5%8F%8Athroughput-1286788dd745
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

上個月去參加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塊錢

Image for post
Image for post

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

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

Image for post
Image for post

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

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

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

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

Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post

對於第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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK