TOP鏈的全狀態(tài)分片可以解決什么問題
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在區(qū)塊鏈行業(yè),經(jīng)常能聽到“區(qū)塊擁堵”、“交易速度太慢”等詞匯,其中最具代表性的就是此前以太坊上的“加密貓”造成的長(zhǎng)時(shí)間網(wǎng)絡(luò)擁堵事件。于是區(qū)塊鏈的擴(kuò)容成為底層公鏈加速落地的一大突破口。在諸多解決方案中,分片成為最受熱捧,也最有望實(shí)現(xiàn)的擴(kuò)容方案。TOP鏈就是利用分片技術(shù)實(shí)現(xiàn)擴(kuò)容的代表性公鏈。
區(qū)塊鏈高速路上的分流術(shù)
所謂分片其實(shí)是一種傳統(tǒng)數(shù)據(jù)庫(kù)技術(shù),它將大型數(shù)據(jù)庫(kù)分成更小、更快、更容易管理的部分,這些部分就叫做數(shù)據(jù)碎片。在區(qū)塊鏈中,分片就是把網(wǎng)絡(luò)上的所有交易分成不同碎片,由各個(gè)節(jié)點(diǎn)組成的分片同時(shí)進(jìn)行處理,把工作分散到每個(gè)分片,加快了處理速度。
有一個(gè)形象的比喻,如果把區(qū)塊鏈比作高速公路,把待驗(yàn)證的交易比作汽車,把驗(yàn)證交易的節(jié)點(diǎn)比作收費(fèi)口。原本繁忙的高速公路上只有一個(gè)收費(fèi)站,收費(fèi)站里只有一個(gè)收費(fèi)口,車輛排著長(zhǎng)隊(duì)等待通過,結(jié)果就是越積越多,交通堵塞,幾近癱瘓。而分片技術(shù)就好比增加了十個(gè)收費(fèi)口,極大提高了汽車通過的速度。按照這樣的思路,分片技術(shù)能夠顯著提高區(qū)塊鏈的交易速度。
盡管分片技術(shù)聽起來振奮人心,但是實(shí)現(xiàn)起來卻格外困難。也正因此,幾年前就宣布采用分片進(jìn)行擴(kuò)容的以太坊直到現(xiàn)在還沒有完成升級(jí)。而TOP團(tuán)隊(duì)經(jīng)過近兩年時(shí)間的鉆研和開發(fā),最終在今年11月8日宣布主網(wǎng)上線,也標(biāo)志著全球首條全狀態(tài)分片公鏈的誕生。
TOP的網(wǎng)絡(luò)分片與節(jié)點(diǎn)選舉
TOP鏈的全狀態(tài)分片分別是指網(wǎng)絡(luò)分片、計(jì)算分片和狀態(tài)分片。TOP的網(wǎng)絡(luò)分片是指把TOP網(wǎng)絡(luò)劃分成幾個(gè)由更少節(jié)點(diǎn)組成的群組。比如,整個(gè)TOP網(wǎng)絡(luò)有1000個(gè)節(jié)點(diǎn),那就可以把TOP網(wǎng)絡(luò)分成10個(gè)分片,每個(gè)分片由100個(gè)節(jié)點(diǎn)組成。實(shí)際情況是到目前為止,TOP網(wǎng)絡(luò)共有4個(gè)分片,每個(gè)分片的節(jié)點(diǎn)數(shù)為256個(gè),TOP的最大分片數(shù)量可以擴(kuò)展到1024個(gè),每個(gè)分片的節(jié)點(diǎn)數(shù)也可以提高到512個(gè)。隨著分片數(shù)和節(jié)點(diǎn)數(shù)量的不斷增加,TOP網(wǎng)絡(luò)的處理能力將會(huì)越來越強(qiáng),速度也會(huì)越來越快,最終形成良性循環(huán)。
那么網(wǎng)絡(luò)分片完成后,如何把節(jié)點(diǎn)分配到各個(gè)分片中呢?其實(shí)區(qū)塊鏈的節(jié)點(diǎn)就像一群學(xué)生,有勤奮好學(xué)、盡力完成任務(wù)的好學(xué)生,也有調(diào)皮搗蛋、專搞破壞的壞學(xué)生。如果把分片看作一個(gè)班級(jí),一旦班級(jí)里的壞學(xué)生數(shù)量超過好學(xué)生數(shù)量,整個(gè)班級(jí)就會(huì)被壞學(xué)生掌控。所以必須保證每個(gè)分片中的“好學(xué)生”數(shù)量大于“壞學(xué)生”數(shù)量。因此,節(jié)點(diǎn)如何被分配到每個(gè)分片也顯得尤為重要,因?yàn)橐坏┮粋€(gè)分片中出現(xiàn)過多的“壞學(xué)生”,就會(huì)對(duì)整個(gè)分片造成破壞。當(dāng)然節(jié)點(diǎn)的分配也肯定不是由TOP團(tuán)隊(duì)自行決定,否則就違背了區(qū)塊鏈“去中心化”的意義。
針對(duì)如何把節(jié)點(diǎn)分配到各個(gè)分片的問題,TOP團(tuán)隊(duì)采用了信標(biāo)鏈對(duì)節(jié)點(diǎn)進(jìn)行隨機(jī)選取。信標(biāo)鏈?zhǔn)且粭l新的鏈,所有分片都連接到信標(biāo)鏈上,并與之通信。信標(biāo)鏈的第一個(gè)作用就是管理驗(yàn)證者,就相當(dāng)于管理節(jié)點(diǎn)這幫“學(xué)生”的班主任。當(dāng)然,要成為驗(yàn)證者,首先需要向“班主任”繳納一定金額的Token,然后“班主任”就會(huì)隨機(jī)把這些“學(xué)生”分配到各個(gè)分片中去充當(dāng)驗(yàn)證者。
如果這個(gè)“學(xué)生”表現(xiàn)良好,做了身為驗(yàn)證者應(yīng)該做的事就會(huì)得到獎(jiǎng)勵(lì),相反,如果他違反規(guī)則就要受到懲罰,懲罰就是從抵押的Token中扣除一部分,而當(dāng)?shù)盅航鸬陀谝欢~度后,信標(biāo)鏈就會(huì)將他從驗(yàn)證者列表中移除。這就有效減小了節(jié)點(diǎn)作惡的可能性,而且作惡的節(jié)點(diǎn)被分配到同一個(gè)分片的概率也相當(dāng)小,可以保證區(qū)塊鏈的安全。
TOP如何成功解決狀態(tài)分片難題?
所謂計(jì)算分片就是在網(wǎng)絡(luò)分片的基礎(chǔ)上,再把一筆筆的交易分配給每個(gè)分片來進(jìn)行處理,比如可以根據(jù)賬戶地址進(jìn)行分配,只要是某個(gè)地址發(fā)起的交易都由某個(gè)分片的節(jié)點(diǎn)進(jìn)行處理。而在三種分片中,最難實(shí)現(xiàn)的是狀態(tài)分片,這也是很多分片公鏈無法突破的一大難點(diǎn)。
狀態(tài)分片提出,不同的分片需要儲(chǔ)存不同的數(shù)據(jù),真正做到將數(shù)據(jù)庫(kù)分開,數(shù)據(jù)都分散放在不同的分片上。每一個(gè)狀態(tài)分片中的節(jié)點(diǎn)都儲(chǔ)存著自己分片中的所有數(shù)據(jù),而不是整個(gè)區(qū)塊鏈的數(shù)據(jù)。比如兩個(gè)用戶的信息分別在兩個(gè)分片中存儲(chǔ),那么在任何一個(gè)分片中都只有其中一個(gè)人的信息,而非同時(shí)保留兩個(gè)人的信息。
因此,如果一筆交易的發(fā)起人和接受者處在兩個(gè)不同的分片上,交易信息就必須在兩個(gè)分片之間進(jìn)行共享,這時(shí)兩個(gè)分片之間就需要進(jìn)行信息的交換。而且,如果某個(gè)分片遭受攻擊,其中的交易就會(huì)遭到中斷,別的分片的節(jié)點(diǎn)無法代替工作,只能從遭受攻擊的分片內(nèi)部節(jié)點(diǎn)開始修復(fù)。也就是它的容錯(cuò)性和抗風(fēng)險(xiǎn)能力就會(huì)降低,甚至還有過度中心化的風(fēng)險(xiǎn)。
以太坊2.0是通過信標(biāo)鏈來解決跨片之間的交易的。信標(biāo)鏈不同于以太坊的主鏈,它存儲(chǔ)的是一系列經(jīng)過計(jì)算的字符串。這個(gè)字符串的產(chǎn)生基于計(jì)算機(jī)中的一種哈希運(yùn)算,它就像生活中將豆子放進(jìn)豆?jié){機(jī)處理之后,不能根據(jù)得到的豆?jié){去判斷之前豆子的形狀大小以及哪顆豆子對(duì)應(yīng)哪滴豆?jié){一樣。而且,一旦多加了一顆豆子,得到的豆?jié){就會(huì)發(fā)生很大的改變。這個(gè)豆?jié){機(jī)就像是哈希算法,不能通過哈希之后的結(jié)果去推導(dǎo)哈希之前的樣子,而且只要哈希之前的數(shù)據(jù)有一點(diǎn)改變,哈希之后的結(jié)果就會(huì)發(fā)生很大的變化。
在以太坊信標(biāo)鏈中,驗(yàn)證者驗(yàn)證并簽名交易,比如一筆轉(zhuǎn)賬交易,然后經(jīng)過哈希變成一段字符串,將這個(gè)字符串存到信標(biāo)鏈中,此時(shí)這個(gè)字符串就代表了一筆交易的數(shù)據(jù),這樣做的好處就是,不用去深入探究這筆交易到底在哪個(gè)分片中發(fā)生。分片中的狀態(tài)一旦發(fā)生改變(比如某個(gè)賬戶余額發(fā)生了一點(diǎn)改變),驗(yàn)證者就會(huì)把這個(gè)變化匯報(bào)給信標(biāo)鏈。因此,信標(biāo)鏈實(shí)時(shí)跟蹤著分片的變化,也建立起了分片間的聯(lián)系與通信。
但是,以太坊2.0這種對(duì)信標(biāo)鏈過度依賴的設(shè)計(jì)會(huì)給其帶來很大的壓力,尤其是如果要實(shí)現(xiàn)海量業(yè)務(wù)上鏈和實(shí)時(shí)交易,信標(biāo)鏈將會(huì)成為一個(gè)很大的瓶頸。因此,TOP鏈并沒有通過信標(biāo)鏈來實(shí)現(xiàn)跨片之間的信息同步,而是通過三層共識(shí)網(wǎng)絡(luò)中路由網(wǎng)絡(luò)(RoutingNetwork)的審計(jì)節(jié)點(diǎn)來實(shí)現(xiàn)。TOP鏈的審計(jì)節(jié)點(diǎn)第一是對(duì)分片已經(jīng)驗(yàn)證過的交易做審計(jì),以防止分片內(nèi)交易被篡改,第二就是做分片間的狀態(tài)同步,類似于跨行轉(zhuǎn)賬。這樣的設(shè)計(jì)讓TOP信標(biāo)鏈只負(fù)責(zé)節(jié)點(diǎn)注冊(cè)、入網(wǎng)管理以及節(jié)點(diǎn)選舉和輪換,大大減輕了其負(fù)擔(dān)。
實(shí)現(xiàn)了全狀態(tài)分片的TOP鏈在區(qū)塊鏈擴(kuò)容方面基本已經(jīng)掃除了障礙,再加上鏈上交易確認(rèn)速度快,交易費(fèi)用為零等特點(diǎn),TOP鏈將會(huì)成為特別適合通信、游戲、社交、大數(shù)據(jù)、人工智能、IoT等海量高頻業(yè)務(wù)上鏈的公鏈。TOP鏈也將由此正式拉開“區(qū)塊鏈+”大規(guī)模落地的序幕。