引言
我在推特上發起了一次調查,發現大家似乎對閃電網絡的局限性都很感興趣——究竟閃電網絡能做些什么,又或做不到什么。今天我就來和大家理清一下閃電網絡的能力范圍。
通道配置問題
從我一開始接觸閃電網絡,我就在思考閃電網絡的目標究竟是什么。
我突然靈光乍現——假如全世界的交易都是閃電交易那會怎么樣?
我想要以此假設為切入點,討論如何使得閃電網絡兼容所有的交易。
首先我們要明確閃電網絡的定義——閃電網絡指的是基于余額鎖定的狀態通道所構建的系統。
在系統中你我各自持有一些錢,然后我們使用閃電網絡實現“從我這兒轉錢到你那兒”或“從你那兒轉錢到我這兒”。我們還能使用HTLCs擴展以上功能,比如實現“我轉錢給你,然后你再轉錢給某某”。
上述行為的前提是我們具備這些余額鎖定的狀態通道,這也是閃電網絡的基本功能界限。
現在的問題是,這些通道有固定的容量與參與者集合,如果我們臨時需要發送一筆大額交易,而在此之前你從未與收款方有過任何交互,就會面臨通道還未正確設置的問題;你可以自行更改設置,但要求用戶去做這樣的操作就違背了我們設計閃電網絡的初衷。
這可能是使用閃電網絡會遇到的主要問題,不過除此之外,還有一些問題大家可能會有興趣。
閃電網絡節點數量已達14833個:金色財經報道,據1ML.com數據,目前,支撐網絡的節點數量達到14833個,相較30天前數據,環比上漲3.93%;通道數量為35684,相較30天前數據,環比上漲0.3%;閃電網絡承載能力目前為1049.78BTC,約合2021.22萬美元。[2020/11/25 22:08:16]
1
閃電網絡是嶄新的生態系統、首創的平臺,需要大家學習如何使用它,同時還需要有人進行協議開發、軟件開發、建立路由節點、擔保資金等等。
構建閃電網絡生態系統,也是種建設市場的過程,沒有這些人做出貢獻,閃電網絡將一文不值,因此生態系統的建立也是制約閃電網絡的因素之一。
2
Layer-1是決定閃電網絡能否運作的關鍵因素。
即使能夠在鏈下做許多事,我們仍需要保證這些操作都是基于去中心化的Layer-1,而且鏈下的交易最終能夠上鏈。
就目前情況來看,比特幣網絡是最有可能成為第二層網絡底層支持的Layer-1。
大額交易
從貨幣的角度來看,我們必須確保比特幣是被大眾接受的支付工具,因為在推薦其他人使用閃電網絡進行支付可能遇到的最大障礙是,該如何說服他們使用這類奇怪的貨幣,這對使用者有什么好處?
為什么這是件很酷的事?
閃電網絡節點數量已達13158個:金色財經報道,據1ML.com數據,目前,支撐網絡的節點數量達到13158個,相較30天前數據,環比上漲2.24%;通道數量為37525,相較30天前數據,環比上漲1.6%;閃電網絡承載能力目前為993.62BTC,約合909.01萬美元。[2020/7/20]
這貌似是我們這種閃電網絡協議開發者無法控制的事,但這對于閃電網絡的發展極為重要。
我只是要強調,如果你要進行低頻次、高額、偶發的交易,那么使用閃電網絡會遇到諸多限制,這并不適合你。
有很多人問:“什么是大額交易?5美元以上算嗎?還是50、500美元以上呢?”——這么問本身就很有問題。
閃電網絡是個市場、是個持續進化的生態系統,你可以將其想象為互聯網。
這個互聯網中還連接者大學的內網和公司的內網,內網里的使用者彼此關聯,因此網絡帶寬非常打,能夠快速發送信息。
然而,一旦使用者登錄互聯網網看視頻或做些其他事,他們就會面臨計算機的“最后一公里”問題:使用者以為服務商能夠提供高質量視頻,但當他們撥號聯網后,卻發現看不了高清視頻;又或是使用者想要上傳視頻,卻發現自己上傳網速不夠。
我所謂的“大額交易”問題,跟這個網速問題意思是一樣的。
假如今天有個網絡,彼此之間都在余額鎖定為1000美元的通道中相互連接,那么即使我非常富有,想傳輸百萬美元的價值,我還是會受到系統的容量限制。
比特幣閃電網絡節點數達12782個:據1ML數據,當前比特幣閃電網絡節點數達12782個,過去30天內增加0.88%;通道數量為36593個,過去30天內上升1.7%;網絡容量達到947.48個BTC,過去30天內上升1%。[2020/6/12]
所以即便我有大量的錢,我想在一個鎖定余額1000美元的通道中轉錢給某個人,那么上限就是1000美元,這就是所謂的大額度。
區塊鏈vs閃電網絡
你為什么要使用區塊鏈?
區塊鏈技術很棒,但你得忍受大量冗余;而狀態通道卻恰好能從冗余中獲益。
如果你正在操作高價值的交易,那么區塊鏈適合你,因為區塊鏈能夠避免資產流動過程中可能出現的問題;同時區塊鏈使用起來也相對簡單,如果你需要在一個盡可能安全的地方保存資金,我會說那就用超級冷錢包吧。
區塊鏈網絡將部分責任移轉給整個區塊鏈社區;而閃電網絡將更多責任賦予給使用者,這也意味著使用難度更大,后面我會進一步說明。
托管vs閃電網絡
閃電網絡的另一個競爭者是托管式清結算網絡,或是其他使用閃電網絡的系統,如tipping.me或我創建的htlc.me。
相比于閃電網絡,托管式工作適合低價值的交易,因為區塊鏈具有一定的上鏈成本,如果你的交易額度低于這個成本,那就會出現一些問題。
動態 | 瑞士咖啡館支持比特幣及閃電網絡自助點單:據Bitcoinist報道,瑞士咖啡館energyKitchen已成為世界上第一家允許使用比特幣和閃電網絡(LN)進行自助點單的商店。energyKitchen已開始通過網上商店提供咖啡、飲料和食品,并在其實體商店場所外提供QR碼。據悉,該應用只支持用閃電網絡錢包付款,不支持鏈上付款。[2018/9/19]
因此,區塊鏈在清算小額交易上的困難也制約了閃電網絡。
在發送超大額交易時,閃電網絡也會遇到問題。
在區塊鏈發起上千萬的交易對你或許不是事兒,但如果是價值數十億的交易,你就會開始擔心區塊鏈的工作量證明是否靠譜,緊接著你就會想念托管式服務或是其他系統的好。
更糟心的是,工作量證明需要耗費很長一段時間,你只能等著。
所以閃電網絡能做的事情并非無限多,面對上述這幾種情況,閃電網絡并不是很好的選擇。
如果你能夠找到值得信任的托管方、不介意做些妥協、不想把資金的責任攬在身上,那么托管式服務會比閃電網絡適用。
區塊大小限制
我從比較抽象的視角討論閃電網絡的局限性,如果你主要想了解閃電網絡可擴展性的限制,那我們先來談談區塊大小的限制。
究竟一個區塊能夠裝進多少交易,大家對這個數字都非常著迷。
Bitcoin Core支持者Cobra:比特幣現金在未來支付戰爭中獲勝幾率比閃電網絡大:比特幣官網bitcoin.org的聯合所有者、Bitcoin Core曾經的支持者Cobra在推特上表示:“今天已經增加了對BCH的持有數量,并且長期以來,人們一直需要一種能夠很好進行支付的區塊鏈。為了達到這個目標,我們必須做出一定的妥協。我認為從用戶體驗角度來講,比特幣現金(BCH)在未來支付戰爭中獲勝的幾率要比閃電網絡大。”[2018/3/6]
我認為觀察交易如何被裝進區塊是件很有趣的事,所以我自制了一張圖表來展示一筆普通交易的數據構成,因為開關通道的交易就是一筆普通的交易,所以我們能直接看出一次開關通道需要占據多少數據量。
圖例中表示了一個最小通道,字節都映射為虛擬字節;因為使用了隔離見證,所以簽名字節數經過壓縮。
按照估算,一筆通道交易大小大約是112個虛擬字節數。
這是理論上構造一個通道的最小數據量,我們能將其視為單位通道大小,推算一個區塊中能容納多少筆通道交易。
每個區塊約有一百萬字節的空間,如果我們能夠將通道大小降低至100字節左右,理應能在區塊中放入大量的通道。
但實際上并非如此,要獲得精確的單位通道大小,還需要經過更多復雜的考慮。
節約虛擬字節的技巧
有什么方法能夠使通道開關交易大小縮減為理論上的最小值?
如果所有交易只有一個輸出,便能節省很多空間。
但是當我們關閉一個通道時,可能會有多個輸出,因為通道中至少有兩方在進行資金轉移。
這時候你可以站出來呼吁,“為了降低上鏈的數據大小,我們在關閉通道前進行一下重整吧”。
所以我們會以某種方式推出其中一個輸出,使得區塊鏈只需要處理一個交易輸出。這么做能節省區塊空間,同時節省費用。
另一種釋放鏈上空間的做法是,“開啟一個通道的同時,關閉另一個通道”。換句話說,因為某些交易輸出能作為其他交易的輸入,所以我們能將通道合并為一。這是個非常有用的技巧。
另一種我們當前尚不支持,但是短期內會看到進展的有用技術是多簽名形式轉化,也就是把多重簽名壓縮為單個簽名的技術。
這一技術極為強大,幾乎不存在什么重大缺陷。
通過簽名聚合,我們能夠將大量的簽名合而為一。
如果能用Schnorr和Musig進行簽名整合當然很好,不過以橢圓曲線數字簽名實現也行。
還有一件事需要考慮,很多時候人們會估算上鏈的成本,并傾向不配合關閉通道。
比如存在這種情況——“我們要將通道輸出廣播上鏈,但是對方掉線了,該怎么辦?”
在示例中,如果有一方選擇不配合關閉通道,這并不需要通過什么復雜的腳本來解決,因為我們可以直接將不配合關閉通道的操作視為交易失敗條件之一。
我們應該嘗試以時間鎖或更高昂的費用,通過經濟手段激勵人們彼此配合關閉通道,比如,如果不合作關閉通道,就得付出更多的費用。
另一個我們已經實現的節省虛擬字節的方案是關于粉塵交易輸出的,因為在上鏈環節,這種極小額的交易輸出會被區塊鏈拒絕,或在對等傳輸階段視為垃圾交易。
作為解決方案,軟件會將這些極小的輸出放進礦工費中,因此,當我們必須以不配合的方式關閉通道時,能夠稍微提高交易確認速度。
增加通道成員,減少虛擬字節
改善閃電網絡的又一利器則是創建多方,而非僅僅兩方參與的通道。
當然這樣的設計并非萬全之策,而且這種機制的復雜性限制了它的落地應用。
目前我們最多只能在一個通道中加入兩個參與者,而在一個通道中加入更多人其實正是拓展虛擬字節利用率的絕佳手段。
單個通道中加入多個參與者的約束條件在于,究竟輸入會被轉換為多少個輸出?
通道內的交易最終還是要落到區塊鏈上的,即使某一時刻不打算上鏈打包交易,我們也要具備交易隨時上鏈的能力。
而現在面臨的的限制是每個人都想要拿回屬于自己的那一份交易輸出。
比如說現在到了關閉通道的時候,我想收回屬于自己的錢,此時每一個輸出都要花費大約30個虛擬字節。
其實這時候你還不一定需要耗費這30個虛擬字節,但當你在在通道中遇到分歧,沒法最終整合到一個輸出的情境時,就必須多消耗這30個虛擬字節。
必須提醒一點的是,這些多方參與的通道,在建立時只需要一個人進行注資,即僅需要一個人來建立輸入并發起交易。
我實際上可以在向通道注資之后廣而告之,“來十個人加入我剛剛建立的通道吧,這個通道的注資輸入是我一個人的,大家接下來就把我的輸入折騰成大家的輸出,當然這些輸出不會即刻反映到區塊鏈上,除非我們沒法繼續重整這些輸出,只能不情愿地關閉通道,將交易廣播上鏈。”
多方參與的通道,人數可以達到相當高。
基于我之前提到的簽名整合技術——將數百個簽名整合到一個簽名上——理論上我們能在一個通道內加入數以千計的參與者。
在設置輸入需要留意:你其實也在設置大家的集體公鑰,而集體公鑰是由所有人的公鑰進行哈希處理整合而成,所以并不需要多大的存儲占位空間,就是固定大小的一段。
如果上述想法能落地實現,就意味著我們能夠在一個區塊中添加成百上千的通道。
不負責任第暢想一下,也許能有數以千計的參與者加入到通道中。即使從現實出發,達到數十成百的參與者也不成問題。
按這樣計算,在一周之內我們能處理達到百萬量級人次的交易。
如此看來,以增加通道參與方的數量的方式來攫取通道的處理潛力具有相當大的探索空間,并且這種努力的方向并不會改變區塊鏈的屬性。
親愛的用戶: BigONE現已上線「手機號注冊/登錄」功能。新老用戶,皆可以通過手機號驗證,進行帳號管理,操作簡單、使用方便.
1900/1/1 0:00:00過去24小時,加密貨幣市場整體穩中有升。市值最高的加密貨幣比特幣震蕩上行至8600美元以上,徹底走出兩天前大幅回落的陰霾。市場情緒對比特幣再次突破9000美元充滿信心.
1900/1/1 0:00:00親愛的KuCoin用戶 近日,貝寶BABEL與行業領先的加密資產交易所KuCoin達成戰略合作.
1900/1/1 0:00:00CSW對比特幣白皮書的版權注冊開始產生了一系列連鎖反應。5月28日,提供文件下載服務的網站Scribd通知CoinDesk,其已經撤下了該媒體上傳的中本聰白皮書.
1900/1/1 0:00:005月28日,美國版“微信”Kik發起了DefendCrypto基金,4天募資517萬美元,該基金的唯一目的是用來起訴SEC(美國證監會).
1900/1/1 0:00:00BTC結束連續3天的小幅回升走勢并在昨日再次迎來放量下殺,前期已提示過BTC這幾天一直處于量價背離拉升,走勢并不健康,隨時有掉頭回落的風險,短期應警惕空頭再次發力,昨日反彈到前期壓力區間遇阻.
1900/1/1 0:00:00