閃電網路當前的主要侷限,Part-1

買賣虛擬貨幣

引言

我在推特上發起了一次調查,發現大家似乎對閃電網路的侷限性都很感興趣——究竟閃電網路能做些什麼,又或做不到什麼。今天我就來和大家釐清一下閃電網路的能力範圍。

通道配置問題

從我一開始接觸閃電網路,我就在思考閃電網路的目標究竟是什麼;我突然靈光乍現—— 假如全世界的交易都是閃電交易那會怎麼樣?(當然這不切實際,因為全世界範圍的交易種類太多了。)我想要以此假設為切入點,討論如何使得閃電網路相容所有的交易。

首先我們要明確閃電網路的定義 —— 閃電網路指的是基於餘額鎖定的狀態通道所構建的系統。在系統中你我各自持有一些錢,然後我們使用閃電網路實現 “從我這兒轉錢到你那兒” 或 “從你那兒轉錢到我這兒”。我們還能使用 HTLCs 擴充套件以上功能,比如實現 “我轉錢給你,然後你再轉錢給某某”。上述行為的前提是我們具備這些餘額鎖定的狀態通道,這也是閃電網路的基本功能界限。現在的問題是,這些通道有固定的容量與參與者集合,如果我們臨時需要傳送一筆大額交易,而在此之前你從未與收款方有過任何互動,就會面臨通道還未正確設定的問題;你可以自行更改設定,但要求使用者去做這樣的操作就違背了我們設計閃電網路的初衷。

這可能是使用閃電網路會遇到的主要問題,不過除此之外,還有一些問題大家可能會有興趣。

一、閃電網路是嶄新的生態系統、首創的平臺,需要大家學習如何使用它,同時還需要有人進行協議開發、軟體開發、建立路由節點、擔保資金等等。構建閃電網路生態系統,也是種建設市場的過程,沒有這些人做出貢獻,閃電網路將一文不值,因此生態系統的建立也是制約閃電網路的因素之一。

二、Layer-1 是決定閃電網路能否運作的關鍵因素。即使能夠在鏈下做許多事,我們仍需要保證這些操作都是基於去中心化的 Layer-1 ,而且鏈下的交易最終能夠上鍊。

就目前情況來看,比特幣網路是最有可能成為第二層網路(閃電網路)底層支援的 Layer-1。

大額交易

從貨幣的角度來看,我們必須確保比特幣是被大眾接受的支付工具,因為在推薦其他人使用閃電網路進行支付可能遇到的最大障礙是,該如何說服他們使用這類奇怪的貨幣(比特幣),這對使用者有什麼好處?為什麼這是件很酷的事?這貌似是我們這種閃電網路協議開發者無法控制的事,但這對於閃電網路的發展極為重要。

我只是要強調,如果你要進行低頻次、高額、偶發的交易,那麼使用閃電網路會遇到諸多限制,這並不適合你。有很多人問: “什麼是大額交易? 5 美元以上算嗎?還是 50、500 美元以上呢?” —— 這麼問本身就很有問題。

閃電網路是個市場、是個持續進化的生態系統,你可以將其想象為網際網路。這個網際網路中還連線者大學的內網和公司的內網,內網裡的使用者彼此關聯,因此網路頻寬非常打,能夠快速傳送資訊;然而,一旦使用者登入網際網路網看影片或做些其他事,他們就會面臨計算機的 “最後一公里” 問題:使用者以為服務商能夠提供高質量影片,但當他們撥號聯網後,卻發現(因為網速不夠)看不了高畫質影片;又或是使用者想要上傳影片,卻發現自己上傳網速不夠。

我所謂的 “大額交易” 問題,跟這個網速問題意思是一樣的

假如今天有個網路,彼此之間都在餘額鎖定為 1000 美元的通道中相互連線,那麼即使我非常富有,想傳輸百萬美元的價值,我還是會受到系統的容量限制。所以即便我有大量的錢,我想在一個鎖定餘額 1000 美元的通道中轉錢給某個人,那麼上限就是 ​1000 美元,這就是所謂的大額度。

區塊鏈 vs 閃電網路

你為什麼要使用區塊鏈?區塊鏈技術很棒,但你得忍受大量冗餘;而狀態通道卻恰好能從冗餘中獲益。如果你正在操作高價值的交易,那麼區塊鏈適合你,因為區塊鏈能夠避免資產流動過程中可能出現的問題;同時區塊鏈使用起來也相對簡單,如果你需要在一個儘可能安全的地方儲存資金,我會說那就用超級冷錢包吧。

區塊鏈網路將部分責任移轉給整個區塊鏈社羣;而閃電網路將更多責任賦予給使用者,這也意味著使用難度更大,後面我會進一步說明。

託管 vs 閃電網路

閃電網路的另一個競爭者是託管式清結算網路(如, Liquid 或類似交易所),或是其他使用閃電網路的系統,如 tipping.me 或 我建立的 htlc.me 。相比於閃電網路,託管式工作適合低價值的交易,因為區塊鏈具有一定的上鍊成本,如果你的交易額度低於這個成本,那就會出現一些問題。因此,區塊鏈在清算小額交易上的困難也制約了閃電網路。

在傳送超大額交易時,閃電網路也會遇到問題。在區塊鏈發起上千萬的交易對你或許不是事兒,但如果是價值數十億的交易,你就會開始擔心區塊鏈的工作量證明是否靠譜,緊接著你就會想念託管式服務或是其他系統的好;更糟心的是,工作量證明需要耗費很長一段時間,你只能等著。所以閃電網路能做的事情並非無限多,面對上述這幾種情況,閃電網路並不是很好的選擇。如果你能夠找到值得信任的託管方、不介意做些妥協、不想把資金的責任攬在身上,那麼託管式服務會比閃電網路適用。

區塊大小限制

我從比較抽象的視角討論閃電網路的侷限性,如果你主要想了解閃電網路可擴充套件性的限制,那我們先來談談區塊大小的限制。究竟一個區塊能夠裝進多少交易,大家對這個數字都非常著迷;我認為觀察交易如何被裝進區塊是件很有趣的事,所以我自制了一張圖表來展示一筆普通交易的資料構成,因為開關通道的交易就是一筆普通的交易,所以我們能直接看出一次開關通道需要佔據多少資料量。圖例中表示了一個最小通道,位元組都對映為虛擬位元組;因為使用了隔離見證,所以簽名位元組數經過壓縮。按照估算,一筆通道交易大小大約是 112 個虛擬位元組數。

這是理論上構造一個通道的最小資料量,我們能將其視為單位通道大小,推算一個區塊中能容納多少筆通道交易。每個區塊約有一百萬位元組的空間,如果我們能夠將通道大小降低至 100 位元組左右,理應能在區塊中放入大量的通道。但實際上並非如此,要獲得精確的單位通道大小,還需要經過更多複雜的考慮。

節約虛擬位元組的技巧

有什麼方法能夠使通道開關交易大小縮減為理論上的最小值?如果所有交易只有一個輸出,便能節省很多空間。但是當我們關閉一個通道時,可能會有多個輸出,因為通道中至少有兩方在進行資金轉移。這時候你可以站出來呼籲, “為了降低上鍊的資料大小,我們在關閉通道前進行一下重整吧” ;所以我們會以某種方式推出其中一個輸出,使得區塊鏈只需要處理一個交易輸出。這麼做能節省區塊空間,同時節省費用。

另一種釋放鏈上空間的做法是, “開啟一個通道的同時,關閉另一個通道”。換句話說,因為某些交易輸出能作為其他交易的輸入,所以我們能將通道合併為一。 這是個非常有用的技巧。

另一種我們當前尚不支援,但是短期內會看到進展的有用技術是多簽名形式轉化,也就是把多重簽名壓縮為單個簽名的技術。這一技術極為強大,幾乎不存在什麼重大缺陷。透過簽名聚合,我們能夠將大量的簽名合而為一。如果能用 Schnorr 和 Musig 進行簽名整合當然很好,不過以橢圓曲線數字簽名(ECDSA)實現也行。

還有一件事需要考慮,很多時候人們會估算上鍊的成本,並傾向不配合關閉通道。比如存在這種情況—— “我們要將通道輸出廣播上鍊,但是對方掉線了,該怎麼辦?”

在示例中,如果有一方選擇不配合關閉通道,這並不需要透過什麼複雜的指令碼來解決,因為我們可以直接將不配合關閉通道的操作視為交易失敗條件之一。我們應該嘗試以時間鎖或更高昂的費用,透過經濟手段激勵人們彼此配合關閉通道,比如,如果不合作關閉通道,就得付出更多的費用。

另一個我們已經實現的節省虛擬位元組的方案是關於粉塵交易輸出的(比如在閃電網路中,可能出現只值半美分的交易輸出),因為在上鍊環節,這種極小額的交易輸出會被區塊鏈拒絕,或在對等傳輸階段視為垃圾交易。作為解決方案,軟體會將這些極小的輸出放進礦工費中,因此,當我們必須以不配合的方式關閉通道時,能夠稍微提高交易確認速度。

增加通道成員,減少虛擬位元組

改善閃電網路的又一利器則是建立多方,而非僅僅兩方參與的通道。當然這樣的設計並非萬全之策,而且這種機制的複雜性限制了它的落地應用。目前我們最多隻能在一個通道中加入兩個參與者,而在一個通道中加入更多人其實正是拓展虛擬位元組利用率的絕佳手段。

單個通道中加入多個參與者的約束條件在於,究竟輸入會被轉換為多少個輸出?通道內的交易最終還是要落到區塊鏈上的,即使某一時刻不打算上鍊打包交易,我們也要具備交易隨時上鍊的能力。

而現在面臨的的限制是每個人都想要拿回屬於自己的那一份交易輸出。比如說現在到了關閉通道的時候,我想收回屬於自己的錢,此時每一個輸出都要花費大約 30 個虛擬位元組。其實這時候你還不一定需要耗費這 30 個虛擬位元組,但當你在在通道中遇到分歧,沒法最終整合到一個輸出的情境時,就必須多消耗這 30 個虛擬位元組。

必須提醒一點的是,這些多方參與的通道,在建立時只需要一個人進行注資,即僅需要一個人來建立輸入併發起交易。我實際上可以在向通道注資之後廣而告之,“來十個人加入我剛剛建立的通道吧,這個通道的注資輸入是我一個人的,大家接下來就把我的輸入折騰成大家的輸出,當然這些輸出不會即刻反映到區塊鏈上,除非我們沒法繼續重整這些輸出,只能不情願地關閉通道,將交易廣播上鍊。”

多方參與的通道,人數可以達到相當高。基於我之前提到的簽名整合技術——將數百個簽名整合到一個簽名上——理論上我們能在一個通道內加入數以千計的參與者。在設定輸入需要留意:你其實也在設定大家的集體公鑰,而集體公鑰是由所有人的公鑰進行雜湊處理整合而成,所以並不需要多大的儲存佔位空間,就是固定大小的一段。

如果上述想法能落地實現,就意味著我們能夠在一個區塊中新增成百上千的通道。不負責任第暢想一下,也許能有數以千計的參與者加入到通道中。即使從現實出發,達到數十成百的參與者也不成問題。按這樣計算,在一週之內我們能處理達到百萬量級人次的交易。如此看來,以增加通道參與方的數量的方式來攫取通道的處理潛力具有相當大的探索空間,並且這種努力的方向並不會改變區塊鏈的屬性。

免責聲明:

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

推荐阅读

;