商業(yè)場景應(yīng)用之下的底層技術(shù)架構(gòu),大多數(shù)人是接觸不到的。但是,所有的商業(yè)應(yīng)用,在區(qū)塊鏈上獲取的服務(wù),都離不開底層技術(shù)架構(gòu)的支持。
今天我們就來說說,區(qū)塊鏈商業(yè)的技術(shù)架構(gòu),到底包含了什么。
區(qū)塊鏈商業(yè)的技術(shù)架構(gòu)解讀(一)
總體來看,區(qū)塊鏈的基礎(chǔ)架構(gòu)可以分為五層,包括網(wǎng)絡(luò)層、共識層、數(shù)據(jù)層、 智能合約層和應(yīng)用層,如下圖所示。每一層分別完成一項(xiàng)核心的功能,各層之間 互相配合,從而實(shí)現(xiàn)了去中心化的信任機(jī)制。
區(qū)塊鏈應(yīng)用體系架構(gòu)圖 a
1.網(wǎng)絡(luò)層
網(wǎng)絡(luò)層的主要目的是實(shí)現(xiàn)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)之間的信息交互。區(qū)塊鏈的本質(zhì)是一 個點(diǎn)對點(diǎn)(P2P)網(wǎng)絡(luò),每一個節(jié)點(diǎn)既能夠接收信息,也能夠生產(chǎn)信息,節(jié)點(diǎn)之間 通過維護(hù)一個共同的區(qū)塊鏈來保持通信。
在區(qū)塊鏈的網(wǎng)絡(luò)中,每一個節(jié)點(diǎn)都可以創(chuàng)造出新的區(qū)塊,新區(qū)塊被創(chuàng)造出以后, 會通過廣播的形式通知其他的節(jié)點(diǎn),而其他節(jié)點(diǎn)反過來會對這個節(jié)點(diǎn)進(jìn)行驗(yàn)證。當(dāng) 區(qū)塊鏈網(wǎng)絡(luò)中超過 51% 的用戶對其驗(yàn)證通過以后,這個新的區(qū)塊就會被添加到主 鏈上。
2.共識層
共識層能夠讓高度分散的節(jié)點(diǎn)在去中心化的系統(tǒng)中針對區(qū)塊數(shù)據(jù)的有效性達(dá)成 共識。區(qū)塊鏈中比較常用的共識機(jī)制包括工作量證明、權(quán)益證明和股份授權(quán)證明等 多種,這部分內(nèi)容筆者在前面的章節(jié)已經(jīng)做了詳細(xì)解讀。
共識機(jī)制的作用主要有兩個,一個是獎勵,另一個是懲罰。比特幣和以太坊用 的是 PoW 工作量證明機(jī)制。此機(jī)制根據(jù)算力進(jìn)行獎勵和懲罰,如有節(jié)點(diǎn)作弊,算 力會受到損失。
Bitshares、Steemit、EOS 采用 DPoS 股份授權(quán)證明機(jī)制,擁有代幣的人可以參與 節(jié)點(diǎn)的投票,被大家選出來的節(jié)點(diǎn)參與記賬,一旦作弊就會被系統(tǒng)投出。
其中的激勵功能主要是指給予代幣獎勵,鼓勵節(jié)點(diǎn)參與區(qū)塊鏈的安全驗(yàn)證。例 如,在比特幣總量達(dá)到 2100 萬枚之前,比特幣的獎勵機(jī)制有兩種 :新區(qū)快產(chǎn)生后 系統(tǒng)獎勵的比特幣 ;每筆交易扣除的比特幣(手續(xù)費(fèi))。而當(dāng)比特幣的總量達(dá)到 2100 萬枚時,新產(chǎn)生的區(qū)塊將不再生產(chǎn)比特幣,此時的獎勵主要是每筆交易所扣除 的手續(xù)費(fèi)。
3.數(shù)據(jù)層
數(shù)據(jù)層是最底層的技術(shù),主要的功能為數(shù)據(jù)存儲、賬戶和交易的實(shí)現(xiàn)與安全。數(shù)據(jù)存儲主要基于 Merkle 樹,通過區(qū)塊的方式和鏈?zhǔn)浇Y(jié)構(gòu)實(shí)現(xiàn),大多以 KV 數(shù)據(jù)庫 的方式實(shí)現(xiàn)持久化,如比特幣和以太坊采用的 LevelDB。
基于數(shù)字簽名、散列函數(shù)、非對稱加密技術(shù)等多種密碼學(xué)算法和技術(shù),以及賬 戶和交易的實(shí)現(xiàn)與安全功能,保證了交易能夠在去中心化的情況下安全進(jìn)行。
設(shè)計(jì)區(qū)塊鏈系統(tǒng)的技術(shù)人員們首先建立的起始節(jié)點(diǎn),被稱作是“創(chuàng)世區(qū)塊”, 之后在同樣的規(guī)則之下,創(chuàng)建規(guī)格相同的區(qū)塊,通過一個鏈?zhǔn)浇Y(jié)構(gòu)依次相連組成一 條主鏈。隨著運(yùn)行時間的增加,新的區(qū)塊通過驗(yàn)證后,被不斷添加到主鏈上,主鏈 會不斷延長。
每一個區(qū)塊中同時也包含了許多技術(shù),如時間戳技術(shù),它的作用在于確保每一 個區(qū)塊都可以按時間的順序相連接,比如散列函數(shù),它是一種將任意長度的消息通 過散列算法壓縮到某一固定長度的消息摘要的函數(shù),它主要用于信息安全領(lǐng)域中加 密算法、文件檢驗(yàn)、數(shù)字簽名和鑒權(quán)協(xié)議等。
4.合約層
所謂合約層主要是指各種腳本代碼、算法機(jī)制及智能合約等。智能合約是運(yùn)行 在區(qū)塊鏈上的一段無須干預(yù)即可自動執(zhí)行的代碼,EVM 是智能合約運(yùn)行的虛擬機(jī), 人類通過智能合約,無須任何中介干預(yù)即可實(shí)現(xiàn)資產(chǎn)的轉(zhuǎn)移,同時也可以開發(fā)出一 些有價(jià)值的去中心化應(yīng)用。
以比特幣為例,它是一種可編程的數(shù)字貨幣,合約層封裝的腳本中規(guī)定了比特 幣的交易方式和交易過程中所涉及的各種細(xì)節(jié)。
基于智能合約還可以構(gòu)建區(qū)塊鏈應(yīng)用,不需要從零學(xué)習(xí)區(qū)塊鏈技術(shù)就可以方便 地開發(fā)自己的區(qū)塊鏈應(yīng)用(DAPP)。如基于以太坊公鏈,開發(fā)者可以使用 Solidity 語言開發(fā)智能合約,構(gòu)建去中心化應(yīng)用 ;基于 EOS,開發(fā)者可以使用 C++ 語言, 編寫自己的智能合約。
5.應(yīng)用層
應(yīng)用層封裝了區(qū)塊鏈的各種應(yīng)用場景和案例,如基于區(qū)塊鏈的跨境支付平臺等, 它也是去中心化應(yīng)用 DAPP。一個完整的 DAPP 包含智能合約和 Web 系統(tǒng),Web 系 統(tǒng)通過接口調(diào)用智能合約。
本層類似于計(jì)算機(jī)中的各種軟件程序,是普通人可以真正直接使用的產(chǎn)品,也 可以理解為 B/S 架構(gòu)的產(chǎn)品中的瀏覽器端(Browser)。
從目前的情況看,對于眾多用戶來講,除數(shù)字貨幣外,還找不到現(xiàn)成的區(qū)塊鏈 應(yīng)用。如果想讓區(qū)塊鏈技術(shù)快速走進(jìn)尋常百姓,服務(wù)于大眾,必須出現(xiàn)大量跟人們 生活、娛樂工具相結(jié)合的應(yīng)用。
區(qū)塊鏈商業(yè)的技術(shù)架構(gòu)解讀(二)
中國信息通信研究院和可信區(qū)塊鏈推進(jìn)計(jì)劃共同編寫了《區(qū)塊鏈白皮書(2018 年)》,對區(qū)塊鏈的技術(shù)體系做了總結(jié),也提出了一套參考架構(gòu),包括基礎(chǔ)設(shè)施、基 礎(chǔ)組件、賬本、共識、智能合約、接口、應(yīng)用、操作運(yùn)維和系統(tǒng)管理 9 部分。以下 內(nèi)容值得深入研究。
1.基礎(chǔ)組件層
基礎(chǔ)組件層可以實(shí)現(xiàn)區(qū)塊鏈系統(tǒng)網(wǎng)絡(luò)中信息的記錄、驗(yàn)證和傳播。
在基礎(chǔ)組件層之中,區(qū)塊鏈?zhǔn)墙⒃趥鞑C(jī)制、驗(yàn)證機(jī)制和存儲機(jī)制基礎(chǔ)上的 一個分布式系統(tǒng)。
2.賬本層
賬本層負(fù)責(zé)區(qū)塊鏈系統(tǒng)的信息存儲,包括收集交易數(shù)據(jù),生成數(shù)據(jù)區(qū)塊,對本 地?cái)?shù)據(jù)進(jìn)行合法性校驗(yàn),以及將校驗(yàn)通過的區(qū)塊添加到鏈上。
賬本層有以下兩種數(shù)據(jù)記錄方式。
① 在基于資產(chǎn)的模型中,首先以資產(chǎn)為核心進(jìn)行建模,然后記錄資產(chǎn)的所有權(quán), 即所有權(quán)是資產(chǎn)的一個字段。
② 在基于賬戶的模型中,建立賬戶作為資產(chǎn)和交易的對象,資產(chǎn)是賬戶下的一 個字段。
3.共識層
共識層負(fù)責(zé)綜合協(xié)調(diào)以保證全網(wǎng)各節(jié)點(diǎn)數(shù)據(jù)記錄的一致性。常見的共識機(jī)制可以分為兩大類。
(1) 概率性的共識機(jī)制
先寫入數(shù)據(jù),之后再達(dá)成共識,如 PoW、PoS、DPoS,大概率一致就達(dá)成共識, 計(jì)算的復(fù)雜度較高。如果一次共識出現(xiàn)多個記賬節(jié)點(diǎn),就產(chǎn)生分叉,最終以最長鏈 為準(zhǔn)。節(jié)點(diǎn)數(shù)量可以隨意改變,節(jié)點(diǎn)數(shù)越多,系統(tǒng)越穩(wěn)定。
(2) 確定性的共識機(jī)制?
先達(dá)成共識,之后再寫入,確認(rèn)一致之后再達(dá)成共識,共識即確認(rèn),網(wǎng)絡(luò)復(fù)雜度高;它要求法定人數(shù)投票,各節(jié)點(diǎn)之間采用 P2P 廣播溝通,沒有分叉,如 PBFT、BFT 變種等; 隨著節(jié)點(diǎn)數(shù)增加,性能下降,節(jié)點(diǎn)數(shù)量不能隨意改變。
從應(yīng)用來看,為提升效率,在共識機(jī)制的使用上,需在安全性、可靠性、開放 性等方面進(jìn)行取舍,而且共識機(jī)制正在從單一向混合方向演進(jìn)。
4.智能合約層
負(fù)責(zé)將區(qū)塊鏈系統(tǒng)的業(yè)務(wù)邏輯以代碼的形式實(shí)現(xiàn)、編譯并部署,完成既定規(guī)則 的條件觸發(fā)和自動執(zhí)行,最大限度地減少人工干預(yù)。
根據(jù)圖靈完備與否,智能合約層分為以下兩類。
① 圖靈完備的智能合約有較強(qiáng)的適應(yīng)性,可以對邏輯較復(fù)雜的業(yè)務(wù)操作進(jìn)行編 程,但有陷入死循環(huán)的可能。
② 圖靈不完備的智能合約,不能進(jìn)行復(fù)雜的邏輯操作,但更加簡單、高效和 安全。
智能合約是區(qū)塊鏈安全風(fēng)險(xiǎn)的高發(fā)領(lǐng)域,在提升安全性能方面,有幾種參考思 維 :形式化驗(yàn)證、智能合約加密及規(guī)范合約語言的語法格式。
5.應(yīng)用層
作為最終呈現(xiàn)給用戶的部分,主要作用是調(diào)取智能合約層的接口,適配區(qū)塊鏈 的各類應(yīng)用場景,為用戶提供服務(wù)。這份白皮書將應(yīng)用劃成 3 種類型 :價(jià)值轉(zhuǎn)移、 存證及授權(quán)管理。
(1) 價(jià)值轉(zhuǎn)移類?
數(shù)字資產(chǎn)在不同賬戶之間轉(zhuǎn)移。
(2) 存證類?
將信息記錄到區(qū)塊鏈上,但沒有資產(chǎn)轉(zhuǎn)移。
(3) 授權(quán)管理類?利用智能合約控制數(shù)據(jù)訪問,如數(shù)據(jù)共享。總結(jié)起來就是,區(qū)塊是數(shù)據(jù)存儲的容器,而 P2P 網(wǎng)絡(luò)是保證區(qū)塊鏈運(yùn)行的基礎(chǔ)協(xié)議,共識機(jī)制確保參與記賬的節(jié)點(diǎn)在沒有人干預(yù)的情況下可正常工作。應(yīng)用層則 讓人們有了成熟的產(chǎn)品可以使用。
目前,一些公司搭建的區(qū)塊鏈平臺,如超級賬本(Hyperledger Fabric)、R3 區(qū) 塊鏈聯(lián)盟(R3CEV)、以太坊企業(yè)版等,均有獨(dú)到之處。例如,以太坊經(jīng)過數(shù)年的 發(fā)展,應(yīng)用場景已經(jīng)多達(dá) 500 多個。
國內(nèi)金融機(jī)構(gòu)的區(qū)塊鏈應(yīng)用仍以國外的 Fabric 平臺為主。不過,規(guī)模較大的參 與者先后開源底層技術(shù),這類似于當(dāng)年安卓、iOS、黑莓等智能手機(jī)曾經(jīng)走過的路。例如,深圳前海微眾銀行股份有限公司、上海萬向區(qū)塊鏈股份公司、矩陣元技術(shù)(深 圳)有限公司聯(lián)合宣布,開源三方共同搭建的區(qū)塊鏈底層平臺 BCOS(Block Chain Open Source),進(jìn)一步推動分布式商業(yè)生態(tài)系統(tǒng)的形成,區(qū)塊鏈底層平臺的格局初步顯現(xiàn)。
責(zé)任編輯;zl
評論