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