時間:2021-12-16|瀏覽:434
4月7日,V神的網(wǎng)站更新了一篇名為《分片為何如此出色:揭開技術(shù)屬性的神秘面紗》的文章,其中提到:分片是以太坊可擴(kuò)展性的未來,它將是幫助生態(tài)系統(tǒng)每秒支持?jǐn)?shù)千筆交易,并允許世界上大部分地區(qū)以可承受的成本定期使用該平臺的關(guān)鍵。
你或許也知道,限制目前區(qū)塊鏈技術(shù)大規(guī)模落地應(yīng)用的一個很重要因素就是性能,這也是為什么很多傳統(tǒng)互聯(lián)網(wǎng)從業(yè)者不太看好區(qū)塊鏈技術(shù)的一個原因。那么,如何解決區(qū)塊鏈的性能問題呢?其中的一個解決方案就是分片技術(shù)(Sharding)。
什么是分片?
分片是數(shù)據(jù)庫分區(qū)的一種形式,也稱為水平分區(qū),即將一個大的數(shù)據(jù)庫切分成很多小的、可處理的部分,從而提高性能,縮短響應(yīng)時間。
分片并不是一個新的概念,早在 90 年代后期就出現(xiàn)在了傳統(tǒng)的中心化數(shù)據(jù)庫管理中。這個概念的流行,要?dú)w功于一個多玩家同時在線玩的角色扮演游戲 Ultima Online。
在這個游戲中,開發(fā)者將玩家分配到不同的服務(wù)器來緩解流量壓力(這意味著有很多個平行的“游戲世界”)。商業(yè)上,一個普遍的分片案例就是將用戶信息的數(shù)據(jù)庫按照地理位置劃分,同一個區(qū)域的用戶信息放在一起,存到單獨(dú)的服務(wù)器中。
什么是區(qū)塊鏈領(lǐng)域里的分片?
區(qū)塊鏈就相當(dāng)于一個數(shù)據(jù)庫,每一個節(jié)點(diǎn)都相當(dāng)于一個獨(dú)立的服務(wù)器。正常情況下,這些節(jié)點(diǎn)每次只有一個節(jié)點(diǎn)能獲得記賬出塊的權(quán)利,剩下沒獲得出塊權(quán)的節(jié)點(diǎn)相當(dāng)于做了“無用功”,白白浪費(fèi)了算力。
如果將分片技術(shù)運(yùn)用到區(qū)塊鏈中,就相當(dāng)于將區(qū)塊鏈網(wǎng)絡(luò)里的所有待處理任務(wù)(比如確認(rèn)交易、運(yùn)行 DApp 等)進(jìn)行分解,全網(wǎng)的節(jié)點(diǎn)也進(jìn)行分組,每一組同時處理一個分解后的任務(wù)(比如 150 筆待確認(rèn)交易),這樣就從原先單一節(jié)點(diǎn)處理全網(wǎng)的所有任務(wù)變成了多組節(jié)點(diǎn)同時并行處理。
舉個例子,假設(shè)目前以太坊上有 8,000 個節(jié)點(diǎn)(礦工),全網(wǎng)待確認(rèn)的交易是 15,000 筆。以太坊每秒能處理 7-15 筆交易,正常情況下至少需要 1000 秒才能處理完這些待確認(rèn)的交易,當(dāng)然處理的過程中又會有新的待確認(rèn)交易產(chǎn)生。
如果采用分片技術(shù),將 8,000 個節(jié)點(diǎn)分成 100 組,每組 80 個節(jié)點(diǎn),這 15,000 筆待確認(rèn)交易分成 100 個分區(qū),每個分區(qū) 150 筆,那么,每組節(jié)點(diǎn)(80 個)可以并行處理各自分區(qū)里的待確認(rèn)交易(150 筆),這樣最快 10 秒鐘就可以全部處理完那 15,000 筆待確認(rèn)交易。
從這個例子中,我們可以看到,分片技術(shù)可以大幅提高區(qū)塊鏈的性能。
分片技術(shù)潛在的風(fēng)險
那么,分片技術(shù)有沒有缺陷呢?答案是肯定的。
分片技術(shù)雖然能在一定程度上解決區(qū)塊鏈的性能問題,讓區(qū)塊鏈更具有可擴(kuò)展性,但也存在兩個缺陷。
一個是分區(qū)后,不同區(qū)的通信問題。上面的例子,將以太坊網(wǎng)絡(luò)分成 100 個分區(qū),每個分區(qū)都是獨(dú)立的,相當(dāng)于有 100 條獨(dú)立的、平行的以太坊區(qū)塊鏈,每條都由一組礦工(80 個節(jié)點(diǎn))維護(hù)和確認(rèn)交易。
這 100 條獨(dú)立的以太坊區(qū)塊鏈并不能相互通信,如果要通信,勢必要增加跨分區(qū)的通信機(jī)制(類似垮鏈),這會增加區(qū)塊鏈的復(fù)雜性,開發(fā)難度也會提高。
第二個是區(qū)塊鏈的安全性。還是上面的例子,在未分片之前,以太坊網(wǎng)絡(luò)是 8,000 個節(jié)點(diǎn)組成的算力,分成 100 個分區(qū)后,每個分區(qū)相當(dāng)于一條獨(dú)立的以太坊區(qū)塊鏈,算力下降到 80 個節(jié)點(diǎn)組成的算力。
此時,對其中一個分區(qū)進(jìn)行 51% 算力攻擊就容易很多??刂屏艘粋€分區(qū),攻擊者就可以在這個分區(qū)內(nèi)做惡,篡改交易。
以太坊基金會計劃將分片技術(shù)作為以太坊 2.0 的升級內(nèi)容之一。以太坊如何解決分片技術(shù)的上述 2 個缺陷,我們拭目以待。
熱點(diǎn):以太坊 以太坊區(qū)塊 區(qū)塊鏈 區(qū)塊鏈技術(shù) 數(shù)據(jù) 以太 什么是區(qū)塊鏈