區塊鏈的可擴展性問題及解決方案對比

區塊鏈的性能問題

VISA是目前世界上廣泛使用的信用卡品牌,區塊鏈要達到實用水平,性能上至少需要能跟VISA之類的支付系統作比較。根據VISA在2015年的記錄,全年共產生92,064百萬筆支付交易,平均2920tps,按平均每筆交易512字節左右計算,全年交易數據量約47TB。

而目前主流區塊鏈性能情況是,比特幣每秒只能進行大約7筆交易;以太坊每秒10-20筆。目前這些區塊鏈的交易性能都無法與VISA相比。更嚴重的是,目前比特幣和以太坊的礦機都需要存儲全量數據,而單個機器的存儲容量是有限的,若無法解決這個問題,即使交易性能提升了,若按每年新增數據量47 TB算,那麼這些數據很快就會超過單機的容量,到時候整個區塊鏈網絡都無法繼續運行。

那麼,比特幣和以太坊這種擁有海量節點的區塊鏈系統,爲什麼性能卻這麼低呢?爲什麼區塊鏈的可擴展性這麼差呢?

原因分析

區塊鏈是去中心化的賬本技術,需要保證開放性、自治性、不可篡改等特性。去中心化是指使用分佈式覈算和存儲,不存在中心化的硬件或管理機構,任意節點的權利和義務都是均等的,系統中的數據塊由整個系統中具有維護功能的節點來共同維護。也就是說,系統中任意節點都需要對交易數據進行全量計算和存儲。因此,區塊鏈是沒有可擴展性的,即系統的總體性能受限於單個節點的性能上限,即使加入了大量節點,系統的總體性能也無法提升。

可擴展性是傳統分佈式系統的基本特性,但區塊鏈由於去中心化的要求,可擴展性卻難以滿足。業界總結了一個三元悖論描述去中心化與可擴展性之間的矛盾,它尚未被嚴格證明,只能被稱爲猜想,但實際系統設計過程中卻能感覺到時時受其挑戰:

去中心化(Decentralization),安全性(Security)和可擴展性(Scalability)這三個屬性,區塊鏈系統無法同時滿足,最多隻能三選其二。
區塊鏈的可擴展性問題及解決方案對比

上圖演示了區塊鏈如何在這三個因素之間作選擇及對應的策略,例如若要滿足安全性與去中心化,則需要所有節點參與共識、計算、全量存儲,但由此帶來的問題是失去可擴展性,也就是系統的總體性能無法隨着節點的增多而提升;若要滿足可擴展性與安全性,則需要中心化管理,需要保證參與共識的節點是可信的;若要滿足可擴展性與去中心化,則採用分散存儲、計算的策略,不做全量共識,則***網絡的難度降低,安全性難以保證。

提升區塊鏈系統性能的方案

我們知道,影響區塊鏈交易性能的主要因素包括共識機制、交易驗證、廣播通信、信息加解密等幾個環節。從這些環節入手,我們可以得到一些提升性能的方法。

  • 共識機制

從PoW到PoS再到DPoS和各種BFT類算法,共識機制不斷創新,區塊鏈平臺性能也得到大幅提升。

  • 交易驗證

從交易驗證機制角度出發,目前有幾種優化處理方式:

1)閃電網絡(Lightning Network)和狀態通道(State Channels),這兩種策略是保持底層的區塊鏈協議不變,將交易放到鏈下執行,通過改變協議用法的方式來解決擴展性問題。鏈下的部分可以用傳統的中心化的分佈式系統實現,性能具有可擴展性。在這種策略下,分佈式賬本上只是記錄粗粒度的賬本,而真正細粒度的雙邊或有限多邊交易明細,則不作爲交易記錄在分佈式賬本上。缺點是存在中心化的系統。

2)分片處理(sharding),以太坊項目正在研發中的分片(shard)方案的總體思路是每個節點只處理一部分交易,比如一部分賬戶發起的交易,從而減輕節點的計算和存儲負擔。

3)多鏈架構(Multi-chain)的思路則是將原本的一條鏈分成多條鏈,每條鏈都負責部分計算和存儲業務,並且有可擴展性,即鏈的數量可以隨着業務量和數據的增加而增加,系統的總體性能隨着鏈的數量的增加而提升,系統的存儲空間也能隨着鏈的數量的增加而擴大。

  • 廣播通信

P2P網絡是區塊鏈的核心技術之一,因此P2P網絡通信的效率對性能的影響非常重要。爲了能改善廣播通信性能,需要提高節點機器的物理配置,提供高速網絡連接,並採用減少廣播的共識算法,如DPoS等。

  • 信息的加解密

信息的加解密是區塊鏈的關鍵環節,主要是哈希函數和非對稱加密兩類算法。區塊鏈系統中可以採用更高性能的加密算法以提升交易驗證的性能。

方案對比

上述優化方法中,共識機制、廣播通信、信息加解密是算法層面的優化,儘管這些方案也是重要的優化,但其沒有解決根本性的問題,其性能提升仍然受限於單機性能,不是可擴展的,因此性能提升有限,本文不再詳述;交易驗證的幾個優化方案則是可擴展的方案,其中閃電網絡和狀態通道是鏈下執行的方案,採用中心化的系統提升區塊鏈性能,與區塊鏈去中心化的理念相悖,而且使用複雜、用戶體驗差(例如閃電網絡要求交易中的雙方以及中間人都必須同時在線、線下系統開發複雜因爲要尋找可用的支付通道、不適用於大額交易等),無法得到廣泛使用。因此EOS、以太坊、Cosmos及迅雷鏈等高性能區塊鏈項目均採用分片或多鏈方案。

分片或多鏈方案的思路是一樣的,都是讓每個分片或分鏈進行部分交易數據的處理和存儲,每個分片和分鏈可以並行處理不同的交易數據,這樣分片或分鏈的數量越多,系統的總體性能就越高,這兩者都是可擴展性很強的方案。

  • EOS的多鏈實現方案

EOS的技術白皮書中並沒有描述多鏈的實現方案,只描述了支持跨鏈通信的IBC(Inter Blockchain Communication)協議,跨鏈交互通過簡化生成消息存在的證明和消息序列的證明來實現。EOSIO聲稱主鏈可以支持3000以上的TPS,通過IBC可達到100萬TPS。

EOS的多鏈架構其實是側鏈方案。開發者可以單獨部署一條EOS側鏈(公鏈、私鏈都可以),運行自己的Dapp,這些側鏈有可以有自己的委員會,見證人以及計算資源,有自己的代幣,這些代幣有自己的增發方式,而且代幣可以和EOS通過接口進行錨定去實現包括鎖定在內的某種操作。側鏈最大的特徵雙向錨定(two-way-peg)技術,它使得在側鏈流通的Token價格總是與EOS價格保持一定比例或者直接採用EOS。

因此EOS的多鏈架構並不是對主鏈本身進行可擴展性改造,只是期望通過子鏈來分擔主鏈的壓力。

  • 以太坊的分片技術(Sharding)

分片(Sharding)是以太坊正在開發中的技術,其大致設計思路是:將區塊鏈網絡中的每個區塊變爲一個子區塊鏈,子區塊鏈中可以容納若干(目前爲100個)打包了交易數據的Collation(大概可以稱爲“校驗塊”,爲了在分片的情景中將其與區塊的概念區分開),這些Collation最終組成一個在主鏈上區塊;因爲這些Collation是整體作爲區塊存在的,所以其數據必定是全部由某個特定的礦工所打包生成,本質上和現有協議中的區塊沒有區別,所以不再需要增加額外的網絡確認。這樣,每個區塊的交易容量就大概擴大了100倍;而且這種設計還有利於未來的繼續擴展。

跨分片通信: 利用 UTXO 模型,並通過在主鏈上進行交易和創建一個 receipt(帶有 receipt ID),用戶可以將以太存入一個指定分片。分片鏈上的用戶可以給定 receipt ID 創建一個消費 receipt(receipt-consuming)的交易,來花費該 receipt。但UTXO適用於交易,對於合約狀態數據存儲不適用。
區塊鏈的可擴展性問題及解決方案對比

  • Cosmos的多鏈技術

Cosmos項目的目的是解決區塊鏈交互操作和可擴展性問題,其區塊鏈間通訊協議可以實現區塊鏈的互聯,支持不同區塊鏈之間的資產轉移。

網絡主要由兩部分組成,Cosmos Hub和若干個Zone。

區塊鏈的可擴展性問題及解決方案對比

Cosmos網絡裏第一條鏈是Hub,從名字和功能上都可以把它理解爲Cosmos的中心鏈或者管理員鏈,所有其它區塊鏈的交易都會在Hub記錄,一條區塊鏈上的token可以通過Hub轉移到另一條區塊鏈。Hub是Cosmos網絡的核心,和其餘的Zone是不平等的,從嚴格意義上講Cosmos網絡不是真正的分佈式系統,如果Hub發生了單點故障(當然Hub本身是分佈式的,發生問題的機率很小),Cosmos網絡的很多特性會不可用。關於這點,白皮書中強調Hub必須得到嚴格保護。

每個Zone可以看做是單獨的區塊鏈空間。每個Zone會和Hub保持狀態同步。Hub通過去中心化的驗證人組來保證安全性。Zone1向Zone2做跨鏈消息時,Zone1先生成消息包,並將其證明發布在Hub上,接下來Hub會生成Zone1的跨鏈消息包已在Hub上的存在證明的證明發佈於Zone2,接下來Zone2收妥消息包,並給出證明發佈於Hub上,最後,Hub再給出Zone2的收妥證明的證明發佈於Zone2。完成整個跨鏈消息傳遞。

  • 迅雷鏈同構多鏈架構

迅雷鏈是同構多鏈的架構,即每條鏈的結構相同、地位平等。即系統由一條條相對獨立(獨立進行共識)的鏈組成,每條鏈有多個節點,每個節點被分配到其中一條鏈上,不同的賬戶數據被錨定在不同的同構鏈上,然後接入層將交易路由到發送方所在的鏈上進行區塊打包與共識。系統中鏈的數量能夠按業務需求動態增加。因此同構多鏈的架構首先保證了系統的可擴展性。
區塊鏈的可擴展性問題及解決方案對比

不同於EOS等區塊鏈系統需要昂貴的高性能服務器作爲記賬節點,迅雷鏈使用廉價省電的玩客雲設備作爲記賬節點,構建了自己的大規模共享計算平臺。目前玩客雲節點數量已超過150萬個節點數,如此龐大的節點數量,對區塊鏈系統的可擴展性提出了嚴峻的挑戰。挑戰主要來自兩個方面:

1)玩客雲設備廉價省電,性能也低,這就要求共識算法必須使用綠色環保、適應家庭用戶的網絡環境的算法。針對這個挑戰,迅雷鏈在改進的PBFT的基礎上,還融合了DPoS的思想,在每條鏈上,都會週期性地(例如每隔5000個區塊)選舉出驗證人節點參與共識。與傳統的DPoS不同之處在於,迅雷鏈並不是根據礦工持有的代幣數量或幣齡作爲選舉標準投票權重,而是按玩客雲節點的存儲容量、網絡穩定性、帶寬、時延等標準作爲衡量標準,以獲得更好的公平性和網絡效率。

2)玩客雲節點數量龐大,家庭網絡環境複雜,要求區塊鏈系統必須設計成可擴展性高、自治能力強的架構。得益於同構多鏈的架構非常強大的可擴展性,迅雷鏈能夠充分利用海量玩客雲節點,可以將鏈數“無限”擴展,從而具備百萬級的併發處理能力。

綜上所述,迅雷鏈採用多鏈架構實現了可擴展性 + 使用PBFT實現了強一致性 + 使用更綠色環保和公平的DPoS進一步提升了共識效率、也得到了更高的可用性。從去中心化(Decentralization),安全性(Security)和可擴展性(Scalability)三要素的角度看,由海量的廣泛分佈的玩客雲設備支撐了去中心化和安全性,採用多鏈架構以實現可擴展性。

總結

共識機制、廣播通信、信息加解密等算法層面的優化,無法解決大規模去中心化系統的可擴展性問題;而閃電網絡和狀態通道是鏈下執行的方案,則與區塊鏈去中心化的理念相悖,而且使用複雜、用戶體驗差,無法得到廣泛使用。因此前沿的區塊鏈項目均採用可擴展性強的分片或多鏈方案。

其中,EOS目前是多線程的架構,總體性能還是受到單臺機器的性能所限,需要昂貴的服務器來運行區塊鏈節點,可擴展性並不算強;以太坊正在開發中的分片技術則需要主鏈負責驗證子鏈的區塊,由於主鏈會存在性能瓶頸,因此子鏈數量受到限制(100個子鏈);Cosmos也是同樣的問題,Hub必須得到嚴格保護;迅雷鏈採用的同構多鏈架構則避免了上述缺點,適用於大規則廉價節點的部署, 可以將鏈數“無限”擴展,從而具備百萬級的併發處理能力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章