区块链学习——区块链的架构
摘要
通過我前幾篇區(qū)塊鏈知識的介紹,我們知道區(qū)塊鏈系統(tǒng)實際上就是一個維護公共數(shù)據(jù)賬本的系統(tǒng),一切的技術(shù)單元的設(shè)計都是為了更好地維護好這個公共賬本。通過共識算法達(dá)成節(jié)點的賬本的數(shù)據(jù)一致;通過密碼算法確保賬本數(shù)據(jù)的不可篡改性以及數(shù)據(jù)發(fā)送的安全性;通過腳本系統(tǒng)擴展賬本數(shù)據(jù)的表達(dá)范疇。我們甚至可以認(rèn)為去區(qū)塊鏈系統(tǒng)實際上就是特別設(shè)計的數(shù)據(jù)庫系統(tǒng)或者分布式數(shù)據(jù)庫系統(tǒng),在這個數(shù)據(jù)庫可以存儲數(shù)字貨幣,也可以存儲更復(fù)雜的智能合約,以及范圍更加廣闊的各種業(yè)務(wù)數(shù)據(jù)。在區(qū)塊鏈的發(fā)展歷程中,也經(jīng)歷了一個這樣的階段,從比特幣開始,早期的區(qū)塊鏈系統(tǒng)都是面向數(shù)字貨幣的,比如比特幣、萊特幣。這個階段我們可以認(rèn)為區(qū)塊鏈系統(tǒng)是一個支持?jǐn)?shù)字貨幣合約的系統(tǒng)。之后出現(xiàn)了更靈活地,能夠支持自定義智能合約的系統(tǒng),其代表作就是以太坊,可以認(rèn)為以太坊就是對比特幣這樣數(shù)字貨幣系統(tǒng)的擴展,不過以太坊仍然內(nèi)置了對數(shù)字貨幣的支持,延續(xù)了比特幣系統(tǒng)的金融特征,也使得以太坊的應(yīng)用更多的是面向金融范疇,再之后就是代表就是超級賬本項目,尤其是其中的Fabric子項目,在這個系統(tǒng)中,超越了對金融范疇的應(yīng)用,支持哥哥領(lǐng)域的數(shù)據(jù)定義。我們分別將這個三個階段成為區(qū)塊鏈系的1.0、2.0、3.0結(jié)構(gòu)時期。為了讓大家讓大家對發(fā)展過程中的區(qū)塊鏈系統(tǒng)有一個整體的概念,在本文中,我將描述一下區(qū)塊鏈系統(tǒng)的架構(gòu),并在不同角度對區(qū)塊鏈系統(tǒng)進(jìn)行分類。
區(qū)塊鏈架構(gòu)
1.區(qū)塊鏈1.0架構(gòu)
如摘要中所說的,這個階段的區(qū)塊鏈系統(tǒng)主要是用來實現(xiàn)數(shù)字貨幣的,我們可以先看看示意圖
如圖所示,在整個結(jié)構(gòu)中,分為核心節(jié)點和前端工具,這里我要提一下核心節(jié)點中的“礦工”功能。在礦工的1.0系統(tǒng)中,主要承擔(dān)兩個任務(wù):
第一個是通過競爭獲得區(qū)塊數(shù)據(jù)的打包權(quán)后將內(nèi)存池(發(fā)送在網(wǎng)絡(luò)中但是還沒有確認(rèn)進(jìn)區(qū)塊的交易數(shù)據(jù),屬于待確認(rèn)交易數(shù)據(jù))中的交易數(shù)據(jù)打包進(jìn)區(qū)塊,并且廣播給其他節(jié)點;
第二個是接受系統(tǒng)對打包行為的數(shù)字貨幣獎勵,從而系統(tǒng)通過這種獎勵機制完成新貨幣的發(fā)行。
在前端工具中,最明顯的就是錢包工具,錢包工具是提供給用戶管理自己賬戶地址以及余額的;瀏覽器是用來查看區(qū)塊鏈網(wǎng)絡(luò)中發(fā)生的數(shù)據(jù)情況,比如最新的區(qū)塊高度,內(nèi)存池的交易數(shù)、單位時間的網(wǎng)絡(luò)處理能力等;PRC客戶端和命令行接口都是用來訪問節(jié)點的功能的,在這個時候,核心節(jié)點就相當(dāng)于一個服務(wù)器,通過PRC服務(wù)提供功能調(diào)用接口。
2.區(qū)塊鏈2.0架構(gòu)
在區(qū)塊鏈2.0架構(gòu)的代表產(chǎn)品是以太坊,因此我們可以套用以太坊的架構(gòu)來說明,先來看看示意圖:
與1.0的架構(gòu)相比,最大的特點就是支持智能合約,在以太坊中,我們使用智能合約開發(fā)工具開發(fā)合約程序,并且編譯為字節(jié)碼,最終部署到以太坊的區(qū)塊鏈賬本中。部署后的智能合約是運行在虛擬機上的,成為“以太坊虛擬機”。正式通過這樣的智能合約的實現(xiàn),擴展了區(qū)塊鏈系統(tǒng)的功能,同時我們也看到,在以太坊中還是支持?jǐn)?shù)字貨幣的,因此在應(yīng)用工具中還是有錢包工具的。
3.區(qū)塊鏈3.0架構(gòu)
在3.0的架構(gòu)中,超越了對數(shù)字貨幣或者金融的應(yīng)用范疇,而將區(qū)塊鏈技術(shù)作為一種泛解決方案,可以在其他領(lǐng)域使用,比如行政管理、文化藝術(shù)、企業(yè)供應(yīng)鏈、醫(yī)療健康、物聯(lián)網(wǎng)、產(chǎn)權(quán)登記等,可以認(rèn)為是面向行業(yè)應(yīng)用。
行業(yè)應(yīng)用一般是需要具備企業(yè)級屬性的,比如身份認(rèn)證、許可授權(quán)、加密傳輸?shù)?#xff0c;并且對數(shù)據(jù)的處理性能也會有要求,因此企業(yè)級場景下的應(yīng)用,往往都是聯(lián)盟鏈或者私有鏈。我們來看一下示意圖
在上圖中,數(shù)字貨幣不再是一個必選的組件了,當(dāng)然如果需要,我們也可以通過智能合約的方式來實現(xiàn)數(shù)字貨幣的。與之前的架構(gòu)相比,最大的特點就是增加了一個網(wǎng)管控制,實際上就是增加了對安全保密的需求的支持,并且通過數(shù)據(jù)審計加強對數(shù)據(jù)的可靠性管理。
在3.0中,實際上可以看成是一套框架,通過對框架的配置和二次開發(fā)可以使用各行業(yè)的需求,比如圖中的“可插拔共識”,意思就是共識機制不是固定的,而是可以通過用戶自己去選用配置。
結(jié)語:大家可以通過上面的三張示意圖去理解三種階段的架構(gòu)以及在發(fā)展過程中增進(jìn)的地方,下篇我將給大家介紹一下區(qū)塊鏈的三種種類,分別是共有鏈、私有鏈、聯(lián)盟鏈。
總結(jié)
以上是生活随笔為你收集整理的区块链学习——区块链的架构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python实现截图?一文带你入门
- 下一篇: TypeScript ... 解释三个点