區(qū)塊鏈系統(tǒng)的可伸縮性問題現(xiàn)在有什么技術可以解決嗎
區(qū)塊鏈技術的應用可能將改變組織存儲數(shù)據(jù)和執(zhí)行分布式事務的方式。即使在公共網(wǎng)絡上,區(qū)塊鏈也可以保證所有參與者都以安全、可靠和可驗證的方式訪問記錄。但是區(qū)塊鏈有一個非常明顯的限制:可伸縮性。隨著交易數(shù)量的增長,區(qū)塊鏈系統(tǒng)將變得更慢、更昂貴,從長期來看也不具備可持續(xù)性。
解決可伸縮性問題的一種方法是分片,這是一個將數(shù)據(jù)分割成可管理的塊分布在不同節(jié)點上的過程。區(qū)塊鏈分片技術已經(jīng)用于私有區(qū)塊鏈網(wǎng)絡。但是對于公共網(wǎng)絡來說,分片帶來了一些挑戰(zhàn),在公共系統(tǒng)能夠有效擴展之前,必須解決這些挑戰(zhàn)。
區(qū)塊鏈的困境
區(qū)塊鏈是一種分布式分類賬技術,用于記錄一個或多個參與者之間的交易。在傳統(tǒng)配置中,分類帳分布在多個節(jié)點上,每個節(jié)點維護一個完整的副本。區(qū)塊鏈按時間順序將每筆交易記錄到分類賬中,然后對這些交易進行同步和驗證,這些交易在所有節(jié)點上都是透明的且可驗證的。
隨著交易數(shù)量的增加,分類帳的大小也隨之增加,從而導致在每個節(jié)點上處理和存儲更多的數(shù)據(jù)。部署額外的節(jié)點會使問題變得更嚴重,因為驗證需要更多的時間。由于每個節(jié)點都必須處理每個事務,隨著延遲的增加、吞吐量的降低和存儲成本的增加,用戶不可避免地將面臨性能和可靠性問題。
顯然,我們需要一種更好的方法來擴展公共網(wǎng)絡的區(qū)塊鏈系統(tǒng)。區(qū)塊鏈分片是最流行的方法之一。它提供了一種擴展工作負載運行和數(shù)據(jù)存儲的方法,因此沒有一個節(jié)點會被迫處理整個事務負載。相反,數(shù)據(jù)會被劃分到單獨的區(qū)域中,每個節(jié)點被分配到一個特定的分區(qū)。通過這種方式,節(jié)點只處理和存儲與節(jié)點所屬的分區(qū)(或切分)相關聯(lián)的事務。
區(qū)塊鏈分片策略分片的概念起源于數(shù)據(jù)庫系統(tǒng),系統(tǒng)將數(shù)據(jù)跨多個服務器進行分區(qū),以改進事務處理。以類似的方式,可以跨多個節(jié)點對區(qū)塊鏈處理進行分區(qū),從而啟用一個并行執(zhí)行模型,該模型可以提高性能,同時減少每個節(jié)點必須處理和存儲的數(shù)據(jù)量。雖然必須修改用于驗證事務數(shù)據(jù)塊的方法,但同時可以帶來更大的吞吐量和更低的延遲。
切分數(shù)據(jù)的確切方法因應用程序的不同而不同,并沒有哪一種辦法是最好的。但盡管如此,基本概念都是相同的。每個節(jié)點被分配給一個單獨的分片,并負責驗證該分片中的事務,而不是驗證整個區(qū)塊鏈網(wǎng)絡中的每個事務。
同時,分片包含事務冗余,以確保數(shù)據(jù)的有效性和可靠性。將數(shù)據(jù)劃分為多個切片之后,每個切片將分布在多個節(jié)點上。例如,如果區(qū)塊鏈網(wǎng)絡支持1,000個節(jié)點,那么數(shù)據(jù)可能被劃分為10個分片,每個分片分配給100個節(jié)點。通過這種方式,每個節(jié)點只處理和存儲十分之一的數(shù)據(jù),但是數(shù)據(jù)仍然跨100個節(jié)點進行驗證。
區(qū)塊鏈分片的優(yōu)勢是顯而易見的。事務可以并行處理,每秒可以處理更多事務——是傳統(tǒng)區(qū)塊鏈方法的10倍。與此同時,處理和存儲成本要低得多,因為每個節(jié)點只處理十分之一的數(shù)據(jù)。
分片的四個挑戰(zhàn)對于企業(yè)私有區(qū)塊鏈部署來說,分片可能是一種有效的策略,但是在公共區(qū)塊鏈網(wǎng)絡中使用區(qū)塊鏈分片并不容易。最大的挑戰(zhàn)之一是分片間的通信。
當將節(jié)點分配給分片時,與該節(jié)點關聯(lián)的用戶和應用程序將該分片視為獨立的區(qū)塊鏈系統(tǒng),而不是較大系統(tǒng)的一部分。分片之間的通信很難建立,需要特殊的開發(fā)工作來實現(xiàn)通信機制。而且即便使用這種機制,分片之間的通信也會帶來更大的開銷,從而抵消掉分片的一些優(yōu)勢。
分片還會破壞一些更傳統(tǒng)的區(qū)塊鏈方法帶來的制衡。使用分片,用戶不再下載和驗證整個事務歷史,因此他們不能確定數(shù)據(jù)的可靠性和不可變性——這是由事務塊的鏈接序列決定的。如果沒有這些安全措施,黑客就更容易操縱或控制分片,這種情況稱為單分片接管,可能導致數(shù)據(jù)丟失或泄露。
區(qū)塊鏈分片的另一個挑戰(zhàn)是一致性和驗證。不同的區(qū)塊鏈方法依賴于不同的算法來實現(xiàn)跨節(jié)點的一致。兩種常用的算法是工作證明(PoW)和利害關系證明(PoS)。兩者都決定了如何在分布式網(wǎng)絡上驗證事務,但是它們的驗證方式有所不同。
雖然對這些算法的比較超出了本文的范圍,但值得關注的是它們都可能影響分片的實現(xiàn)方式。一般來說,PoS被認為比PoW更適合分片,大家認為PoW不適合分片是因為它驗證事務的方式。不幸的是,許多區(qū)塊鏈平臺都依賴PoW來交付服務。
算法上的差異指向了另一個挑戰(zhàn):對于如何實現(xiàn)分片,目前仍缺乏標準化。分片有幾種不同的方法,而且許多方法仍在研究、開發(fā)或測試中,以滿足涉眾對各種挑戰(zhàn)的需求。每一種分片方法都有其優(yōu)缺點,這使得行業(yè)標準更難被接受。
分片的未來可伸縮性仍然是公共區(qū)塊鏈應用實現(xiàn)所面臨的一個重大挑戰(zhàn),分片是解決這個問題的主要方法之一。但是分片必須謹慎處理,以確保它不會對區(qū)塊鏈進程產(chǎn)生負面影響或將數(shù)據(jù)置于危險之中。
事實可能會證明,區(qū)塊鏈分片將需要與其他技術(例如用于跨分片邊界通信的新協(xié)議)一起實現(xiàn),以提供必要的可伸縮性。在那之前,公共區(qū)塊鏈存儲可能仍將是今天的狀態(tài)——隨著數(shù)據(jù)的增加,性能會下降。
來源:搜狐