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