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