官术网_书友最值得收藏!

第四章 區(qū)塊鏈基礎理論

◇區(qū)塊鏈的體系結(jié)構(gòu)

狹義上來說,區(qū)塊鏈技術(shù)就是具體產(chǎn)品應用中的數(shù)據(jù)存儲思想和方式,類似區(qū)塊鏈在比特幣中的作用。可是,隨著區(qū)塊鏈技術(shù)和不同場景的深入結(jié)合,單獨說到區(qū)塊鏈,更多指的是一種數(shù)據(jù)公開透明、可追溯、不可篡改的產(chǎn)品架構(gòu)設計。

基于區(qū)塊鏈的各種應用,或許會采用不同的機制,但從根本上來說,框架結(jié)構(gòu)大同小異。現(xiàn)在,還沒有形成統(tǒng)一的分層體系,類比OSI(Open System Interconnection,開放式系統(tǒng)互聯(lián))七層協(xié)議的標準,可以將區(qū)塊鏈系統(tǒng)分為六層,分別是:數(shù)據(jù)層、網(wǎng)絡層、共識層、激勵層、合約層和應用層。

1.數(shù)據(jù)層

數(shù)據(jù)層封裝了區(qū)塊鏈的底層數(shù)據(jù)存儲和加密技術(shù),各節(jié)點存儲的本地區(qū)塊鏈副本都可以被看成三個級別的分層數(shù)據(jù)結(jié)構(gòu),即交易、區(qū)塊和鏈。為了保證數(shù)據(jù)的完整性和真實性,每個級別都需要不同的加密功能。

(1)交易。交易是區(qū)塊鏈的原子數(shù)據(jù)結(jié)構(gòu),通常由一組用戶或類似智能合約的自主對象創(chuàng)建,完成代幣從發(fā)送者到指定接收者的轉(zhuǎn)移。為了保證交易記錄的完整性,數(shù)據(jù)層主要分為哈希函數(shù)和非對稱加密功能。

①哈希函數(shù)。又稱為加密散列函數(shù),能夠?qū)⑷我忾L度的二進制值輸入映射到唯一固定長度的二進制值。哈希函數(shù)的計算具有不可逆性,不能根據(jù)輸出恢復輸入;同時,兩個不同輸入生成相同輸出的概率可以忽略不計。

②非對稱加密。非對稱加密功能主要指的是在交易過程中使用的公鑰和私鑰,網(wǎng)絡中的每個節(jié)點都會生成一對公鑰和私鑰。私鑰與數(shù)字簽名的功能有著密切關系,數(shù)字簽名通過他人無法偽造的字符串來證明交易發(fā)送方的身份。公鑰要通過數(shù)字簽名的驗證關,只有通過對應私鑰生成的數(shù)字簽名驗證后才會返回。另外,網(wǎng)絡中的節(jié)點,還會通過公鑰生成的字符串,作為區(qū)塊鏈上的永久地址。

(2)區(qū)塊。區(qū)塊是交易記錄的任意子集的聚合,要想創(chuàng)建,必須參與建立網(wǎng)絡共識過程的節(jié)點。例如,在比特幣網(wǎng)絡中,只有具有礦工節(jié)點,才有資格進行新區(qū)塊的創(chuàng)建。為了保證交易記錄的完整性,同時在共識節(jié)點的本地存儲中按照指定順序進行區(qū)塊間的排序,就要將哈希指針的數(shù)據(jù)字段保存在區(qū)塊的數(shù)據(jù)結(jié)構(gòu)中。為了減少單個交易的存儲占比,增大容量,同時防止交易記錄被篡改,采用了Meke樹的結(jié)構(gòu)。

(3)鏈。將上一區(qū)塊的哈希碼存儲到當前區(qū)塊的哈希指針處,就能建立起鏈式結(jié)構(gòu)。當然,區(qū)塊網(wǎng)絡的形式可以是線性鏈表,也可以是有向無環(huán)圖。所謂鏈性鏈表就是,用一組任意地址的存儲單元存放線性表中的數(shù)據(jù)元素,相鄰元素在物理上雖然不需要相鄰,但也不能隨機存取。而有向無環(huán)圖是一種無回路的有向圖,對于一個非有向無環(huán)圖,從A點出發(fā)向B經(jīng)C,然后回到A,就會形成一個環(huán);之后,將從C到A的方向改為從A到C,就會出現(xiàn)一個有向無環(huán)圖。

2.網(wǎng)絡層

在“拜占庭環(huán)境”中,在確認區(qū)塊鏈網(wǎng)絡中的節(jié)點組織模式上,身份管理機制發(fā)揮著重要作用。在無權(quán)限限制的公開區(qū)塊鏈網(wǎng)絡中,節(jié)點可以自由加入網(wǎng)絡并激活網(wǎng)絡中的任何可用功能。如果沒有任何身份鑒別方案,區(qū)塊鏈網(wǎng)絡被組織為覆蓋PP網(wǎng)絡,但是不同的應用場景會對區(qū)塊鏈的“去中心化”和開放程度提出不同的要求,區(qū)塊鏈也會被分為公有鏈、私有鏈和聯(lián)盟鏈三大類。

(1)公有鏈。公有鏈“去中心化”程度最高,各種數(shù)字貨幣如比特幣、以太坊均為公有區(qū)塊鏈的代表。這種區(qū)塊鏈沒有把控的中心化機構(gòu)或組織,任何人都能讀取鏈上的數(shù)據(jù),參與交易和算力競爭。

(2)私有鏈。私有鏈的門檻最高,權(quán)限完全由某個組織或機構(gòu)控制,數(shù)據(jù)的讀取和寫入,要受到組織規(guī)則的嚴格限定,多適用于特定機構(gòu)的內(nèi)部使用。私有鏈的中心化程度較高,簡直就是一個弱中心化或多中心化的系統(tǒng);私有鏈的節(jié)點數(shù)量被嚴格控制,節(jié)點數(shù)量較少,交易時間更短,交易效率更高,算力競爭成本更低。

(3)聯(lián)盟鏈。聯(lián)盟鏈介于公有鏈和私有鏈之間,是一種實現(xiàn)了“部分去中心化”的系統(tǒng)。從某種意義上來說,聯(lián)盟鏈是開放程度更高的私有鏈,節(jié)點的參與和維護對象是線下聯(lián)盟,這些對象共同加入一個網(wǎng)絡并維護其運行。

3.共識層

共識層主要指的是不同區(qū)塊鏈網(wǎng)絡中使用的共識算法,比如,工作量證明、權(quán)益證明、拜占庭容錯算法。換句話說,區(qū)塊鏈獨特的共識協(xié)議是由“拜占庭將軍條件”下的網(wǎng)絡共識節(jié)點實現(xiàn)的。

在區(qū)塊鏈網(wǎng)絡中,“拜占庭將軍問題”會讓故障節(jié)點可能出現(xiàn)任意行為,不僅會誤導其他副本節(jié)點,還會產(chǎn)生更大的危害。簡單地將區(qū)塊的序列表示成區(qū)塊鏈的狀態(tài),交易得到確認的區(qū)塊狀態(tài)就會發(fā)生變化。

共識協(xié)議因不同的區(qū)塊鏈網(wǎng)絡而存在差異。首先,公有鏈是完全開放的區(qū)塊鏈網(wǎng)絡,需要對參與共識的節(jié)點進行更嚴格的信息同步控制,多采用傳統(tǒng)拜占庭容錯協(xié)議提供的所需要的共識屬性。其次,PBFT(Practical Byzantine Fault Tolerance,實用拜占庭容錯算法)將算法的復雜度由指數(shù)級降低到多項式級,保證了活性和安全性。

4.激勵層

當網(wǎng)絡中存在兩條鏈時,不同的區(qū)塊鏈可以從對等節(jié)點接收或本地自提,鏈間的比較和擴展過程讓誠實節(jié)點只能采用候選區(qū)塊鏈中最長鏈條的提議。POW解決方案是共識協(xié)議的最主力部分,通過計算密集的方式,對新區(qū)塊的挖掘方式進行了重新定義。

破解工作量證明的方式是,節(jié)點按照規(guī)范構(gòu)造區(qū)塊,使用哈希計算,找到滿足預條件的隨機值。

節(jié)點如果想贏得算力競賽,就要盡可能地提高散列表的查詢效率,需要更高的投入。但是,節(jié)點自愿參與共識過程,不可能承擔經(jīng)濟損耗。為了網(wǎng)絡的正常運行,比特幣的共識協(xié)議中加入了激勵機制:創(chuàng)建新區(qū)塊的獎勵和交易費一旦挖掘出新區(qū)塊,系統(tǒng)就會產(chǎn)生相應數(shù)額的比特幣,比特幣也就憑著該種方式實現(xiàn)了“去中心化”發(fā)行。

5.合約層和應用層

合約層是區(qū)塊鏈技術(shù)的可編程實現(xiàn)的基礎,通過各類腳本、算法和智能合約,完成對區(qū)塊鏈技術(shù)的個人獨特改造;應用層指的是建立在底層技術(shù)上的區(qū)塊鏈的不同應用場景和案例實現(xiàn)。

一般來說,對于區(qū)塊鏈相關應用的研究可以分為兩類:一類是在現(xiàn)有區(qū)塊鏈協(xié)議的框架下對共識協(xié)議的研究,另一類是在區(qū)塊鏈共識層之上提供服務。

智能合約的概念出現(xiàn)在比特幣之前,首次由尼克薩博在1996年提出,指的是將條款用計算機語言的形式記錄的智能合同,達到預先設定的條件時,就能自動執(zhí)行相應的合同條款,以太坊將智能合約和區(qū)塊鏈結(jié)合在一起,就能為用戶提供新的“去中心化”平臺。

主站蜘蛛池模板: 平山县| 呼图壁县| 马尔康县| 西平县| 高碑店市| 贵溪市| 米脂县| 怀仁县| 鹤岗市| 宿迁市| 南阳市| 鄂伦春自治旗| 馆陶县| 香河县| 肥西县| 延津县| 佛山市| 黔西| 东兰县| 朔州市| 西安市| 洛扎县| 赫章县| 台山市| 天台县| 鸡西市| 镇坪县| 诏安县| 平阳县| 托克逊县| 梁平县| 郓城县| 尤溪县| 贞丰县| 浮梁县| 开阳县| 四子王旗| 加查县| 德兴市| 威宁| 杭州市|