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