Qtum量子鏈研究院:閃電網路

買賣虛擬貨幣
Qtum量子鏈研究院即日起將會定期進行技術課程,每期一個主題,在這裡我們用最專業的視角解讀當下區塊鏈技術熱點話題。第一期的主題:閃電網路,早在2017年11月Qtum便先一步引入閃電網路。
近月以來,比特幣網路的交易費一路飆升,一度超過 30 美元達到歷史新高,但在 2018 年,一個新的擴充套件解決方案可能會拯救數字貨幣王國。閃電網路當區塊大小限制為1MB時,比特幣網路只支援全網每秒7筆左右的交易速度,遠低於傳統的金融交易系統。同時,每10分鐘一個區塊,交易要安全的確認需要至少6個區塊,使得交易確認緩慢。為了提升比特幣網路的效能,社羣提出了鏈上擴容和鏈下擴容等不同方案。鏈上擴容主要是透過增大區塊大小,使每個區塊可以包含更多的交易數,從而提高交易容量;鏈下擴容方案就是閃電網路,其設計思想則是將大量交易放到比特幣區塊鏈之外進行,只把關鍵環節放到鏈上進行確認。閃電網路的設計最早於2015年2月在論文《The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments》中提出。
閃電網路主要透過引入智慧合約的思想來完善鏈下的交易渠道,它基於微支付通道演進而來,創造性的設計了兩種型別的交易合約:Revocable Sequence Maturity Contract(RSMC,序列到期可撤銷合約)和Hashed Timelock Contract (HTLC,雜湊時間鎖定合約)。RSMC解決了鏈下交易的確認問題,HTLC解決了支付通道的問題。閃電網路——RSMCRSMC(Revocable Sequence Maturity Contract)RSMC的設計思路是交易雙方共同出資以建立一個雙向微支付通道。下面以Alice和Bob為例解釋RSMC。建立RSMC
假設Alice和Bob是合作方,經常有比特幣交易往來,所以他們決定各拿出0.5BTC放入通道中,便於業務往來。

下圖為RSMC交易的結構圖,左側為Alice的視角,右側為Bob的視角,中間Funding Tx為共同可見。圖中帶<>號的簽名表示已經簽名成功,不帶<>號表示待簽名。

1.雙方各拿出0.5BTC,構建Funding Tx(資金池),輸出為Alice和Bob的2/2多重簽名。此時,Funding Tx未簽名,不能廣播進主鏈。

2.Alice構造Commitment Tx:C1a(Commitment Tx 1a)和RD1a(Revocable Delivery 1a),並交給Bob簽名。C1a的第一個輸出為多重簽名地址,Alice的另一把私鑰Alice2和Bob的2/2多重簽名,第二個輸出為Bob 0.5BTC。

3.RD1a為C1a第一個輸出的花費交易,輸出給Alice0.5BTC,但此型別交易帶有sequence,作用是阻止當前交易進塊,只有前向交易有sequence個確認時才能進塊

4. Bob構造Commitment Tx:C1b(Commitment Tx 1b)和RD1b(Revocable Delivery 1b),並交給Alice簽名。結構與C1a、RD1a是對稱關係。

5. Bob對C1a和RD1a進行簽名,並將簽名給Alice;同理,Alice對C1b和RD1b簽名,完成後給Bob。此時,由於並未對Funding Tx進行簽名,任何一方均無法作惡,任何一方也不會有任何損失。

6. 雙方均完成對commitment Tx的簽名並交換後,各自再對Funding Tx進行簽名,並交換。此時,Funding Tx是完整的交易,可以廣播進入主鏈。

上述就是建立RSMC的全部過程。

交易雙方先預存一部分資金到微支付通道里,初始情況下雙方的分配方案等於預存的金額。每次發生交易,需要對交易後產生資金分配結果共同進行確認,同時簽名把舊版本的分配方案作廢。任何一方需要提現時,可以將他手裡雙方簽署過的交易結果寫到區塊鏈網路中,從而被確認。

任何一方在任何時候都可以提現,提現時需要提供一個雙方都簽名過的資金分配方案。在一定時間內,如果另外一方拿出證明表明這個方案已經被作廢了(非最新的交易結果),則資金罰沒給質疑方;否則按照提出方的結果進行分配。罰沒機制可以確保沒人會故意拿一箇舊的交易結果來提現。

另外,即使雙方都確認了某次提現,首先提出提現一方的資金到賬時間要晚於對方,這就鼓勵大家儘量都在鏈外完成交易。透過 RSMC,可以實現大量中間交易發生在鏈外。

交易更新

Alice和Bob各自擁有0.5BTC的餘額,此時Alice從Bob處購買了一件商品,價格為0.1BTC,那麼餘額應該變為Alice 0.4BTC,Bob 0.6BTC。於是建立新的Commitment Tx,對於Alice來說是C2a 和RD2a,對於Bob來說是C2b和RD2b,過程與上面類似。


此時兩個狀態均是有效的,那麼最核心的問題來了,因為C1a和C1b已經是處理過的交易了,C2a和C2b才是最新交易狀態,如何才能徹底廢棄掉C1a和C1b呢?RSMC採用了一個非常巧妙的方法,在C1a的第一個輸出中,採用了Alice2和Bob的多重簽名,Alice將Alice2的私鑰交給Bob,即表示Alice放棄C1a,承認C2a。同樣的邏輯,Bob將Bob2的私鑰交給Alice,即表示Bob放棄C2a,承認C2b。

Alice交出Alice2的私鑰給Bob,那麼Bob就可以修改RD1a的輸出,將RD1a中輸出給Alice的BTC輸出給他自己,形成新的交易BR1a(Breach Remedy 1a)。若Alice破壞合約,在存在C2a的情況下依然廣播出C1a,那麼Alice的懲罰就是失去她全部的幣。Alice交出Alice2的私鑰,或者對交易BR1a進行簽名,兩者是等同的,都是對C1a的放棄。反之亦然,Bob交出Bob2的私鑰給Alice即意味放棄C1b,而僅能認可C2b。

引入sequence的目的是,阻止後續交易(RD1a)進入主鏈,給出一個實施懲罰視窗期,當發現對方破壞合約時,可以有1000個塊確認的時間去實施懲罰交易,即廣播BR1a代替RD1a。若錯過1000個塊時間視窗,則無法再實施懲罰了(RD1a進入主鏈了)。

交易關閉

關閉RSMC,直接按照最終的餘額構造出一個Commitment TX即可,例如輸出為Alice 0.1BTC,Bob 0.9BTC,無需再設定多重簽名,構造懲罰交易等。


閃電網路——HTLC

上面我們講述了閃電網路中合約RSMC是交易雙方建立一個雙向的微支付通道,那閃電網路中的節點是否需要為每一位交易夥伴建立新的支付通道?

答案是不需要。

HTLC可以保障任何兩個人之間的轉賬都可以透過一條支付通道來完成。

HTLC簡單理解就是限時轉賬,透過智慧合約,雙方約定轉賬方先凍結一筆錢,並提供一個雜湊值,如果在一定時間內有人能提出一個字串,使得它雜湊後的值跟已知值匹配(實際上意味著轉賬方授權了接收方來提現),則這筆錢轉給接收方。透過HTLC可以在閃電網路任意節點之間安全轉移價值而無需信任中介節點。

下面舉例說明Alice如何使用HTLC透過閃電網路轉賬給Dave一筆資金。

假設Alice和Dave之間並未建立一個微支付通道但可以透過閃電網路建立起一條Alice和Dave之間的臨時支付路由通道。

首先雙方透過其他通道(綠色線條所示),Alice告知Dave要轉 0.01 BTC 給Dave,Dave產生一個隨機數R,以及對R進行雜湊運算得到H,Dave保留R並把雜湊值H傳遞給Alice。

Alice和Bob之間有已經建立的微支付通道,Alice可以產生一個HTLC合約並連同H送給Bob (紅色虛線所示),該合約的意思是:如果Bob能夠在合約過期(兩天)內提供一個H值對應的隨機數R值,則合約規定的 0.01 BTC就歸Bob所有,如果合約過期,則返回合約金額給Alice。同理,Bob和Dave之間也可以建立類似的HTLC合約,區別在於合約過期時間是遞減的。至此,紅色虛線所示的Alice到Dave之間支付路由通道就建立了。

履行HTLC合約的過程也相當簡明,由於Dave持有H對應的隨機數R,就可以在HTLC合約(Bob和Dave間的合約)過期前,透過把R傳遞給Bob以得到HTLC合約的資金。同理,Bob把得到的R傳遞給Alice以得到資金。

至此,整個HTLC交易完成並關閉。

閃電網路整合RSMC和HTLC兩種機制,可以讓任意兩個節點之間的交易都在鏈下完成。在整個交易中,智慧合約起到了中介的重要角色,而區塊鏈網路則確保最終的交易結果被確認。

總結

閃電網路透過將大量的交易放在鏈下完成,大大降低了主鏈負荷,從而讓主鏈快如閃電。然而,從其工作原理分析,閃電網路也會帶來一些問題。

(1)如果通道中任一節點反應遲鈍,使用者可能要等上幾個小時才能關閉支付通道,並透過另一種途徑重新傳送資金
(2)沒有離線支付: 使用者無法支付不線上的人
(3)不適合大額支付: 即使一條經由各種支付通道的路線可能存在,但通道中其它節點多重簽名錢包中的資金可能不足以轉移大筆資金
(4)集中化: 閃電網路可能會鼓勵支付樞紐的集中化(類似於礦工集中化)。閃電網路包含百萬級別的支付通道,通道內鎖定了大量的資金,特別是大的中介人通道容易成為系統性攻擊的目標。

沒有一種技術可以解決所有問題,雖然閃電網路仍然存在一些問題,但不可否認閃電網路是一個創新性的設計。對於閃電網路的研究仍在繼續,相信未來閃電網路的應用會更加完善。

參考文獻


1. Joseph Poon, Thaddeus Dryja, "The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments"
2. 知乎使用者,連結:https://www.zhihu.com/question/46515457/answer/111101523
3. 閃電網路. 區塊鏈技術指南
4. 比特幣閃電網路介紹,連結:https://segmentfault.com/a/1190000014120112
5.關於閃電網路,你應該知道的7件事,連結:https://36kr.com/p/5144019.html


更多區塊鏈資訊:www.qukuaiwang.com.cn/news

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;