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