亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        區(qū)塊鏈關(guān)鍵技術(shù)中的數(shù)據(jù)一致性研究

        2018-09-21 10:03:32翟社平李兆兆段宏宇
        關(guān)鍵詞:一致性

        翟社平,李兆兆,段宏宇,高 山

        (西安郵電大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710121)

        0 引 言

        區(qū)塊鏈技術(shù)是一種新型計(jì)算模式,是經(jīng)單主機(jī)計(jì)算、分布式計(jì)算和網(wǎng)絡(luò)計(jì)算三種計(jì)算模式之后的新型創(chuàng)新應(yīng)用模式[1]。它將分布式數(shù)據(jù)存儲(chǔ)、點(diǎn)對(duì)點(diǎn)傳輸、共識(shí)機(jī)制和加密算法等計(jì)算技術(shù)與互聯(lián)網(wǎng)技術(shù)相結(jié)合,構(gòu)建了一個(gè)高容錯(cuò)高可用的分布式網(wǎng)絡(luò),其去中心化、可追溯、不可篡改、安全可信等技術(shù)特點(diǎn)有效地保障了區(qū)塊鏈的實(shí)用性以及區(qū)塊鏈中數(shù)據(jù)的一致性,對(duì)區(qū)塊鏈的推廣有著決定性的作用。區(qū)塊鏈最初是為了實(shí)現(xiàn)去中心化交易提出的技術(shù),發(fā)展至今,區(qū)塊鏈已經(jīng)不單局限于數(shù)字貨幣應(yīng)用,其與人工智能、云計(jì)算、大數(shù)據(jù)等技術(shù)的結(jié)合應(yīng)用已經(jīng)在物聯(lián)網(wǎng)、健康醫(yī)療、知識(shí)產(chǎn)權(quán)保護(hù)等領(lǐng)域展現(xiàn)出了獨(dú)特的應(yīng)用價(jià)值和市場(chǎng)前景。

        國(guó)外針對(duì)區(qū)塊鏈技術(shù)的研究開(kāi)展較早,目前已經(jīng)有一些成熟的系統(tǒng)應(yīng)用。美國(guó)以太坊平臺(tái)Ethereum基于區(qū)塊鏈為用戶提供可編程智能合約開(kāi)發(fā)服務(wù),微軟公司在Azure云計(jì)算平臺(tái)的基礎(chǔ)上推出了BaaS(Blockchain as a service,區(qū)塊鏈即服務(wù))服務(wù)等。雖然國(guó)內(nèi)區(qū)塊鏈起步比國(guó)外晚2~3年,但熱度爆發(fā)的速度更快。2016年《“十三五”國(guó)家信息化規(guī)劃》首次提到支持區(qū)塊鏈技術(shù)發(fā)展,強(qiáng)調(diào)加強(qiáng)人工智能、區(qū)塊鏈、大數(shù)據(jù)認(rèn)知分析等新技術(shù)基礎(chǔ)研發(fā)和前沿布局。2016年10月工業(yè)和信息化部發(fā)布《中國(guó)區(qū)塊鏈技術(shù)和應(yīng)用發(fā)展白皮書(shū)》。2017年5月,國(guó)內(nèi)首個(gè)區(qū)塊鏈標(biāo)準(zhǔn)《區(qū)塊鏈參考架構(gòu)》正式發(fā)布[2],區(qū)塊鏈基礎(chǔ)性標(biāo)準(zhǔn)確立。同時(shí),在數(shù)字版權(quán)保護(hù)領(lǐng)域,蔡維德教授等針對(duì)公信力和隱私性要求較高的場(chǎng)景提出一種雙鏈設(shè)計(jì)架構(gòu)[3]。朱巖等針對(duì)區(qū)塊鏈中數(shù)據(jù)安全問(wèn)題提出了使用基于屬性的密碼訪問(wèn)控制技術(shù)的設(shè)想[4]。目前,區(qū)塊鏈技術(shù)已經(jīng)引起了很多專家學(xué)者的重視,隨著大數(shù)據(jù)的發(fā)展,在政府大力扶持、高校院所助力、企業(yè)應(yīng)用落地的形勢(shì)下,區(qū)塊鏈底層技術(shù)及其在場(chǎng)景中的應(yīng)用將深刻顛覆人們的傳統(tǒng)生活方式,成為研究的熱點(diǎn)問(wèn)題。

        本質(zhì)來(lái)看區(qū)塊鏈?zhǔn)且环N分布式數(shù)據(jù)庫(kù),與傳統(tǒng)數(shù)據(jù)庫(kù)操作不同,區(qū)塊鏈利用一種新型塊鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)驗(yàn)證和存儲(chǔ)數(shù)據(jù),數(shù)據(jù)的生成和更新采用一種工作量證明的分布式共識(shí)算法,區(qū)塊鏈中數(shù)據(jù)傳輸和訪問(wèn)的安全性則利用密碼學(xué)原理來(lái)保障,同時(shí)區(qū)塊鏈以智能合約的形式提供數(shù)據(jù)的編程操作[5]。從數(shù)據(jù)去中心化的角度來(lái)看,區(qū)塊鏈上的數(shù)據(jù)不存儲(chǔ)在某一個(gè)特定的服務(wù)器或安全節(jié)點(diǎn)上,而是分布地存儲(chǔ)于網(wǎng)絡(luò)中所有的完整節(jié)點(diǎn)上,同時(shí)網(wǎng)絡(luò)中每一個(gè)節(jié)點(diǎn)都保證數(shù)據(jù)信息的完整性和一致性[6]。然而從技術(shù)角度分析,當(dāng)區(qū)塊鏈中每個(gè)數(shù)據(jù)對(duì)象存在多個(gè)副本時(shí),必然會(huì)導(dǎo)致眾多問(wèn)題的出現(xiàn),如數(shù)據(jù)副本負(fù)載不平衡、數(shù)據(jù)沖突、數(shù)據(jù)篡改和破壞等問(wèn)題[7]。區(qū)塊鏈采用去中心化的思想,使用對(duì)等網(wǎng)絡(luò)中所有節(jié)點(diǎn)集體運(yùn)作的方式,構(gòu)建了一個(gè)沒(méi)有中央控制節(jié)點(diǎn)的自組織網(wǎng)絡(luò),作為一個(gè)分布式、多中心的存儲(chǔ)架構(gòu),數(shù)據(jù)一致性問(wèn)題尤為重要。

        針對(duì)上述問(wèn)題,文中提出一種基于區(qū)塊鏈關(guān)鍵技術(shù)的數(shù)據(jù)一致性維護(hù)體系架構(gòu)。在數(shù)據(jù)一致性維護(hù)方面,從存儲(chǔ)層、網(wǎng)絡(luò)層、共識(shí)層和數(shù)字加密四個(gè)關(guān)鍵技術(shù)層面進(jìn)行研究,闡述了如何通過(guò)分布式數(shù)據(jù)存儲(chǔ)技術(shù)、數(shù)據(jù)傳輸協(xié)議技術(shù)、共識(shí)機(jī)制技術(shù)、非對(duì)稱加密技術(shù)來(lái)維護(hù)數(shù)據(jù)的一致性。

        1 分布式數(shù)據(jù)存儲(chǔ)技術(shù)

        由于數(shù)據(jù)一致性問(wèn)題涉及到區(qū)塊的結(jié)構(gòu)以及區(qū)塊不可篡改的重要特性,區(qū)塊鏈中的數(shù)據(jù)可以從兩方面描述,一方面是“區(qū)塊+鏈”,另一方面是“交易+鏈”。區(qū)塊鏈可描述為一個(gè)由多個(gè)節(jié)點(diǎn)組成的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),它將一段時(shí)間內(nèi)的交易以Merkle樹(shù)形式組織,將數(shù)據(jù)和代碼封裝形成區(qū)塊,按照時(shí)間順序組織區(qū)塊,同時(shí)利用密碼學(xué)原理保證數(shù)據(jù)不可篡改和偽造[8]。

        區(qū)塊是包含了區(qū)塊鏈全網(wǎng)中數(shù)據(jù)信息的一種數(shù)據(jù)結(jié)構(gòu),由包含元數(shù)據(jù)的數(shù)據(jù)頭和包含所有交易數(shù)據(jù)構(gòu)成的區(qū)塊體組成。區(qū)塊頭由前一區(qū)塊哈希、隨機(jī)數(shù)、時(shí)間戳、難度目標(biāo)以及Merkle根等關(guān)鍵字段構(gòu)成。每個(gè)區(qū)塊都有指向前一個(gè)區(qū)塊的鏈接,一直到最初創(chuàng)建的區(qū)塊,在區(qū)塊鏈系統(tǒng)中發(fā)生的每一筆交易都會(huì)存在于某一個(gè)區(qū)塊中并永久保存,如圖1所示。例如,“區(qū)塊25”中包含前一區(qū)塊哈希值鏈接到“區(qū)塊24”,“區(qū)塊24”中則包含“區(qū)塊23”的哈希值鏈接至“區(qū)塊23”,以此類推,可追溯至最初的一個(gè)數(shù)據(jù)區(qū)塊即創(chuàng)世區(qū)塊。

        圖1 區(qū)塊鏈?zhǔn)浇Y(jié)構(gòu)

        其中“前一區(qū)塊哈希值”字段是對(duì)其前一區(qū)塊頭的所有數(shù)據(jù)進(jìn)行SHA256運(yùn)算得到的結(jié)果,該字段使得各個(gè)區(qū)塊之間可以連接起來(lái),是保證區(qū)塊連接成為區(qū)塊鏈的關(guān)鍵字段。隨機(jī)數(shù)、時(shí)間戳、難度目標(biāo)字段與新區(qū)塊的形成有關(guān),分布在區(qū)塊鏈網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)貢獻(xiàn)大量的算力資源競(jìng)爭(zhēng)解決一個(gè)密碼學(xué)安全的SHA256數(shù)學(xué)難題以生成新區(qū)塊。隨機(jī)數(shù)記錄解密該區(qū)塊相關(guān)數(shù)學(xué)難題的答案的值,時(shí)間戳是區(qū)塊產(chǎn)生的精確時(shí)間,難度目標(biāo)可動(dòng)態(tài)調(diào)整以改變新區(qū)塊形成的難易程度。Merkle根是快速歸納和校驗(yàn)區(qū)塊大規(guī)模數(shù)據(jù)完整性和一致性的重要數(shù)據(jù)字段,Merkle樹(shù)自底向上構(gòu)建,首先將區(qū)塊中的所有數(shù)據(jù)進(jìn)行哈希運(yùn)算得到哈希序列,將哈希序列存儲(chǔ)至相應(yīng)的葉子節(jié)點(diǎn),對(duì)相鄰葉子節(jié)點(diǎn)的哈希值進(jìn)行哈希運(yùn)算,如此遞歸操作直至只剩頂部的一個(gè)節(jié)點(diǎn),即Merkle根計(jì)入?yún)^(qū)塊頭中。區(qū)塊體主要記錄所有交易的具體信息,包括交易的輸入和輸出、交易值等具體的數(shù)據(jù)信息。

        交易數(shù)據(jù)是區(qū)塊鏈中最重要的組成部分。區(qū)塊鏈綜合應(yīng)用多重技術(shù)都是為了確保新交易數(shù)據(jù)的快速生成、安全傳播和有效驗(yàn)證,并且最終添加至整個(gè)分布式總賬即區(qū)塊鏈中,全網(wǎng)每個(gè)節(jié)點(diǎn)都擁有總賬的副本以確保交易數(shù)據(jù)一致可靠不可篡改。同區(qū)塊成鏈一致,區(qū)塊鏈中所有交易也構(gòu)成了一組鏈?zhǔn)浇Y(jié)構(gòu)來(lái)保證數(shù)據(jù)的一致性。在區(qū)塊鏈交易系統(tǒng)中,交易的基本單位被定義成UTXO(unspent transaction output,未花費(fèi)交易輸出),指記錄于區(qū)塊鏈系統(tǒng)中的無(wú)法再細(xì)分、被所有者“鎖住”并被整個(gè)網(wǎng)絡(luò)識(shí)別成貨幣單位的一定量的貨幣。每一個(gè)交易又可以分為交易輸入(input)和交易輸出(output)兩個(gè)字段。交易輸入由指向被花費(fèi)的UTXO所在的交易的交易哈希值、表示被花費(fèi)的UTXO的索引號(hào)的輸出索引、滿足UTXO解鎖條件的解鎖腳本等字段構(gòu)成,交易輸出則主要包含一個(gè)定義了支付輸出所需要條件的鎖定腳本。

        按照交易的輸入和輸出的個(gè)數(shù)可以將交易可以分為三種類型,擁有一個(gè)輸入和一個(gè)輸出的一般交易、擁有一個(gè)輸入和多個(gè)輸出的用來(lái)分配資金的分散型交易與擁有多個(gè)輸入和一個(gè)輸出的用于清理支付過(guò)程中收到的小數(shù)額找零的集合型交易。每一筆交易的輸出都鏈接到下一筆交易的輸入,因此全網(wǎng)所有合法交易都可以通過(guò)這種方式追溯到之前的一筆或者多筆交易的輸出,交易鏈的源頭是生成新區(qū)塊的系統(tǒng)獎(jiǎng)勵(lì)(又稱Coinbase交易),交易鏈的末尾則是許多UTXO。交易輸入和交易輸出同時(shí)包含兩個(gè)用來(lái)驗(yàn)證交易合法性的腳本。輸出腳本位于交易輸出,明確了下一筆交易取得當(dāng)前UTXO使用權(quán)的條件,又稱鎖定腳本。輸入腳本位于交易輸入,是滿足被鎖定腳本在其交易輸出上所設(shè)定的花費(fèi)UTXO的花費(fèi)條件,又稱解鎖腳本,通常含有一個(gè)由用戶私鑰生成的數(shù)字簽名,允許交易輸出被消費(fèi)。在交易驗(yàn)證階段,需要將兩個(gè)腳本組合在一起,以堆棧執(zhí)行引擎形式進(jìn)行驗(yàn)證,只有組合腳本驗(yàn)證通過(guò),包含在交易中的UTXO才可以被使用,才可以證明交易有效,從而保證了全網(wǎng)中所有數(shù)據(jù)一致可信。

        2 對(duì)等網(wǎng)絡(luò)可靠性傳輸技術(shù)

        區(qū)塊鏈系統(tǒng)自誕生至今一直保持著高穩(wěn)定性,這與其采用基于國(guó)際互聯(lián)網(wǎng)的P2P(peer to peer,對(duì)等網(wǎng)絡(luò))架構(gòu)密不可分。P2P指位于同一網(wǎng)絡(luò)中的每臺(tái)計(jì)算機(jī)都彼此對(duì)等,各個(gè)節(jié)點(diǎn)共同提供網(wǎng)絡(luò)服務(wù),不存在任何服務(wù)端、中央化的服務(wù)與層級(jí)結(jié)構(gòu)[9]。相較于傳統(tǒng)C/S(client/server,客戶/服務(wù)器)模式的信息系統(tǒng),采用P2P網(wǎng)絡(luò)結(jié)構(gòu)的系統(tǒng)具有去中心、高容錯(cuò)、隱私保護(hù)和負(fù)載均衡等特點(diǎn)。系統(tǒng)中各個(gè)節(jié)點(diǎn)地位平等,每個(gè)節(jié)點(diǎn)都可以獨(dú)立完成系統(tǒng)服務(wù)功能,因此網(wǎng)絡(luò)中部分節(jié)點(diǎn)或者網(wǎng)絡(luò)遭到惡意攻擊時(shí)并不影響系統(tǒng)性能。區(qū)塊鏈系統(tǒng)的每個(gè)節(jié)點(diǎn)承擔(dān)了網(wǎng)絡(luò)路由、驗(yàn)證區(qū)塊數(shù)據(jù)、傳播區(qū)塊數(shù)據(jù)、發(fā)現(xiàn)新節(jié)點(diǎn)等功能且具有動(dòng)態(tài)變更的特性,任一區(qū)塊數(shù)據(jù)生成后,將由生成該數(shù)據(jù)的節(jié)點(diǎn)廣播到全網(wǎng)其他所有節(jié)點(diǎn)來(lái)加以驗(yàn)證。區(qū)塊鏈系統(tǒng)的交易數(shù)據(jù)傳播協(xié)議包括以下步驟,如圖2所示。

        圖2 區(qū)塊數(shù)據(jù)傳輸

        (1)新的交易通過(guò)對(duì)等網(wǎng)絡(luò)傳輸協(xié)議廣播給P2P網(wǎng)絡(luò)上的所有節(jié)點(diǎn)。

        (2)每個(gè)節(jié)點(diǎn)首先對(duì)交易數(shù)據(jù)進(jìn)行有效性驗(yàn)證,即利用非對(duì)稱加密機(jī)制驗(yàn)證交易的簽名和交易數(shù)據(jù)信息,如果驗(yàn)證無(wú)效則丟棄該筆交易數(shù)據(jù)。如果驗(yàn)證通過(guò),節(jié)點(diǎn)將交易數(shù)據(jù)以Merkle樹(shù)的形式進(jìn)行組織,并且記錄區(qū)塊頭的有效字段,蓋上時(shí)間戳,填入?yún)^(qū)塊頭其他字段,封裝產(chǎn)生區(qū)塊?,F(xiàn)有區(qū)塊鏈網(wǎng)絡(luò)規(guī)定新區(qū)塊生成的時(shí)間是10分鐘。

        (3)為了競(jìng)爭(zhēng)記賬權(quán),每個(gè)節(jié)點(diǎn)競(jìng)爭(zhēng)自身算力解決SHA256難題以提交工作量證明。

        (4)如果一個(gè)礦工節(jié)點(diǎn)解開(kāi)了這10分鐘的SHA256難題,就找到了工作量證明,獲得該區(qū)塊的記賬權(quán),該節(jié)點(diǎn)將數(shù)據(jù)打包封裝成新區(qū)塊,通過(guò)對(duì)等網(wǎng)絡(luò)傳輸協(xié)議向全網(wǎng)各個(gè)節(jié)點(diǎn)廣播該新區(qū)塊。網(wǎng)絡(luò)中其他節(jié)點(diǎn)接受到新區(qū)塊將首先驗(yàn)證工作量證明是否有效,即每個(gè)節(jié)點(diǎn)計(jì)算區(qū)塊頭的雙重哈希值,并與已知的難度目標(biāo)作比較。

        (5)所有參與記錄的節(jié)點(diǎn)通過(guò)Merkle根共同驗(yàn)證交易記錄數(shù)據(jù)的正確性,驗(yàn)證通過(guò)則節(jié)點(diǎn)接收這個(gè)區(qū)塊,該區(qū)塊被鏈接到區(qū)塊鏈的尾部。一般來(lái)說(shuō),每一筆交易,必須經(jīng)過(guò)6次區(qū)塊確認(rèn),即6個(gè)10分鐘記賬,才能最終在區(qū)塊鏈上被承認(rèn)是合法交易。6次確認(rèn)使得惡意節(jié)點(diǎn)攻擊需要耗費(fèi)巨大算力,增加了區(qū)塊數(shù)據(jù)攻擊的難度,使得全網(wǎng)可以保證抵御51%攻擊,同時(shí)也降低了雙花問(wèn)題出現(xiàn)的概率,有效維護(hù)了區(qū)塊數(shù)據(jù)一致性。

        (6)所有節(jié)點(diǎn)轉(zhuǎn)向創(chuàng)造下一個(gè)區(qū)塊,并將剛剛接受的區(qū)塊的哈希散列作為父區(qū)塊的哈希值記錄在下一個(gè)區(qū)塊的區(qū)塊頭中。

        針對(duì)P2P網(wǎng)絡(luò)中單個(gè)或者部分節(jié)點(diǎn)故障問(wèn)題,區(qū)塊鏈采用數(shù)據(jù)同步的思想來(lái)解決[10]。區(qū)塊鏈設(shè)置一套通信消息原語(yǔ)來(lái)進(jìn)行數(shù)據(jù)同步。首先,網(wǎng)絡(luò)中對(duì)等節(jié)點(diǎn)(節(jié)點(diǎn)A和節(jié)點(diǎn)B)交換包含BestHeight(區(qū)塊鏈高度)字段的version消息,比較自身區(qū)塊鏈所擁有的區(qū)塊數(shù)量。然后,對(duì)等節(jié)點(diǎn)再交換一個(gè)包含本地區(qū)塊鏈的頂端區(qū)塊哈希值的getblocks消息。節(jié)點(diǎn)通過(guò)比較頂端區(qū)塊哈希值來(lái)判斷本地區(qū)塊鏈與其他對(duì)等節(jié)點(diǎn)的區(qū)塊鏈長(zhǎng)度差異,擁有較長(zhǎng)區(qū)塊的節(jié)點(diǎn)(如節(jié)點(diǎn)B)可識(shí)別出需要進(jìn)行區(qū)塊補(bǔ)充操作的其他節(jié)點(diǎn),之后使用inv消息把這些區(qū)塊的哈希值傳播出去。區(qū)塊信息不完整的節(jié)點(diǎn)(節(jié)點(diǎn)A)發(fā)送getdata消息向節(jié)點(diǎn)B請(qǐng)求得到完整區(qū)塊鏈的區(qū)塊數(shù)據(jù)信息,之后發(fā)送inv消息,此inv消息包含了區(qū)塊的哈希值,節(jié)點(diǎn)A判斷所返回的哈希值來(lái)確認(rèn)信息是否為被請(qǐng)求區(qū)塊,從而選擇性讀取缺失區(qū)塊,實(shí)現(xiàn)節(jié)點(diǎn)間區(qū)塊數(shù)據(jù)的同步。這種對(duì)等網(wǎng)絡(luò)的數(shù)據(jù)傳輸機(jī)制,保證了在節(jié)點(diǎn)動(dòng)態(tài)加入、退出的情況下,維護(hù)整個(gè)網(wǎng)絡(luò)的穩(wěn)定性,進(jìn)而保證了區(qū)塊鏈中數(shù)據(jù)的完整性和一致性。

        3 共識(shí)機(jī)制

        任何分布式系統(tǒng)都會(huì)面臨網(wǎng)絡(luò)延遲、傳輸錯(cuò)誤、軟件錯(cuò)誤、安全漏洞以及黑客入侵等問(wèn)題[11]。為了防范這些潛在的錯(cuò)誤,區(qū)塊鏈系統(tǒng)需要一個(gè)高效的共識(shí)機(jī)制來(lái)確保每一個(gè)節(jié)點(diǎn)都有一個(gè)唯一公認(rèn)的全局賬本。隨著人們對(duì)這種分布式賬本一致性問(wèn)題的不斷探索,很多適合區(qū)塊鏈的共識(shí)算法被提出。

        早期的區(qū)塊鏈采用PoW(proof of work,工作量證明)機(jī)制來(lái)解決存儲(chǔ)時(shí)的分布式一致性問(wèn)題,核心思想是各節(jié)點(diǎn)基于算力競(jìng)爭(zhēng)來(lái)共同解決一個(gè)SHA256數(shù)學(xué)難題,最快解決該難題的節(jié)點(diǎn)將獲得區(qū)塊記賬權(quán)和系統(tǒng)獎(jiǎng)勵(lì),從而引入分布式節(jié)點(diǎn)的算力競(jìng)爭(zhēng)來(lái)保證數(shù)據(jù)一致性和共識(shí)的安全性[12]。PoS(proof of stake,權(quán)益證明)機(jī)制是為解決PoW共識(shí)的資源浪費(fèi)和安全性缺陷而提出的替代方案,它采用權(quán)益證明來(lái)代替PoW中的基于哈希算力的工作量證明,由系統(tǒng)中具有最高權(quán)益而非最高算力的節(jié)點(diǎn)獲得區(qū)塊記賬權(quán)[13]。PoS機(jī)制僅依靠?jī)?nèi)部幣齡和權(quán)益而不需要消耗外部算力和資源,從根本上解決了PoW共識(shí)算力浪費(fèi)的問(wèn)題,但同時(shí)丟棄了PoW的一些優(yōu)勢(shì),因此更容易分叉,一筆交易需要等待更多確認(rèn)才能確保安全,鏈中數(shù)據(jù)有極大可能被篡改,存在一定的安全隱患。DPoS(delegated proof of stake,股份授權(quán)證明)機(jī)制實(shí)質(zhì)上是一種“受約束的中心化”決策機(jī)制,它引入了“受托人”的角色以降低中心化帶來(lái)的負(fù)面影響。在DPoS中新區(qū)塊的生成過(guò)程是通過(guò)101位經(jīng)由網(wǎng)絡(luò)上所有分散節(jié)點(diǎn)投票產(chǎn)生的受托人來(lái)完成的,受托人負(fù)責(zé)新區(qū)塊的生產(chǎn)和廣播以此獲取新區(qū)塊生成的Coinbase獎(jiǎng)勵(lì)[14],但也需要提前繳納一定量的保證金,同時(shí)也需要付出強(qiáng)大的算力資源。DPoS通過(guò)這種方式使得全網(wǎng)算力集中在101位受托人中,大幅縮小了負(fù)責(zé)生成新區(qū)塊的節(jié)點(diǎn)數(shù)量,可以承載更多的交易量,同時(shí)可以達(dá)到秒級(jí)的共識(shí)驗(yàn)證。

        上述三個(gè)共識(shí)機(jī)制雖然可以維護(hù)區(qū)塊數(shù)據(jù)一致性,但均存在不同程度的算力資源浪費(fèi)和安全隱患問(wèn)題。PBFT(practical Byzantine fault tolerance,實(shí)用拜占庭容錯(cuò))算法提出在異步網(wǎng)絡(luò)環(huán)境下使用狀態(tài)機(jī)副本復(fù)制協(xié)議來(lái)解決上述問(wèn)題。PBFT是一種基于消息傳遞的已執(zhí)行算法,它的執(zhí)行過(guò)程包括5個(gè)步驟,如圖3所示。

        (1)從全網(wǎng)節(jié)點(diǎn)選舉出一個(gè)主節(jié)點(diǎn)(leader),新區(qū)塊由主節(jié)點(diǎn)負(fù)責(zé)生成。

        圖3 PBFT算法執(zhí)行流程

        (2)每個(gè)節(jié)點(diǎn)把客戶端發(fā)來(lái)的交易向全網(wǎng)廣播,主節(jié)點(diǎn)將從網(wǎng)絡(luò)收集到需放在新區(qū)塊內(nèi)的多個(gè)交易排序后存入列表,并將該列表向全網(wǎng)廣播。

        (3)每個(gè)節(jié)點(diǎn)接收到交易列表后,根據(jù)排序模擬執(zhí)行這些交易。所有交易執(zhí)行完后,基于交易結(jié)果計(jì)算新區(qū)塊的哈希摘要,并向全網(wǎng)廣播。

        (4)如果一個(gè)節(jié)點(diǎn)收到的2f(f為可容忍的拜占庭節(jié)點(diǎn)數(shù))個(gè)其他節(jié)點(diǎn)發(fā)來(lái)的摘要都和自己相等,就向全網(wǎng)廣播一條commit消息。

        (5)如果一個(gè)節(jié)點(diǎn)收到2f+1條commit消息,即可提交新區(qū)塊及其交易到本地的區(qū)塊鏈和狀態(tài)數(shù)據(jù)庫(kù)。圖3展示了客戶端發(fā)起請(qǐng)求,經(jīng)過(guò)預(yù)準(zhǔn)備、準(zhǔn)備、確認(rèn)和回復(fù)四個(gè)階段,最終達(dá)成有效共識(shí)的執(zhí)行流程,其中C是客戶端,副本0至副本3都是網(wǎng)絡(luò)節(jié)點(diǎn),0是主節(jié)點(diǎn),3是網(wǎng)絡(luò)中的失效節(jié)點(diǎn)。

        區(qū)塊鏈系統(tǒng)中的PBFT共識(shí)算法使得交易確認(rèn)速度顯著提高,交易吞吐量也可以滿足現(xiàn)有的數(shù)據(jù)交易規(guī)模,可以解決數(shù)據(jù)丟失、損壞、延遲的問(wèn)題,同時(shí)對(duì)于任何網(wǎng)絡(luò)環(huán)境都具有較好的容錯(cuò)能力,更為高效地保障了系統(tǒng)數(shù)據(jù)一致性。

        4 非對(duì)稱加密機(jī)制

        非對(duì)稱加密技術(shù)是保證區(qū)塊鏈安全的關(guān)鍵,最初是由美國(guó)學(xué)者Dime和Henman為解決信息公開(kāi)傳送和密鑰管理問(wèn)題所提出的一種密鑰交換協(xié)議,指使用公鑰和私鑰對(duì)數(shù)據(jù)存儲(chǔ)和傳輸進(jìn)行加密和解密[15]。常見(jiàn)的非對(duì)稱加密算法包括RSA、Elgamal、背包算法、Rabin、D-H、ECC(elliptic curve cryptography,橢圓曲線加密算法)等。區(qū)塊鏈?zhǔn)褂梅菍?duì)稱加密的公私鑰對(duì)來(lái)構(gòu)建節(jié)點(diǎn)間信任,為數(shù)據(jù)一致性提供重要保障[16]。

        非對(duì)稱加密機(jī)制在區(qū)塊鏈中的應(yīng)用如圖4所示。

        圖4 區(qū)塊鏈非對(duì)稱加密機(jī)制

        系統(tǒng)首先使用隨機(jī)數(shù)生成器生成一個(gè)256位二進(jìn)制隨機(jī)數(shù)作為私鑰,該私鑰不直接提供給用戶,對(duì)其進(jìn)行SHA256哈希運(yùn)算生成256位哈希序列,之后經(jīng)由區(qū)塊鏈自定義方案即Base58Check編碼方案將哈希值和校驗(yàn)和數(shù)據(jù)轉(zhuǎn)換為一種“字母-數(shù)字”表示,形成50字符長(zhǎng)度的易識(shí)別字符提供給用戶。二進(jìn)制公鑰經(jīng)過(guò)Secp256k1橢圓曲線加密算法生成65字節(jié)的非壓縮公鑰,該非壓縮公鑰被定義成一個(gè)點(diǎn):K=(x,y),其生成過(guò)程是K=k*G,其中,k是二進(jìn)制私鑰,G是橢圓曲線中被稱生成點(diǎn)的一個(gè)常數(shù)點(diǎn),定義為G*=0279BE667EF9DCBBAC55A06295CE870B07029BFCD B2DCE28D959F2815B16F81798,其中K代表所得公鑰,*是橢圓曲線乘運(yùn)算。該公鑰用來(lái)生成區(qū)塊鏈系統(tǒng)的交易賬戶地址標(biāo)識(shí),對(duì)其進(jìn)行兩次SHA256哈希運(yùn)算,取運(yùn)算結(jié)果的前4字節(jié)作為公鑰哈希的校驗(yàn)值鏈接在其尾部,最后經(jīng)由Base58編碼轉(zhuǎn)化,最終形成33字符的地址標(biāo)識(shí)。

        區(qū)塊鏈中的數(shù)據(jù)加密和數(shù)字簽名也是非對(duì)稱加密機(jī)制的應(yīng)用體現(xiàn)。信息發(fā)送者A采用信息接收者B的公鑰對(duì)待發(fā)送的信息加密,將加密信息發(fā)送給B,B使用自己的私鑰對(duì)接收到的信息解密以獲得原始信息,這一過(guò)程稱為數(shù)據(jù)加密。數(shù)字簽名則是信息發(fā)送者A使用其自身私鑰將信息加密之后發(fā)送給B,B收到信息之后采用A對(duì)應(yīng)的公鑰解密信息,以確認(rèn)信息來(lái)源于A[17]。

        區(qū)塊鏈的交易應(yīng)用了上述加密機(jī)制,如圖5所示。

        圖5 交易的簽名和驗(yàn)證

        在交易認(rèn)證過(guò)程中,交易2的簽名過(guò)程主要由付款方(用戶1)來(lái)完成,本次交易的發(fā)送方(用戶1)首先對(duì)上一筆交易(交易1)的交易數(shù)據(jù)信息進(jìn)行哈希運(yùn)算得到一串哈希序列,用戶1使用自己的私鑰對(duì)所得序列加密,加密后的摘要將作為交易1數(shù)據(jù)信息的數(shù)字簽名與交易1數(shù)據(jù)一起發(fā)送給接收方。用戶2收到信息之后,將對(duì)交易2的合法性進(jìn)行驗(yàn)證,用戶2使用與上一步相同的哈希函數(shù)從接收的交易數(shù)據(jù)信息得到哈希摘要,之后利用用戶1的公鑰對(duì)上一步附加的數(shù)字簽名進(jìn)行解密得到另一哈希摘要。接受方(用戶2)將兩個(gè)摘要進(jìn)行對(duì)比,若二者內(nèi)容相同,接受方(用戶2)就能確認(rèn)該數(shù)字簽名是發(fā)送方的,即確認(rèn)交易單有效。非對(duì)稱加密技術(shù)的應(yīng)用保證了交易數(shù)據(jù)一致,確保了數(shù)據(jù)的真實(shí)和安全。

        5 數(shù)據(jù)一致性維護(hù)體系架構(gòu)

        基于以上研究,文中提出了區(qū)塊鏈數(shù)據(jù)一致性體系架構(gòu),如圖6所示。該架構(gòu)構(gòu)建了面向區(qū)塊鏈數(shù)據(jù)一致性關(guān)鍵技術(shù)研究的新模型,形成了一種新的數(shù)據(jù)記錄、存儲(chǔ)和展現(xiàn)的方式。

        圖6 區(qū)塊鏈數(shù)據(jù)一致性體系架構(gòu)

        該體系架構(gòu)分為存儲(chǔ)層、網(wǎng)絡(luò)層、共識(shí)層和數(shù)字加密四個(gè)關(guān)鍵部分。存儲(chǔ)層主要利用塊數(shù)據(jù)結(jié)構(gòu)保障數(shù)據(jù)存儲(chǔ)的完整性,每個(gè)數(shù)據(jù)塊將一段時(shí)間內(nèi)接收到的數(shù)據(jù)交易封裝到一個(gè)帶有時(shí)間戳的數(shù)據(jù)區(qū)塊中,并鏈接到當(dāng)前最長(zhǎng)的主區(qū)塊鏈上存儲(chǔ),形成最新的區(qū)塊。該層涉及區(qū)塊存儲(chǔ)、鏈?zhǔn)浇Y(jié)構(gòu)、哈希算法、Merkle樹(shù)、時(shí)間戳等主要技術(shù)。網(wǎng)絡(luò)層封裝了區(qū)塊鏈系統(tǒng)的組網(wǎng)方式、消息傳輸協(xié)議、數(shù)據(jù)驗(yàn)證機(jī)制等要素。結(jié)合實(shí)際應(yīng)用需求,存儲(chǔ)層上傳新區(qū)塊數(shù)據(jù)至網(wǎng)絡(luò)層,網(wǎng)絡(luò)層通過(guò)設(shè)計(jì)特定的傳播協(xié)議和數(shù)據(jù)驗(yàn)證機(jī)制能夠使每一個(gè)節(jié)點(diǎn)都參與新區(qū)塊數(shù)據(jù)的傳輸和校驗(yàn),當(dāng)數(shù)據(jù)區(qū)塊通過(guò)全網(wǎng)大部分節(jié)點(diǎn)驗(yàn)證后,新區(qū)塊數(shù)據(jù)將被節(jié)點(diǎn)確認(rèn)并存儲(chǔ)在區(qū)塊鏈中。共識(shí)層能夠在決策權(quán)高度分散的去中心化系統(tǒng)中使得各節(jié)點(diǎn)高效地針對(duì)區(qū)塊數(shù)據(jù)的有效性達(dá)成共識(shí),PoW、PoS、DPoS和PBFT可以適應(yīng)不同場(chǎng)景下共識(shí)的一致性需求。網(wǎng)絡(luò)層節(jié)點(diǎn)數(shù)據(jù)上傳至共識(shí)層,共識(shí)層中一系列共識(shí)算法可以確定新區(qū)塊生成的方式,并且確認(rèn)交易數(shù)據(jù)的一致性,保證全網(wǎng)數(shù)據(jù)保持同步。數(shù)字加密是保證區(qū)塊數(shù)據(jù)安全的基礎(chǔ)技術(shù),其貫穿數(shù)據(jù)一致性維護(hù)的整個(gè)底層架構(gòu)。一方面,數(shù)字加密對(duì)數(shù)據(jù)進(jìn)行簽名認(rèn)證、確認(rèn)數(shù)據(jù)所有權(quán)、使用權(quán)和流通路徑;另一方面,數(shù)字加密技術(shù)可以通過(guò)多種加密方法保障數(shù)據(jù)不被泄露,使得區(qū)塊數(shù)據(jù)是全網(wǎng)認(rèn)可的、透明的和可追溯的。

        6 結(jié)束語(yǔ)

        區(qū)塊鏈所存儲(chǔ)數(shù)據(jù)的一致性直接關(guān)系到系統(tǒng)的高可用性和高可擴(kuò)展性,只有分布式系統(tǒng)中各節(jié)點(diǎn)數(shù)據(jù)保持一致,區(qū)塊鏈系統(tǒng)中數(shù)據(jù)才真實(shí)可信。文中依托工業(yè)和信息化部通信軟科學(xué)項(xiàng)目的支持,對(duì)區(qū)塊鏈底層進(jìn)行深入研究,詳細(xì)闡述了區(qū)塊鏈?zhǔn)侨绾瓮ㄟ^(guò)分布式數(shù)據(jù)存儲(chǔ)技術(shù)、數(shù)據(jù)傳輸協(xié)議技術(shù)、共識(shí)機(jī)制技術(shù)、非對(duì)稱加密技術(shù)等技術(shù)來(lái)保證數(shù)據(jù)一致性的。

        區(qū)塊鏈中數(shù)據(jù)一致性維護(hù)研究的技術(shù)成果必將促使越來(lái)越多的研究人員將區(qū)塊鏈技術(shù)的關(guān)注重點(diǎn)由區(qū)塊鏈的數(shù)字貨幣應(yīng)用轉(zhuǎn)移到區(qū)塊鏈的底層數(shù)據(jù)一致性維護(hù)的共識(shí)算法和可靠性傳輸協(xié)議研究方面來(lái)。文中的研究成果可以為現(xiàn)實(shí)應(yīng)用場(chǎng)景中數(shù)據(jù)一致性維護(hù)提供參考,為國(guó)內(nèi)區(qū)塊鏈技術(shù)發(fā)展與應(yīng)用場(chǎng)景落地提供理論依據(jù)和技術(shù)支持,也會(huì)為區(qū)塊鏈技術(shù)將物理世界的實(shí)體資產(chǎn)轉(zhuǎn)移改變?yōu)殒溕现悄苜Y產(chǎn)的合約化轉(zhuǎn)換的平行社會(huì)架構(gòu)奠定技術(shù)基礎(chǔ)。

        猜你喜歡
        一致性
        注重整體設(shè)計(jì) 凸顯數(shù)與運(yùn)算的一致性
        遼寧教育(2022年19期)2022-11-18 07:20:42
        關(guān)注減污降碳協(xié)同的一致性和整體性
        公民與法治(2022年5期)2022-07-29 00:47:28
        商用車CCC認(rèn)證一致性控制計(jì)劃應(yīng)用
        注重教、學(xué)、評(píng)一致性 提高一輪復(fù)習(xí)效率
        對(duì)歷史課堂教、學(xué)、評(píng)一體化(一致性)的幾點(diǎn)探討
        IOl-master 700和Pentacam測(cè)量Kappa角一致性分析
        基于CFD仿真分析的各缸渦流比一致性研究
        ONVIF的全新主張:一致性及最訪問(wèn)控制的Profile A
        方形截面Rogowski線圈的一致性分析
        基于事件觸發(fā)的多智能體輸入飽和一致性控制
        欧美日本道免费二区三区| 日本在线 | 中文| 视频国产一区二区在线| 草逼短视频免费看m3u8| 免费人妻精品一区二区三区| 久久天天躁夜夜躁狠狠躁2022| 亚洲精品动漫免费二区| 亚洲国产av一区二区不卡| 国产区精品一区二区不卡中文| 夜夜嗨av一区二区三区| 国产激情无码Av毛片久久| 国产中文字幕一区二区视频| 国产色视频一区二区三区qq号 | 国产精品午夜爆乳美女视频| 国产亚洲欧美在线观看的| 精品国产97av一区二区三区| 国产人妻熟女呻吟在线观看| 亚洲av无码国产精品色软件下戴| 日韩精品久久久一区| 白白白色视频在线观看播放| 久亚洲一线产区二线产区三线麻豆 | 亚洲精品久久| 欧美成人免费高清视频| 国产激情视频在线观看你懂的| 国产亚洲精品90在线视频| 成年女人色毛片| 国内精品久久久久影院优| 最新国产成人自拍视频| 先锋影音人妻啪啪va资源网站| 亚洲欧美一区二区三区| 99综合精品久久| 国产一区二区三区成人| 蜜臀av午夜一区二区三区| 伊人久久大香线蕉免费视频| 中文字幕久区久久中文字幕| 亚洲中文字幕日产无码| 国产成人麻豆精品午夜福利在线 | 一本色道无码不卡在线观看| 亚洲精品字幕在线观看| caoporon国产超碰公开| 亚洲av乱码二区三区涩涩屋 |