區(qū)塊鏈里,很多人對比特幣(BTC)最為熟悉。然而,比特幣網(wǎng)絡(luò)每秒最多只能處理7筆交易,超過的交易只能按順序排隊等著。
最擁擠的時候,有超過15萬筆的比特幣交易在排隊等候處理(注1)。也許,你會嘀咕:這種性能的比特幣怎么和微信、支付寶PK呢?
確實,這個問題——擴容,早已成為區(qū)塊鏈(不僅僅是比特幣)的重點優(yōu)化方向。
01
那我們需要多高性能的區(qū)塊鏈呢?
很多人會把Visa、或者雙11時淘寶的峰值交易處理速度作為區(qū)塊鏈的性能優(yōu)化目標。
事實上,在一些特殊場景下,這個性能也可能是不夠的,比如將區(qū)塊鏈應(yīng)用于物聯(lián)網(wǎng)時,對終端和設(shè)備的實時訪問控制需求,就需要極高的數(shù)據(jù)傳輸和處理速率。
因此,如果要用區(qū)塊鏈來構(gòu)建價值傳遞網(wǎng)絡(luò),有人認為它的性能至少應(yīng)該以目前整個互聯(lián)網(wǎng)信息的數(shù)據(jù)實時處理速度為目標(包括每秒200萬封郵件、6.5萬次google搜索、7.2萬次youtube視頻等、以及53TB的數(shù)據(jù)流程。數(shù)據(jù)出處見注2),這已經(jīng)絕非簡單只用每秒處理量(TPS)來要求了。
如何在目前區(qū)塊鏈有限處理能力的基礎(chǔ)上進行提升呢?
這其中存在著巨大的挑戰(zhàn)和機會,近幾年,眾多擴容方案紛紛登臺亮相,總體上,它們都來自于兩大陣營:鏈上擴容和鏈下擴容。
02
鏈上擴容
最先登臺的是鏈上擴容派,也常被稱為layer-1擴容。
所謂鏈上,顧名思義,就是直接在區(qū)塊鏈上動手術(shù),直接修改區(qū)塊鏈的基礎(chǔ)規(guī)則,包括區(qū)塊大小、共識機制等。拿修路打個比方,如果車多路堵了,最直接的就是把原來的雙向二股車道擴充成四股,再不夠就改成六股、八股。
比特幣現(xiàn)在每秒只能處理7筆,直接原因是出塊慢、區(qū)塊容量小,那就把出塊速度提高、區(qū)塊變大。
比如萊特幣(LTC),在比特幣代碼基礎(chǔ)上,把出塊速度從平均10分鐘左右,提高了4倍到每2.5分鐘出塊;還有比特幣現(xiàn)金(BCH),也是在比特幣基礎(chǔ)上,把區(qū)塊從1M大小直接提到32M,處理能力提高了32倍;還有采用相對復(fù)雜的分片方案,把原來全網(wǎng)共同處理每一筆交易,優(yōu)化成多個小組并行運作,在同樣的時間干更多的活,等等。
鏈上擴容這種方式比較直接,不過也和道路直接擴充一樣,有點折騰,或者說很難一步到位。好不容易實現(xiàn)了擴容,更高性能需求的應(yīng)用場景又出現(xiàn)了,需要不斷地超越自己。而且,因為所有交易仍然需要在區(qū)塊鏈這個分布式系統(tǒng)中進行數(shù)據(jù)同步,整個網(wǎng)絡(luò)的性能瓶頸會取決于其中單臺服務(wù)器的處理性能。
所以,通常會認為鏈上擴容方案在性能上會存在難以逾越的天花板。
03
鏈下擴容
于是,從2018年開始,涌現(xiàn)了越來越多的鏈下擴容方案,也常被稱為Layer-2擴容方案。
鏈下擴容和鏈上擴容是相對的,鏈下擴容陣營換了種思路,他們不直接改動區(qū)塊鏈本身的規(guī)則(區(qū)塊大小、共識機制等),而是在其之上再架設(shè)一層來做具體的活,只將必要信息、或需要共識參與(如數(shù)據(jù)出錯、發(fā)生糾紛時)時才與區(qū)塊鏈進行信息交互和傳播。因為擴容本質(zhì)上沒有發(fā)生在區(qū)塊鏈上,因此這類方案被直觀地稱為鏈下擴容。
仍然拿道路擴容打比方的話,鏈下擴容不是在原有道路上擴充,而是在現(xiàn)有路線上架個可以四通八達的高架、或者隧道,普通汽車都上那兒開,原來的路不到萬不得已盡量不用。
鏈下擴容方案中,大量的事務(wù)通常只在參與節(jié)點間直接交易,不會進行全網(wǎng)傳播,效率直接取決于節(jié)點間的網(wǎng)絡(luò)性能,顯然效率更高。而且因為沒有全網(wǎng)廣播,信息不能公開可查,通常隱私性也更高。
因此,鏈下交易性能不受原有區(qū)塊鏈性能的影響,鏈下擴容的性能目標沒有最高,只有更高。
鏈下擴容主要包括狀態(tài)通道、側(cè)鏈等解決方案,閃電網(wǎng)絡(luò)就是鏈下擴容的代表選手之一。
在閃電網(wǎng)絡(luò)中,交易雙方可直接構(gòu)建通道,之后便可在通道內(nèi)點對點實現(xiàn)任意多筆零確認的交易,只需要在通道開啟和關(guān)閉時才跟區(qū)塊鏈“打個招呼”,在全網(wǎng)傳播確認即可。
它不需要修改比特幣的共識算法,比特幣網(wǎng)絡(luò)從每筆交易的處理者,后退一步,僅處理少量關(guān)鍵交易,或在交易出現(xiàn)糾紛時進行處理以“主持公道”。這樣的工作量現(xiàn)有性能即可滿足。
當然,鏈下擴容也并非完美,其方案也伴隨著是否會帶來中心化、或者數(shù)據(jù)可能會被修改等等疑慮。
不過,作為普通用戶,通常不會考慮具體采用了哪種解決方案的。隨著區(qū)塊鏈商業(yè)應(yīng)用場景的落地,哪些解決方案能更好地解決問題,并且不影響使用體驗,就很可能會在擴容方案中勝出。