亚洲,欧美,中文字幕,小婕子伦流澡到高潮视频,无码成人aaaaa毛片,性少妇japanesexxxx,山外人精品影院

一種適用于聯(lián)盟鏈的共識機(jī)制

  摘 要:隨著比特幣的風(fēng)靡,區(qū)塊鏈技術(shù)已經(jīng)成為當(dāng)下研究領(lǐng)域的主流。區(qū)塊鏈系統(tǒng)根據(jù)應(yīng)用場景的不同,一般分為公有鏈、聯(lián)盟鏈和私有鏈。由于公有鏈完全去中心化的性質(zhì)導(dǎo)致其無法滿足企業(yè)的需求,所以在實際應(yīng)用中企業(yè)往往選擇部分去中心的聯(lián)盟鏈。共識機(jī)制是區(qū)塊鏈的引擎與核心。目前,主流的共識機(jī)制主要針對公有鏈提出,難以適用于聯(lián)盟鏈與私有鏈。在此背景下,論文為聯(lián)盟鏈提出一種共識機(jī)制。該共識機(jī)制不僅解決傳統(tǒng)共識效率低的問題,而且在一定程度上可以應(yīng)對拜占庭容錯。

  關(guān)鍵詞:聯(lián)盟鏈;共識機(jī)制;拜占庭容錯

  中圖分類號:TP311.13 文獻(xiàn)標(biāo)識碼:J

  Abstract: With the popularity of bitcoin, blockchain technology has become the mainstream of current research field. Block chain system is generally divided into public blockchain, consortium blockchain and private blockchain. Because of the completely decentralized nature of public blockchain, it can not meet the needs of enterprises, so in practical applications enterprises often choose part of the decentralized consortium blockchain. Consensus mechanism is the engine and core of blockchain. At present, the mainstream consensus mechanism is mainly for the public chain, and it is difficult to apply to the consortium blockchain and private chain. Under this background, this paper proposes a consensus mechanism for the consortium blockchain. This consensus mechanism not only solves the inefficiency of traditional consensus, but also can deal with Byzantine failures.

  Key words: consortium chain; consensus mechanism; Byzantine failures

  1 引言

  區(qū)塊鏈?zhǔn)且环N去中心化的分布式賬本系統(tǒng),它可以用于登記和發(fā)行數(shù)字化資產(chǎn)、產(chǎn)權(quán)存證和信息追溯等。最早被提出的區(qū)塊鏈參與形式被稱為公有鏈,系統(tǒng)的結(jié)構(gòu)完全去中心化,任何用戶都能參與并獲取鏈上存儲的所有數(shù)據(jù),但由于系統(tǒng)開放性的限制,用戶的隱私和監(jiān)督都存在不足,在個別領(lǐng)域的相關(guān)應(yīng)用難以滿足效率需求[1]。因此,私有鏈就隨之應(yīng)運而生,私有鏈雖然能夠解決以上問題,但如果僅僅由各個企業(yè)自己單獨建立,那么還將是一個個信息孤島。因此,以Hyperledger為代表的行業(yè)內(nèi)部聯(lián)盟鏈將會成為區(qū)塊鏈在未來實體應(yīng)用的主流方向。

  共識機(jī)制是區(qū)塊鏈的核心模塊,共識機(jī)制能保證在沒有中心主體控制下,系統(tǒng)中的各參與方能夠遵循相同記賬規(guī)劃,實現(xiàn)數(shù)據(jù)分布式的一致性[2]。優(yōu)秀的共識機(jī)制在保證系統(tǒng)的安全可控的情況下盡可能提升性能。但是由于區(qū)塊鏈發(fā)展時間較短和當(dāng)前社會主流目光還停留在比特幣上,目前主流的共識機(jī)制主要面向公有鏈,聯(lián)盟鏈共識機(jī)制相對較少。聯(lián)盟鏈的共識機(jī)制在未來是區(qū)塊鏈研究的一個重要方向。

  2 區(qū)塊鏈相關(guān)技術(shù)與概念

  2.1 區(qū)塊鏈基本架構(gòu)

  區(qū)塊鏈的設(shè)計目的是讓所有節(jié)點共同參與維護(hù)公共數(shù)據(jù)賬本的系統(tǒng),讓數(shù)據(jù)賬本公開透明。區(qū)塊鏈的基礎(chǔ)架構(gòu)可以分成六層。

  如圖1所示,區(qū)塊鏈系統(tǒng)一般由數(shù)據(jù)層、網(wǎng)絡(luò)層、共識層、激勵層、合約層和應(yīng)用層組成。數(shù)據(jù)層用于構(gòu)建數(shù)據(jù)區(qū)塊,對數(shù)據(jù)進(jìn)行加密簽名,增加時間戳;網(wǎng)絡(luò)層包括分布式對等網(wǎng)絡(luò),用于節(jié)點間的通信和數(shù)據(jù)驗證;共識層實現(xiàn)各類共識算法;激勵層主要用于制定相應(yīng)的激勵機(jī)制,在聯(lián)盟鏈和私有鏈中并不需要,因為激勵在系統(tǒng)外就已經(jīng)確認(rèn);合約層主要封裝各類腳本、算法和智能合約,是區(qū)塊鏈可編程特性的基礎(chǔ);應(yīng)用層則是基于區(qū)塊鏈技術(shù)的各類應(yīng)用[3]。

  2.2 區(qū)塊鏈的分類

  區(qū)塊鏈系統(tǒng)根據(jù)應(yīng)用場景和設(shè)計體系的不同,一般分為公有鏈、聯(lián)盟鏈和私有鏈[4]。

  公有鏈的各個節(jié)點可以自由加入和退出網(wǎng)絡(luò),并參加鏈上數(shù)據(jù)的讀寫,運行時以扁平的拓?fù)浣Y(jié)構(gòu)互聯(lián)互通,網(wǎng)絡(luò)中不存在任何中心化的服務(wù)端節(jié)點。

  私有鏈的各個節(jié)點的寫入權(quán)限收歸內(nèi)部控制,而讀取權(quán)限可使需求有選擇性地對外開放。私有鏈仍然具備區(qū)塊鏈多節(jié)點運行的通用結(jié)構(gòu),適用于特定機(jī)構(gòu)的內(nèi)部數(shù)據(jù)管理與審計。

  聯(lián)盟鏈介于私有鏈與公有鏈之間,是一種需要注冊許可的區(qū)塊鏈,僅限于聯(lián)盟中具有權(quán)限的成員參與賬本的讀寫,網(wǎng)絡(luò)中節(jié)點的角色及功能劃分需預(yù)先設(shè)定,且網(wǎng)絡(luò)中的共識、運維和接入均由預(yù)先設(shè)定的節(jié)點控制。一般來說,聯(lián)盟鏈適合于跨機(jī)構(gòu)的交易、結(jié)算、協(xié)同辦公及存證等B2B場景[5]。

  3 共識算法分析

  3.1主流的共識算法

  3.1.1 Paxos和Raft算法

  Paxos算法解決的問題是一個分布式系統(tǒng)如何就某個值(決議)達(dá)成一致,一種基于選舉領(lǐng)導(dǎo)者的共識機(jī)制。領(lǐng)導(dǎo)者狀態(tài)的共識節(jié)點擁有絕對權(quán)限,并允許強(qiáng)監(jiān)管節(jié)點參與,性能高,資源消耗低。所有節(jié)點一般有線下準(zhǔn)入機(jī)制,但選舉過程中不允許有作惡節(jié)點,不具備容錯性。

  由于Paxos難于理解,加上難以實現(xiàn),其簡化版本Raft應(yīng)運而生。Raft更注重協(xié)議的可理解性和落地性,其特點是任何時刻最多只有一個合法領(lǐng)導(dǎo)者,可容錯節(jié)點數(shù)為N/2-1。兩個共識機(jī)制面向應(yīng)用領(lǐng)域為數(shù)據(jù)庫,在個別節(jié)點宕機(jī)情況下確保數(shù)據(jù)一致[6]。

  3.1.2 工作量證明算法(PoW)

  工作量證明機(jī)制用來確認(rèn)某個節(jié)點做過一定量的工作,是一種應(yīng)對拒絕服務(wù)攻擊和其它服務(wù)濫用的經(jīng)濟(jì)對策。它要求發(fā)起者進(jìn)行一定量的運算,也就意味著需要消耗計算機(jī)一定的計算資源,該理論是1993年Cynthia Dwork和Moni Naor首次提出的[7]。

  3.1.3 股權(quán)證明(PoS)

  PoS主要思想是節(jié)點記賬權(quán)的獲得難度與節(jié)點持有的權(quán)益成反比,相對于PoW,一定程度減少了數(shù)學(xué)運算帶來的資源消耗,性能也得到了相應(yīng)的提升,但依然是基于哈希運算競爭獲取記賬權(quán)的方式,可監(jiān)管性弱,該共識機(jī)制容錯性和PoW相同[8]。

  3.1.4 授權(quán)股權(quán)證明(DPoS)

  DPoS是對PoS機(jī)制的一種改進(jìn),其原理是通過投票選出一定數(shù)量的代表獲取記賬的權(quán)力,每個代表按照時間表記賬,記賬結(jié)束后會獲取對應(yīng)的報酬。投票權(quán)重以投票人持Token比例為準(zhǔn),整個共識依賴于代幣機(jī)制[9]。

  3.1.5 權(quán)威證明(PoA)

  PoA算法初期形成可設(shè)定具有投票權(quán)或者簽名權(quán)的認(rèn)證節(jié)點,區(qū)塊鏈上的新發(fā)生交易需經(jīng)過認(rèn)證節(jié)點簽名后才能夠完成上鏈廣播,對于后期新加入的節(jié)點,認(rèn)證節(jié)點也可通過簽名投票來決定是否允許新節(jié)點的加入。PoA共識算法由于減少了共識達(dá)成的計算成本,可以極大地提升速率,但是由于其缺少對區(qū)塊驗證的步驟,所以一旦有惡意節(jié)點,往往在發(fā)生事故后才能察覺。

  3.1.6 實用拜占庭算法(PBFT)

  PBFT與Paxos類似,也是一種采用許可投票、少數(shù)服從多數(shù)來選舉領(lǐng)導(dǎo)者進(jìn)行記賬的共識機(jī)制。實用拜占庭算法允許強(qiáng)監(jiān)管節(jié)點參與,具備權(quán)限分級能力,性能更高,耗能更低。該算法每輪記賬都會由全網(wǎng)節(jié)點共同選舉領(lǐng)導(dǎo)者,允許33%的節(jié)點作惡[10]。

  3.2 共識算法性能對比

  在區(qū)塊鏈系統(tǒng)中,效率、安全和去中心化三方是無法都兼顧的。主流共識機(jī)制在這三方面都選擇不同程度側(cè)重,但側(cè)重的最終表現(xiàn)形式一般為TPS、成本、分叉、權(quán)限和拜占庭容錯這五個方面。各個共識機(jī)制特點對比如表1所示。

  Paxos、Raft和PoA算法主要面對節(jié)點宕機(jī)情況,而不考慮惡意節(jié)點篡改數(shù)據(jù),缺乏監(jiān)督無法解決拜占庭容錯問題,所以這些算法僅適合高信任度的情況;PoW雖然能應(yīng)對拜占庭容錯問題,但是耗時耗能;PoS與PoW相比在一定程度上減少能源消耗,但依然需要挖礦。DPoS共識需要依賴Token,而很多商業(yè)模式并不需要Token;PBFT雖然可以應(yīng)對惡意節(jié)點攻擊,但是其網(wǎng)絡(luò)結(jié)構(gòu)是靜態(tài)類型,如果動態(tài)增加節(jié)點,則必須重啟應(yīng)用,造成不必要的性能損失[11]。

  4 改進(jìn)型聯(lián)盟鏈共識算法

  4.1 目前聯(lián)盟鏈面臨的困境

  目前,針對聯(lián)盟鏈提出的共識算法非常少,已知聯(lián)盟鏈?zhǔn)褂玫墓沧R算法有以太坊測試網(wǎng)PoA共識機(jī)制和Hyperledger的排序算法。但由于參與聯(lián)盟鏈的節(jié)點都是信任節(jié)點,這些算法為了追求效率而放棄對區(qū)塊的驗證。但是,如果一個共識完全忽視對區(qū)塊的驗證,那區(qū)塊鏈應(yīng)用的場景將大幅度減少。即便是對信任要求極高的聯(lián)盟鏈,在理論上也存在出現(xiàn)惡意節(jié)點或者某節(jié)點被黑客操控的可能。

  所以在實際聯(lián)盟鏈系統(tǒng)設(shè)計中,為了保障信息安全,往往在應(yīng)用層增加多種加密措施。這樣做費時費力,為系統(tǒng)設(shè)計添加不必要的研發(fā)成本,也阻礙了區(qū)塊鏈服務(wù)實體的發(fā)展。

  4.2 改進(jìn)型共識流程

  鑒于目前聯(lián)盟鏈困境,本文為聯(lián)盟鏈提出一種高效、安全和低成本的共識機(jī)制,共識流程如圖2所示。

  在一切正常的情況下,該改進(jìn)型共識流程分為六步。

  (1)在創(chuàng)始區(qū)塊中指定一組初始授權(quán)的共識節(jié)點,在系統(tǒng)啟動后共識節(jié)點加入或移除需要通過投票表決。

 ?。?)當(dāng)系統(tǒng)啟動后,共識節(jié)點開始產(chǎn)生區(qū)塊并簽名廣播。通過優(yōu)先級算法保證每一個即將產(chǎn)生的區(qū)塊都有一個共識節(jié)點處于優(yōu)先狀況,該共識節(jié)點會優(yōu)先廣播區(qū)塊,其他共識節(jié)點必須經(jīng)過一段延遲才能廣播從而避免了系統(tǒng)分叉。再通過一定的算法確保一個共識節(jié)點不能連續(xù)地出塊。

  (3)共識節(jié)點只有打包和廣播的權(quán)力,但最終寫入?yún)^(qū)塊鏈賬本需要經(jīng)過驗證節(jié)點的驗證。驗證節(jié)點驗證該區(qū)塊是否合法,如果合法則寫入?yún)^(qū)塊鏈,否則發(fā)起移除負(fù)責(zé)該區(qū)塊的共識節(jié)點提案。

 ?。?)該提案通過廣播的方式傳給所有共識節(jié)點。所有共識節(jié)點對該提案進(jìn)行投票,如果發(fā)現(xiàn)該節(jié)點是惡意節(jié)點,則投贊成,否則投反對。若該提案有超過50%的共識節(jié)點表示贊同,則移除該節(jié)點,否則對驗證節(jié)點進(jìn)行檢查并且強(qiáng)制驗證節(jié)點阻止的區(qū)塊寫入?yún)^(qū)塊鏈賬本。

 ?。?)寫進(jìn)區(qū)塊鏈賬本的區(qū)塊除了驗證節(jié)點的簽名,也需要共識節(jié)點的簽名。如果區(qū)塊有投票通過的簽名,則直接寫入賬本。

 ?。?)新的共識節(jié)點的加入也通過驗證節(jié)點提案的方式,當(dāng)超過50%的共識節(jié)點表示贊同時,新的節(jié)點加入到共識節(jié)點中。

  4.3 改進(jìn)型共識設(shè)計

  4.3.1 區(qū)塊結(jié)構(gòu)設(shè)計

  在本文提出的共識機(jī)制里區(qū)塊結(jié)構(gòu)至少由幾個部分組成的:一些相關(guān)信息片段組成的集合稱為Header,即區(qū)塊頭;一個個交易Transaction組成Body,即區(qū)塊體,這部分占據(jù)區(qū)塊大小的主要部分;剩余部分為票數(shù)統(tǒng)計,這部分稱作Votes,區(qū)塊結(jié)構(gòu)如圖3所示。

 ?。?)區(qū)塊頭

  區(qū)塊的驗證主要通過驗證區(qū)塊頭的方式,是區(qū)塊中最重要的部分。區(qū)塊頭包含的參數(shù)信息涉及幾個方面。

  ParentHash:父區(qū)塊頭的Keccak256位哈希。

  StateRoot:所有交易被執(zhí)行完且區(qū)塊定稿后的狀態(tài)樹(State Trie)根節(jié)點的Keccak256位哈希。

  TransactionsRoot:由當(dāng)前區(qū)塊中所包含的所有交易所組成的樹結(jié)構(gòu)(Transaction Trie)根節(jié)點的Keccak256位哈希。

  ReceiptsRoot:由當(dāng)前區(qū)塊中所有交易的數(shù)據(jù)所組成的樹結(jié)構(gòu)(Receipt Trie)根節(jié)點的Keccak256位哈希。

  Priority:區(qū)塊優(yōu)先級,值為1或者2。同一個高度的區(qū)塊,只有一個共識節(jié)點為2,2的優(yōu)先級最高。

  Number:當(dāng)前區(qū)塊的祖先的數(shù)量,創(chuàng)世區(qū)塊里這個數(shù)值為0。

  ExtraData:存儲當(dāng)前共識節(jié)點集合的地址。

 ?。?)區(qū)塊體

  區(qū)塊體由各個交易組成,需要包含交易全部內(nèi)容,所占空間最大,系統(tǒng)區(qū)塊體結(jié)構(gòu)參數(shù)如下:

  From:交易發(fā)起人地址;

  To:交易接收人地址;

  Signature:交易發(fā)起人簽名;

  Value:交易內(nèi)容;

  Nonce:標(biāo)志唯一性。

  (3)Votes

  Votes部分負(fù)責(zé)記錄投票信息,在沒有惡意節(jié)點的情況下該部分為0,Votes包含的參數(shù)信息涉及幾個方面。

  From:投票人地址。

  Beneficiary:被提名為共識節(jié)點的節(jié)點地址,在正常情況下為0,僅在投票時修改。

  VoteHash:投票區(qū)塊哈希。

  HV:發(fā)起投票區(qū)塊的高度。

  VoteType:投票類型,加入或移除。

  Signature:投票簽名。

  4.3.2 區(qū)塊存儲

  本文的共識機(jī)制區(qū)塊和交易等數(shù)據(jù)選擇存儲在LevelDB數(shù)據(jù)庫中。LevelDB是Google開源的KV(Key Value,存儲的數(shù)據(jù)都是KV的形式)單機(jī)數(shù)據(jù)庫,即交易數(shù)據(jù)會以鍵值對方法存儲在LevelDB中。其中,Key一般與Hash相關(guān),Value一般是要存儲的數(shù)據(jù)結(jié)構(gòu)的RLP編碼,且區(qū)塊存儲時將區(qū)塊頭和區(qū)塊體分開存儲。對于區(qū)塊頭存儲格式中的Key由區(qū)塊頭前綴、區(qū)塊號(Uint64大端格式)、區(qū)塊Hash構(gòu)成,Value是區(qū)塊頭的RLP編碼。區(qū)塊體的存儲包括Key由區(qū)塊體前綴、區(qū)塊號(Uint64大端格式)、區(qū)塊Hash構(gòu)成,Value是區(qū)塊體的RLP編碼。Votes部分同理,三者通過Key值的前綴進(jìn)行區(qū)分,具體流程如圖4所示。

  對數(shù)據(jù)庫數(shù)據(jù)進(jìn)行讀寫及修改等操作時首先要初始化數(shù)據(jù)庫,同時配置數(shù)據(jù)庫基本參數(shù)如Open Files Cache Capacity、Block Cache Capacity、Write Buffer、Filter等,其意義分別是打開文件數(shù)(默認(rèn)1024)、區(qū)塊緩存容量(默認(rèn)384MB)、Memtable容量(默認(rèn)192MB)、Level文件哈希數(shù)(默認(rèn)10次)。此外,LevelDB在數(shù)據(jù)寫入時先將數(shù)據(jù)寫入Batch后再寫入LevelDB,這樣做的好處是減少數(shù)據(jù)的交互次數(shù),提高數(shù)據(jù)存儲效率。

  4.3.3 區(qū)塊驗證

  驗證節(jié)點在驗證新的區(qū)塊時,僅驗證其區(qū)塊頭。節(jié)點會從區(qū)塊頭的Extra Data字段中取出認(rèn)證節(jié)點的簽名,利用標(biāo)準(zhǔn)的spec256k1橢圓曲線進(jìn)行反解公鑰信息,并且從公鑰中截取出簽發(fā)節(jié)點的地址,若該節(jié)點是共識節(jié)點,且該節(jié)點本輪擁有簽名的權(quán)限,則認(rèn)為該區(qū)塊為合法區(qū)塊。此外,驗證節(jié)點自己也會搜集這段時間的交易,通過驗證Merkle樹的方式確保區(qū)塊內(nèi)容正確,如果沒有錯誤,將區(qū)塊打入?yún)^(qū)塊鏈賬本。

  5 結(jié)束語

  聯(lián)盟鏈在未來有很強(qiáng)的應(yīng)用場景,但是目前缺少專門針對聯(lián)盟鏈的共識機(jī)制。本文總結(jié)對比目前主流共識機(jī)制的不足,基于聯(lián)盟鏈的特點和要求提出一種改進(jìn)型共識機(jī)制。新的共識機(jī)制將驗證與打包區(qū)塊功能分開,提高效率的同時又確保了系統(tǒng)能夠及時發(fā)現(xiàn)錯誤。

  共識機(jī)制作為區(qū)塊鏈應(yīng)用最核心和關(guān)鍵的組成部分,目前已經(jīng)成為區(qū)塊鏈技術(shù)發(fā)展的瓶頸[12]。由于應(yīng)用場景的多種多樣,各個共識機(jī)制無法面面俱到。本文提出的共識也僅適用在信任度較高的情況,未來區(qū)塊鏈如何結(jié)合實體經(jīng)濟(jì)仍然值得大家的關(guān)注。

  參考文獻(xiàn)

  [1] 徐治理,封化民,劉飚.一種基于信用的改進(jìn)PBFT高效的共識機(jī)制[J].計算機(jī)應(yīng)用研究, 2019,36(10).

  [2] 李劍峰.基于拜占庭容錯機(jī)制的區(qū)塊鏈共識算法研究與應(yīng)用[D].鄭州大學(xué), 2018.

  [3] Nguyen QK. Blockchain – A Financial Technology for Future Sustainable Development[C].International Conference on Green Technology and Sustainable Development.IEEE,2016.51-54.

  [4] 袁勇,王躍飛.區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望[J].自動化學(xué)報,2016,42(4):481-494.

  [5] 王朔.區(qū)塊鏈技術(shù)在金融領(lǐng)域的研究現(xiàn)狀及創(chuàng)新趨勢[J].上海金融,2016(2):26-29.

  [6] 李哲.基于區(qū)塊鏈的電子發(fā)票云平臺構(gòu)建研究[D].中國財政科學(xué)研究院,2018.

  [7] 鄒均.區(qū)塊鏈技術(shù)指南[M].北京:機(jī)械工業(yè)出版社,2016:69-78.

  [8] 陳何清.基于區(qū)塊鏈的IMIX傳輸系統(tǒng)的設(shè)計與實現(xiàn)[D].南京大學(xué),2016.

  [9] WOOD G. Ethereum: A secure decentralized generalized transaction ledger[EB/OL].Ethereum Project Yellow Paper,2014,[2017-06-07].http://gavwood.com/paper.pdf

  [10] 梅晨.基于區(qū)塊鏈的物聯(lián)網(wǎng)安全平臺的設(shè)計與實現(xiàn)[D].北京郵電大學(xué),2018.

  [11] 楊茜.基于區(qū)塊鏈的智能合約研究與實現(xiàn)[D].西南科技大學(xué),2018.

  [12] 范捷,易樂天,舒繼武.拜占庭技術(shù)研究綜述[J].軟件學(xué)報,2013,6:012.

  作者簡介:

  曹兆磊(1995-),男,漢族,江蘇鹽城人,南京郵電大學(xué),學(xué)士,工程師;主要研究方向和關(guān)注領(lǐng)域:區(qū)塊鏈系統(tǒng)方案設(shè)計與測試。

關(guān)注讀覽天下微信, 100萬篇深度好文, 等你來看……