閃電網絡產生的背景
經過10年的發展,今天的比特幣已經成為了總市值數千億美元的加密數字貨幣體系。我們已經可以用比特幣購買很多東西了,小到一杯咖啡,大到投資房產,但是隨著用戶數的增長,比特幣網絡在承擔高頻支付上的弊端也逐漸暴露出來。
由于最初設計的原因,比特幣網絡可支持的交易頻率較低、交易確認成交時間較長,無法支撐起未來高頻率、實時到賬的支付需求。
比特幣網絡為了保證交易的正確性和不可篡改性,需要將每筆交易的詳細內容都記錄在區塊中,同時為了控制區塊數據的增長速度,比特幣網絡將每個區塊的大小限制在了1MB,每個區塊的挖礦時間控制在10分鐘左右,這樣理想狀況下,比特幣每秒可處理的交易數(TPS)大約為7筆。實際上,每秒3筆左右的交易頻率就已經把比特幣網絡的區塊塞滿了,因此大家經常會遇到比特幣轉賬遲遲無法得到確認的問題。
此外,比特幣網絡為了確保交易的不可篡改性,一般需要等待5-6個區塊確認后,收款方才認可交易成功,這樣一次交易的確認等待時間就需要1個小時左右,用戶體驗極其不好。而且由于待確認的交易數越來越多,比特幣轉賬的手續費也越來越高,目前主網上,為一筆普通轉賬支付的手續費為0.0001~0.001BTC,幾塊錢到幾十塊塊錢不等。因此,現在的比特幣支付網絡已經不太適合于小額交易了。
針對比特幣以上的問題,目前社區里已經有不少的擴容方案,例如采用隔離見證能減小每筆交易數據的大小,此外還有大區塊擴容方案,將原先1MB的限制提升到32MB甚至128MB,但是這些方案都是治標不治本的,只能將比特幣網絡的支付能力提升幾倍,最多也就到幾十筆每秒而已,和VISA或者支付寶每秒百萬級的支付頻率比起來,顯得微不足道。
閃電網絡正是在這樣的大背景下被提出的,它的目標是使得比特幣網絡能支持高頻、實時的交易。
閃電網絡的實現原理
閃電網絡(Lighting Network)是一個二層協議,就像架在公路上的高架橋,通過一個大型的雙向通道網絡來進行多筆支付,無需將每筆交易都記錄到比特幣區塊鏈上。這樣一來,即避免了比特幣交易速率的限制,又能以更低的費用享受到更快的交易速度和更大的容量。
以上圖為例,每個閃電網絡用戶就是一個藍色的點,一條閃電網絡支付通道就是兩個點之間的一條連線,如果這個連線足夠多,使得每兩個點之間都有一條路徑可達,那就可以實現所有用戶之間的高頻、實時交易了。
1. 建立通道
我們假設用戶Alice和用戶Bob想使用閃電網絡支付方案來進行交易,那么他們首先要構建一條他們倆之間的閃電網絡支付通道,然后各自往一個2-2多簽地址發起一筆鏈上交易,存入一部分BTC,這部分BTC相當于保證金。通過這個多簽地址發送的每一筆交易都需要兩人進行簽名。
如果Alice向多簽地址里存了1BTC,那么Alice在這個通道里向Bob可發送的最大金額不能超過1BTC,這樣可以防止交易過程中有作弊行為。
用現實世界的銀行系統舉例,就是Alice和Bob需要一起去銀行開一個公共賬號,兩人各自往這個公共賬號里存入一部分錢,兩人和銀行一起簽訂一份合同,約定后續需要兩個人同時簽字的合同才可以操作這個公共賬號。在閃電網絡里,Alice 和 Bob 都無法作弊,一旦有一方作弊,另一方可以獲得支付通道里的所有金額等。
2. 閃電交易
Alice 和Bob之間建立了閃電網絡支付通道后,就可以用來進行交易了。這些交易需要兩者的數字簽名,并可以通過支付通道實現瞬間到賬。
我們都知道比特幣交易的本質是UTXO( Unspent Transaction Output),每一筆鏈上交易都需要有交易輸入(資金來源),和交易輸出,也就是UTXO。
在閃電網絡的例子里,Alice和Bob之間通過支付通道發生的很多交易不會出現在鏈上,只是通過公共賬戶余額分配來顯示。最終只有關閉支付通道的那筆交易才會上鏈,通過這筆交易,我們可以看到最終通道關閉時公共地址中的余額。
舉個例子,如果A和B最開始都向公共地址轉入了1BTC,期間兩人之間發生了很多筆交易,但最后關閉支付通道時A的公共地址中只有0.5BTC,B有1.5BTC,那么上鏈的那筆交易就顯示為A向B轉賬0.5BTC。
3. 路由節點
當然,個人用戶無法與每一個建立一條閃電網絡通道,截止2019年1月19日,閃電網絡共有2.4萬條通道。
如果交易節點沒有直連的通道,可借助路由節點(相當于中介)進行交易,當然這需要給這些“中介”支付一些路由費用。
現在已經有不少人做起了路由節點的生意,希望通過這些節點給閃電網絡帶來一些流動性,并可以從中收取一點費用。此外,還有一些電商平臺利用閃電網絡提供生活類服務,比如充話費等。
評論
查看更多