menu-icon
anue logo
鉅樂部鉅亨號鉅亨買幣
search icon
區塊鏈

基於Statechain的閃電網路通道

BlockBeats 律動財經 2023-01-31 17:00

去年我寫過 Commerceblock 團隊開發的 Mercury Wallet 功能,這是一種 statechain 和 CoinSwap 的雙料實現。它既引入一種新的混幣工具,又是第一種實現了 statechain 這種新的二層擴展方案的錢包。他們團隊在 Ruben Somsen 的原始 statechain 提議基礎上作了一些變更,使得沒有 ANYPREVOUT/Eltoo sighash flag 也能正常實現 statechain,還整合一種新的 CoinSwap 設計,讓用戶可以多次混幣而無需在鏈上交互。

背景



給尚未讀過我前一篇文章的讀者簡單總結一下:statechain 是一種離鏈機制,用於在完全離鏈的任何人之間免費地轉賬。資金的原始所有者跟一個 statechain 營運者合作,構造一個 ECDSA-MPC 地址,該地址的私鑰是分成兩半的,一半在用戶手裡,另一半在營運者手裡,然後雙方要一起構造一個帶有時間鎖的取款交易並簽好名,再然後用戶再把錢打到這個地址里去。

沒有任何一方完整控制這個私鑰,而且用戶拿着一個預先簽好名的交易,因此可以在時間鎖解鎖後單方面拿回這些資金。當用戶希望轉移這筆資產時,他們就通知營運者,後者跟支付的接收方合作,一起創建新的一組私鑰碎片(但跟原來的私鑰碎片有相同的地產),然後生成另一筆帶有時間鎖(且時間鎖更短)的交易並簽名;最後,營運者刪除上一份私鑰的碎片。

如此一來,現在營運者手上的私鑰碎片,將僅能與資金的新主人手上的私鑰碎片結合,所以只要他們刪除了舊的私鑰碎片,他們就無法與資金的舊主人一起花費資金。此外,越新的取款交易,其時間鎖越短,因此資金的新主人總是能比舊主人更快取走資金。這種機制限制了 statechain 資金可以轉移的次數,到點了就必須取出(否則便有可能被舊主人取走)。

基於 statechain 的閃電通道

Commerceblock 現在正在撰寫一個新的 BLIP(比特幣閃電網路升級提議),以實現一種在 Somsen 的最初提議中便提出的東西:在一筆 statechain 資金上建立一條閃電通道。

statechain 自身的一個缺點在於,每次轉移時,都是整個 UTXO 一起轉移的。但是,假如 statechain 的取款交易不是把資金轉移到一個普通用戶的地址中,而是轉到一條閃電通道中呢?那麼 statechain 資金的一部分就可以通過通道的初始餘額分布來傳輸,而這條通道隨後便可按常規發起閃電支付。

整個流程也從一名用戶創建一筆 statechain 資金起步。創建者和這個 Statechain 的營運者走一遍常規流程:創建共有私鑰,並簽名帶有時間鎖的區塊交易;然後創建者(Alice)找到一個願意接受 statechain 資金的通道對手方(Bob)。Alice 和 Bob 一起,如法炮製 Alice 與營運者一起分割私鑰的流程,創建出他們自己的共有公鑰。然後,倆人都把他們的共有公鑰和個人公鑰碎片分享給這個 Statechain 的營運者。這使得營運者可以質詢他們,讓他們各自簽名並證明自己同意按最新的餘額合作關閉 statechain,而不必等候 statechain 的取款時間鎖過期。

從這裡開始,有了 Bob 的授權,Alice 和這個 Statechain 的營運者就可以簽名一筆交易,將 statechain 中的資金直接花費到一個多簽名的閃電通道中,並處理閃電網路通道的創建流程(譯者註:這條通道是 Alice 和 Bob 的通道)。

這時候,這個 Statechain 地址依然控制在 Alice 和營運者手中,但開啟閃電通道的交易現在到了 Bob 手上,而且其時間鎖比最初那筆取款交易更短,保證了這筆交易可以在 Alice 單方面關閉這個 Statechain 之前就生效。然後,Alice 和 Bob 跟營運者完成最後一次更新,使用他們的共有公鑰跟營運者創建一筆將 statechain 資金花費到 Alice-Bob 通道的取款交易(譯者註:常規的 statechain 轉賬,讓 Alice 和 Bob 的共有公鑰變成這個 statechain 的新主人),並且這筆取款交易的時間鎖更短。現在,Alice 和 Bob 可以向外公布自己有一條閃電通道了。

(譯者註:這套協議的目的是基於一筆 statechain 資金,在當前所有者和意向支付者之間創建一條通道,從而允許當前所有者分割 statechian 資金、僅支付部分資金給意向支付者。在協議結束後,相關的 Statechain 將不再屬於原主人(在這裡是 Alice),因為跟 Alice 匹配的私鑰碎片已被營運者銷毀;取而代之的是 Alice-Bob 的通道。

(譯者註:它的缺點,或者說尚不完備的地方,在於 Alice 其實無法把通道(或者說自己剩下的餘額)全部轉給 Carol,因為這需要把 Alice 和 Bob 在通道內發生的所有交互的記錄都轉移給 Carol,否則 Alice 和 Bob 可以串謀欺詐 Carol;但這裡沒有設計保證 Alice 轉移了所有資料的機制,這需要 Alice/Bob 在每次發起閃電支付之後,都提交一個承諾。不過,基於上文所述的原理,也可以考慮將它實現為多方參與的 coinpool,而不是兩方參與的閃電通道。)

提升 statechain 的效用

這一提議將大大提升 statechain 的效用,因為它放寬了 statechain 原本嚴格的流動性要求。不論什麼時候某人想接受一筆 statechain 資金但發現面額跟支付額不匹配,發送者都可以通過跟 TA 開啟一條閃電通道來解決這個問題,直到某一方花完自己剩下的資金(或者說通道中的資金全部屬於其中一方),再完成一筆轉移全部 statechain 資金的轉賬。這樣的可能性不僅提升了 statechain 的用途,也提高了閃電網路的效用(如果這套協議得到合理的支持的話)。

通道內餘額的再平衡,對閃電網路中的節點是必要的功能,不論你是路由節點還是僅僅收發交易的邊緣節點。當通道內的資金全部行動到了通道的一端,這條通道就失去了向某個方向傳遞支付的作用(如果所有資金都在你這邊,你就沒法通過這條通道收取支付了;如果所有資金都在你的對手那邊,那你就沒辦法使用這條通道來支付了)。所以,你需要把一條通道中的資金行動到另一條通道中,通過引起別的通道的失衡來重新平衡你自己的通道。最終,這樣的動態會以某處的通道必須在閃電網路和鏈上交換資金收尾。

Statechain 則允許流動性像在鏈上行動那樣,但又不需要創建鏈上的足跡,也不必為此支付手續費。假設你有一條枯竭的通道,所有的餘額都在你的對手那邊,你已經沒有可以花費的容量了,同時你又有一個 Statechain 資金。那麼,你可以把這筆 Statechain 資金轉移給任何願意接受的人,假如你不能花費全部的 Statechain 資金,那麼你可以在它之上建立一條閃電通道,而且這條通道也可以用來再平衡你的普通閃電通道。

從再平衡你的通道需要經過的通道數量上看,這將允許提升效率(別忘了,當你要再平衡你的通道時,它會讓資金流經的每一條通道都失衡),最優的情況下,你可以直接將資金髮送給同一個對手,從而再平衡你的通道。如果你希望關閉某一條通道,跟另一個人開啟另一條通道,你甚至可以將此通道中的所有餘額都再平衡掉、全部轉移到你跟新對手基於 statechain 建立的新通道中。

Statechain 和閃電網路的未來

在討論他們未來的計劃是,Commerceblock 的 Nicolas Gregory 說:「我們的計劃是建立一套結合 statechain 和閃電網路技術的標準方法,從而協助閃電網路通過使用 state channel 在鏈下完成再平衡。當前的這套規範將成為實現這一目標的基石。」

在一開始,statechain 就被提議跟閃電網路結合,以解決它自身的一個問題:在支付時必須轉移整個 UTXO 的價值。這也為閃電網路提供了一定程度的靈活性,因為閃電網路沒有自身的流動性管理方法。

現在,閃電網路已經處在早期增長的健康階段,而一份可靠的 statechain 實現也已經存在超過一年了,所以,是時候考慮結合兩者了。閃電網路,作為一個網路,是一個可在任意沒有直接聯繫的兩方之間自動化處理轉賬的系統。至於網路圖譜中的各通道的內部是如何工作的,嚴格來說,對於發送者和接收者,都是無關緊要的;只要建立通道的兩方自己過得去就行。

Statechain 和閃電通道都給對方提供了許多好處,我們需要做的,就是開發出讓兩者交互的標準化方法。

原文連結

暢行幣圈交易全攻略,專家駐群實戰交流

▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!

前往鉅亨買幣找交易所優惠






Empty