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