我們知道,傳統(tǒng)的數(shù)據(jù)庫(kù)管理系統(tǒng)主要由單一機(jī)構(gòu)管理和維護(hù),而在多方參與者協(xié)作的場(chǎng)景中,因無(wú)法完全信任數(shù)據(jù)庫(kù)中的數(shù)據(jù),各方都自建數(shù)據(jù)庫(kù),由此導(dǎo)致繁瑣的人工對(duì)賬和協(xié)同爭(zhēng)議。而區(qū)塊鏈作為一種不可篡改、可追溯、多方共同維護(hù)的分布式數(shù)據(jù)庫(kù),能夠?qū)崿F(xiàn)可信的數(shù)據(jù)共享和點(diǎn)對(duì)點(diǎn)的價(jià)值傳輸。本文我們就從架構(gòu)設(shè)計(jì)的角度,分析區(qū)塊鏈技術(shù)是如何實(shí)現(xiàn)這一目標(biāo),并梳理與之相關(guān)的知識(shí)體系,幫助大家更進(jìn)一步去學(xué)習(xí)研究。
區(qū)塊鏈百科No.42:區(qū)塊鏈層級(jí)結(jié)構(gòu)
如果我們將區(qū)塊鏈想象成洋蔥,各技術(shù)組件就像洋蔥一層緊挨一層的組織,但在實(shí)現(xiàn)銜接上要更為復(fù)雜,這些相鄰層次的組件需要通過(guò)接口交互和支撐。
總體上來(lái)看,區(qū)塊鏈的基礎(chǔ)架構(gòu)可以分為六層,包括數(shù)據(jù)層、網(wǎng)絡(luò)層、共識(shí)層、激勵(lì)層、合約層、應(yīng)用層。每一層分別完成不同核心的功能,各層之間互相配合,從而實(shí)現(xiàn)了一個(gè)去中心化的信任機(jī)制。
數(shù)據(jù)層 / Data Layer
數(shù)據(jù)層我們可以理解成數(shù)據(jù)庫(kù),只不過(guò)對(duì)于區(qū)塊鏈來(lái)講,這個(gè)數(shù)據(jù)庫(kù)是不可篡改的、分布式的數(shù)據(jù)庫(kù),也就是我們所謂的“分布式賬本”,主要可實(shí)現(xiàn)兩大功能:數(shù)據(jù)存儲(chǔ)、賬戶和交易的安全。
數(shù)據(jù)層主要描述區(qū)塊鏈的物理形式,是區(qū)塊鏈上從創(chuàng)世區(qū)塊起始的鏈?zhǔn)浇Y(jié)構(gòu),包含了區(qū)塊鏈的區(qū)塊數(shù)據(jù)、鏈?zhǔn)浇Y(jié)構(gòu)以及區(qū)塊上的隨機(jī)數(shù)、時(shí)間戳、公鑰、私鑰數(shù)據(jù)等,是整個(gè)區(qū)塊鏈技術(shù)中最底層的數(shù)據(jù)結(jié)構(gòu)。
網(wǎng)絡(luò)層 / Network Layer
數(shù)據(jù)按序組合好之后,怎么讓網(wǎng)絡(luò)中其他節(jié)點(diǎn)知曉呢?這就需要網(wǎng)絡(luò)層來(lái)實(shí)現(xiàn)區(qū)塊鏈節(jié)點(diǎn)之間的信息交流。
網(wǎng)絡(luò)層主要通過(guò)P2P技術(shù)實(shí)現(xiàn)分布式網(wǎng)絡(luò)的機(jī)制,網(wǎng)絡(luò)層包括 P2P 組網(wǎng)機(jī)制、數(shù)據(jù)傳播機(jī)制和數(shù)據(jù)驗(yàn)證機(jī)制,因此區(qū)塊鏈本質(zhì)上是一個(gè)P2P(點(diǎn)對(duì)點(diǎn))網(wǎng)絡(luò),具備自動(dòng)組網(wǎng)的機(jī)制,節(jié)點(diǎn)之間通過(guò)維護(hù)一個(gè)共同的區(qū)塊鏈結(jié)構(gòu)來(lái)保持通信。每一個(gè)節(jié)點(diǎn)既接收信息,也產(chǎn)生信息。
其實(shí)可以類比于線上辦公,雖然我們都處在不同地點(diǎn),但通過(guò)互聯(lián)網(wǎng)大家可以保持協(xié)作共同完成。
共識(shí)層 / Consensus Layer
如果區(qū)塊鏈中每個(gè)節(jié)點(diǎn)都可以生成新的區(qū)塊完成記賬,那整個(gè)記賬體系就容易亂套。
共識(shí)層便是讓高度分散的節(jié)點(diǎn)在P2P網(wǎng)絡(luò)中,針對(duì)區(qū)塊數(shù)據(jù)的有效性達(dá)成共識(shí)。在區(qū)塊鏈的世界里,共識(shí),簡(jiǎn)單來(lái)講就是全網(wǎng)要依據(jù)大家一致同意的更新數(shù)據(jù)的規(guī)則,來(lái)維護(hù)更新區(qū)塊鏈系統(tǒng)這個(gè)總賬本。共識(shí)層主要包含共識(shí)算法以及共識(shí)機(jī)制,能讓高度分散的節(jié)點(diǎn)在去中心化的區(qū)塊鏈網(wǎng)絡(luò)中高效地針對(duì)區(qū)塊數(shù)據(jù)的有效性達(dá)成共識(shí),是區(qū)塊鏈的核心技術(shù)之一,也是區(qū)塊鏈社群的治理機(jī)制。
當(dāng)然,為了實(shí)現(xiàn)這一點(diǎn),算法上就必須考慮到某些節(jié)點(diǎn)是不可用的,或者網(wǎng)絡(luò)上會(huì)有數(shù)據(jù)丟失。這使得區(qū)塊鏈共識(shí)算法從一開始就具有容錯(cuò)能力,從而將提高網(wǎng)絡(luò)運(yùn)作的效率。
合約層 / Contract Layer
區(qū)塊鏈具有可編程的特性,其基礎(chǔ)是其合約層封裝了各類腳本、代碼、算法機(jī)制以及智能合約,使得各項(xiàng)指令能夠?qū)崿F(xiàn)確定自動(dòng)化地執(zhí)行。
以智能合約為例,它是存儲(chǔ)在區(qū)塊鏈上的一段代碼,使其在達(dá)到某個(gè)確定的約束條件的情況下,無(wú)需經(jīng)由第三方就能夠自動(dòng)執(zhí)行,這也是區(qū)塊鏈實(shí)現(xiàn)信任的基礎(chǔ)。通過(guò)程序算法替代人去仲裁和執(zhí)行合約,這將為我們節(jié)省巨額的信任成本。
激勵(lì)層 / Actuator Layer
從上可以看出,借由數(shù)據(jù)層、網(wǎng)絡(luò)層、共識(shí)層,區(qū)塊鏈保證了有數(shù)據(jù)、有網(wǎng)絡(luò),以及在網(wǎng)絡(luò)上更新數(shù)據(jù)的規(guī)則。但是天下沒(méi)有免費(fèi)的午餐,如何讓節(jié)點(diǎn)積極踴躍地參與區(qū)塊鏈系統(tǒng)維護(hù)呢?這里就涉及到了激勵(lì)。
激勵(lì)層主要包括經(jīng)濟(jì)激勵(lì)的發(fā)行制度和分配制度,其功能是提供一定的激勵(lì)措施,鼓勵(lì)節(jié)點(diǎn)參與區(qū)塊鏈中安全驗(yàn)證工作,并將經(jīng)濟(jì)因素納入到區(qū)塊鏈技術(shù)體系中,激勵(lì)遵守規(guī)則參與記賬的節(jié)點(diǎn),并懲罰不遵守規(guī)則的節(jié)點(diǎn)。例如比特幣中的挖礦就是記錄交易信息, 比特幣網(wǎng)絡(luò)通過(guò)獎(jiǎng)勵(lì)BTC代幣來(lái)鼓勵(lì)礦工參與記賬。
應(yīng)用層 / Application Layer
區(qū)塊鏈的應(yīng)用層封裝了各種應(yīng)用場(chǎng)景和案例,類似于電腦操作系統(tǒng)上的應(yīng)用程序、互聯(lián)網(wǎng)瀏覽器上的門戶網(wǎng)站、搜尋引擎、電子商城或是手機(jī)端上的 APP。
正如能鏈科技提供的“區(qū)塊鏈+”解決方案及數(shù)字金融服務(wù),就是基于區(qū)塊鏈搭建的應(yīng)用層體系,以深度服務(wù)實(shí)體產(chǎn)業(yè),賦能金融效率提升。未來(lái)整個(gè)可編程社會(huì),亦有可能搭建在區(qū)塊鏈應(yīng)用層上。
后續(xù),我們還將陸續(xù)就區(qū)塊鏈的各個(gè)層級(jí)架構(gòu)展開詳細(xì)解讀,并與傳統(tǒng)互聯(lián)網(wǎng)架構(gòu)進(jìn)行對(duì)比,探索它們之間的異同,敬請(qǐng)期待!