什么是分片技術(shù)
在區(qū)塊鏈行業(yè),我們經(jīng)常能聽到“區(qū)塊擁堵”“交易速度太慢”等詞匯,事實(shí)確實(shí)如此,近年來爆發(fā)式增長(zhǎng)的用戶需求已經(jīng)給底層公鏈帶來了越來越多的挑戰(zhàn),比特幣社區(qū)曾為了這一問題的解決方案發(fā)生過長(zhǎng)達(dá)數(shù)年的爭(zhēng)執(zhí),甚至導(dǎo)致社區(qū)分裂;而以太坊也一度因?yàn)橐粋€(gè)掛在公鏈上的小小游戲“加密貓”而長(zhǎng)時(shí)間擁堵不堪。
區(qū)塊鏈技術(shù)面臨著一個(gè)巨大的瓶頸,那就是——公鏈的可擴(kuò)展性不夠。為此,開發(fā)者們絞盡腦汁地提出了各種各樣的方案來試圖有效提升區(qū)塊的吞吐量(TPS),我們稱這一過程為“擴(kuò)容”。
“擴(kuò)容”又分為“鏈上”和“鏈下”兩種,如果我們把區(qū)塊鏈比作一條公路,“鏈上擴(kuò)容”就好比對(duì)公路本身進(jìn)行重建,比如拓寬道路;“鏈下擴(kuò)容”則選擇另外的途徑減輕公路負(fù)擔(dān),比如建造輔路。而“分片技術(shù)”就是“鏈上擴(kuò)容”的方案之一,它被認(rèn)為是能夠有效解決區(qū)塊鏈吞吐量問題的解決方案。
所以,今天小K君就給大家講一下,到底什么是“分片技術(shù)”。
什么是分片技術(shù)?
首先,分片技術(shù)是基于傳統(tǒng)的“數(shù)據(jù)庫分片”這一概念而產(chǎn)生的一種擴(kuò)容技術(shù)。傳統(tǒng)的“數(shù)據(jù)庫分片”是把數(shù)據(jù)庫分割成多個(gè)碎片,并經(jīng)這些碎片儲(chǔ)存在不同的服務(wù)器上,使系統(tǒng)能夠更快更有效地管理數(shù)據(jù)。它給公共區(qū)塊鏈帶來的啟發(fā)是,可以將網(wǎng)絡(luò)上的交易分成不同的碎片,由網(wǎng)絡(luò)上的不同節(jié)點(diǎn)組成。當(dāng)有大量交易需要處理時(shí),不同碎片上的節(jié)點(diǎn)能夠同時(shí)并行處理不一樣的交易,每個(gè)節(jié)點(diǎn)只需處理自己所接收到的一部分交易,就能在短時(shí)間內(nèi)完成大量的驗(yàn)證工作。
為了更好地理解它,我們?cè)俅我雱倓偹v的“公路”的例子:我們把區(qū)塊鏈比作高速公路,把待驗(yàn)證的交易比作汽車,把驗(yàn)證交易的節(jié)點(diǎn)比作收費(fèi)口。原本繁忙的高速公路上只有一個(gè)收費(fèi)站,收費(fèi)站里只有一個(gè)收費(fèi)口,車輛排著長(zhǎng)隊(duì)等待通過,結(jié)果就是越積越多,交通堵塞幾近癱瘓。而分片技術(shù)就好比把收費(fèi)站重修,增加了十個(gè)收費(fèi)口,極大提高了汽車通過的速度。以這樣的思路,分片技術(shù)能夠顯著提高區(qū)塊鏈的交易速度。
這一創(chuàng)造性的思路,首次被提出是在2015年。它是由一對(duì)來自新加坡國立大學(xué)的師生,在國際頂尖安全會(huì)議CCS上發(fā)表的一篇論文《A Secure Sharding Protocol For Open Blockchains》中發(fā)布的。而這一對(duì)師生,后來也將這一理論付諸了行動(dòng),發(fā)展出了第一個(gè)分片技術(shù)落地項(xiàng)目,名為“Zilliqa”。它的測(cè)試網(wǎng)絡(luò)中存在6個(gè)分片、3600個(gè)節(jié)點(diǎn),其處理交易的速度能夠達(dá)到每秒2800個(gè),是目前公鏈中的NO.1。分片技術(shù)也得到了以太坊創(chuàng)始人V神的認(rèn)可,他甚至已經(jīng)打算在以太坊的區(qū)塊鏈上應(yīng)用分片技術(shù)來擴(kuò)大吞吐量了。
將網(wǎng)絡(luò)分割為碎片可以允許更多的交易同時(shí)被處理和驗(yàn)證,并且隨著網(wǎng)絡(luò)的增長(zhǎng),越來越多的節(jié)點(diǎn)加入,區(qū)塊鏈網(wǎng)絡(luò)也被期待能夠處理越來越多的交易,這就實(shí)現(xiàn)了它“無限大”的可擴(kuò)展性。
雖然我們大概講了分片技術(shù)的整體思路,但具體的實(shí)施,卻并不如想象中的那樣容易。下面,小K君再給大家講講分片技術(shù)的具體技術(shù)原理。
分片技術(shù)的具體原理
目前我們分片技術(shù)主要有三大類:網(wǎng)絡(luò)分片、交易分片、狀態(tài)分片。它們的基本原理都是“分流”,用多個(gè)分片同時(shí)處理不同的交易,再匯集到總鏈上。
網(wǎng)絡(luò)分片:
網(wǎng)絡(luò)分片較為簡(jiǎn)單,但也非常重要,它是被提出的最早的分片策略。它通過隨機(jī)抽取特定數(shù)量的節(jié)點(diǎn)創(chuàng)建一個(gè)分片,當(dāng)形成多個(gè)分片后,分片內(nèi)部的節(jié)點(diǎn)就會(huì)自行建立共識(shí),對(duì)各自接收到的交易進(jìn)行確認(rèn)。
在此過程中需要注意安全性,分片會(huì)導(dǎo)致確認(rèn)同一筆交易的節(jié)點(diǎn)數(shù)量減少,因此更加容易受到網(wǎng)絡(luò)攻擊和惡意節(jié)點(diǎn)的干擾。分片形成后,就可以實(shí)現(xiàn)同時(shí)處理不同的交易,提高區(qū)塊鏈網(wǎng)絡(luò)的效率。最早的分片技術(shù)項(xiàng)目“Zilliqa”就運(yùn)用了網(wǎng)絡(luò)分片。
交易分片:
網(wǎng)絡(luò)上已經(jīng)創(chuàng)建好了分片,這些分片會(huì)處理不同的交易,按照一定的依據(jù)(比如交易發(fā)起者的地址)將這些分片劃分成不同的交易分片。它解決了如何將一個(gè)交易分配到某個(gè)分片的問題,就好像把收費(fèi)站的收費(fèi)口劃分成“大型貨車收費(fèi)口”和“家用小車收費(fèi)口”一樣。
試想有人用一個(gè)地址向兩個(gè)人發(fā)起相同的交易,這兩筆交易被分配到同一個(gè)分片進(jìn)行處理,之后分片就會(huì)識(shí)別出相同的交易發(fā)起地址,從而阻止雙重花費(fèi)。如果這兩個(gè)交易被分到了不同的分片,分片中的節(jié)點(diǎn)也同樣能檢測(cè)出來,將這筆交易拒絕。目前這種技術(shù)已經(jīng)很成熟,能夠適應(yīng)多種共識(shí)機(jī)制。
狀態(tài)分片:
狀態(tài)分片是目前最復(fù)雜、最具挑戰(zhàn)性的一種分片技術(shù)提案。它又提出,不同的分片需要儲(chǔ)存不同的數(shù)據(jù),真正做到將數(shù)據(jù)庫分開,數(shù)據(jù)都分散放在了不同的分片上。而每一個(gè)狀態(tài)分片中的節(jié)點(diǎn)都儲(chǔ)存著自己分片中的所有數(shù)據(jù),而不是整個(gè)區(qū)塊鏈的數(shù)據(jù)。
例如我們有兩個(gè)分片,有兩個(gè)用戶信息,那么每個(gè)分片就保留著其中之一的用戶的交易信息,而不是把兩者的交易信息都保留。
它目前面對(duì)的問題有兩個(gè),首先,不是每個(gè)節(jié)點(diǎn)都儲(chǔ)存全網(wǎng)的每一筆交易信息,那么如果一筆交易的發(fā)起人和接受者處在兩個(gè)不同的分片上,交易信息就必須在兩個(gè)碎片之間進(jìn)行共享,兩個(gè)分片之間又進(jìn)行信息和狀態(tài)互換,更加降低了區(qū)塊鏈網(wǎng)絡(luò)的效率。
第二,如果某個(gè)分片遭受攻擊,其中的交易就會(huì)遭到中斷,別的分片的節(jié)點(diǎn)無法代替工作,只能從遭受攻擊的分片內(nèi)部節(jié)點(diǎn)開始修復(fù)。也就是它的容錯(cuò)性和抗風(fēng)險(xiǎn)能力就會(huì)降低,甚至還有過度中心化的風(fēng)險(xiǎn)。
總結(jié)
總來的說,目前分片技術(shù)還有不少挑戰(zhàn)在,但確實(shí)能夠?qū)湹目蓴U(kuò)展性起到很大幫助。
首先,區(qū)塊鏈能夠使交易的處理速度迅速提升,如果我們將加密貨幣的未來與支付手段聯(lián)系在一起,以更低的費(fèi)用搭配更高的處理能力,加密貨幣逐漸走向支付手段的路就能越走越寬。
其次,改善交易效率也會(huì)給區(qū)塊鏈帶來越來越多的用戶,更多基于區(qū)塊鏈而生的應(yīng)用程序可以大展身手。公鏈將變得越來越有吸引力,能夠吸引更多加入到公共網(wǎng)絡(luò)上的節(jié)點(diǎn),從而形成一個(gè)良性循環(huán)。這些積極的趨勢(shì)所持續(xù)的時(shí)間越長(zhǎng),我們就會(huì)越能看到主流的加密技術(shù)和落地應(yīng)用的出現(xiàn)。
當(dāng)然,分片技術(shù)依然存在著很多難題需要解決,尤其是狀態(tài)分片,雖然原理已經(jīng)被提出,但目前卻還未有最合適的解決途徑。
當(dāng)然,分片的原理不僅僅在于如何分片,更在于如何對(duì)每個(gè)分片進(jìn)行安全有效的治理,對(duì)于公鏈來說,可擴(kuò)展性、安全性和去中心化缺一不可。相信不久的將來,我們就能得到一條“三角齊全”的理想公鏈。