學術咨詢服務,正當時......期刊天空網是可靠的職稱工作業績成果學術咨詢服務平臺!!!

區塊鏈技術概覽

發布時間:2020-01-13所屬分類:計算機職稱論文瀏覽:1

摘 要: 摘要:區塊鏈技術是多種技術融合再創新的結果。隨著各界區塊鏈的關注度居高不下,區塊鏈技術也成為熱點。由于涉及到的技術多而復雜,區塊鏈技術的門檻一直比較高,不利于區塊鏈技術的傳播和普及,也造成了一定的行業亂象。本文結合主流開源區塊鏈項目,對區

  摘要:區塊鏈技術是多種技術融合再創新的結果。隨著各界區塊鏈的關注度居高不下,區塊鏈技術也成為熱點。由于涉及到的技術多而復雜,區塊鏈技術的門檻一直比較高,不利于區塊鏈技術的傳播和普及,也造成了一定的行業亂象。本文結合主流開源區塊鏈項目,對區塊鏈涉及的賬本結構、共識機制、證書機制、P2P協議等多種技術進行了總結歸納,并對區塊鏈特征的產生從技術視角進行了剖析,旨在闡明區塊鏈技術的本質,厘清區塊鏈技術的邏輯,促進區塊鏈技術的落地。本文研究結果對區塊鏈從業者和區塊鏈技術深入學習有參考價值。

區塊鏈技術概覽

  關鍵字:區塊鏈;點對點網絡;共識算法;塊鏈式結構;密碼學

  1 引言

  2009年,中本聰發表《比特幣:一種點對點的電子現金系統》,開創了區塊鏈技術的先河。在10年中,以太坊、超級賬本、R3corda等區塊鏈技術紛紛興起,引發了巨大的社會關注,聚集了大量的資本和先進技術。區塊鏈被稱為“創建信任的機器”、“新一代互聯網基礎設施”、“顛覆性技術”。區塊鏈快速發展的過程中,社會對區塊鏈技術的認識依然不到位。區塊鏈技術是如何創造信任機制的?區塊鏈可以看作可信的分布式數據庫,用P2P網絡通信機制、塊鏈式賬本存儲機制、密碼機制、共識機制4大核心機制,保證了系統的分布式特性、不可篡改特性、不可抵賴特性,使區塊鏈系統“誠實”而“透明”,在應用中具有大范圍、跨主體、高效率、低成本的特點。

  由此可知,區塊鏈技術是多種技術融合再創新的結果,本文就區塊鏈系統涉及到的技術進行闡述,并說明這些技術在區塊鏈中是如何應用的,以及達到的效果。

  2 區塊鏈技術概述

  區塊鏈是多種技術融合再創新的成果,其技術包括:P2P組網技術、塊鏈式賬本結構、共識機制、數字簽名、加密機制、隱私保護機制等,這些技術各司其職,形成了區塊鏈系統的分布式數據庫、多方協作、公開透明、不可篡改、不可抵賴等特性。

  ●P2P 組網是區塊鏈系統啟動的第一步,是區塊鏈的通信基礎。區塊鏈運行在P2P網絡上,是區塊鏈 “分布式”特性的來源。

  ●賬本結構是區塊鏈的核心,塊鏈式的賬本結構是區塊鏈“不可篡改”特性的來源。

  ●共識機制是區塊鏈的靈魂,通過算法協調系統各參與方,最終達成一致,是區塊鏈系統“多方協作”特性的來源。

  ●簽名機制是區塊鏈的通行證,通過數字簽名算法給系統各參與方分派數字證書,是區塊鏈系統“不可抵賴”特性的來源。

  ●隱私機制是區塊鏈實現私有信息保護和內容公開的途徑,通過加密算法加密當事人身份,匿名參與系統,內容公開的同時隱藏當事人身份,保障參與方隱私,是區塊鏈系統“公開透明”特性的來源。

  3 組網方式—P2P協議

  對等網絡(Peer-to-Peer,P2P)被認為是代表無線寬帶互聯網未來的關鍵技術,其具有3大特征:自治性,相比中央服務器而言;分布性,利用網絡邊緣的資源,如存儲/計算能力和信息資源;動態性,網絡邊緣的資源處在動態的變化中,不斷有新的資源加入和已有的資源退出。P2P 因為節點信息存儲與搜索方式的不同,分為結構化覆蓋網絡和非結構化覆蓋網絡兩類。在分布式網絡中,目前沒有完美的解決方案,二者各有側重。

  (1)Bitcoin—— 非 結 構 化 的 P2P 覆 蓋 網 絡(Non-Structured P2POverlay Network)

  在非結構化的覆蓋網絡中,每個節點存儲自身的信息或索引。當某節點用戶在 P2P 系統中進行查詢時,該節點沒有其他節點的信息和知識。例如最簡單的泛洪式查找(類似于廣播)和擴展環查找(從最近的n 個節點開始,層層轉發直到找到目標或超出了跳數的上限為止)。

  在非結構化P2P系統中,實現結構簡單、無中心、節點之間完全平等、網絡層次單一、節點之間無需維護拓撲信息,同時搜索算法帶有一定的盲目性。

  Bitcoin采用的通信協議Gossip協議就是非結構化的覆蓋網絡,完全基于 TCP 協議構建,主網端口為 8333。

  (2)Ethereum——結構化的 P2P 覆蓋網絡(Structured P2POverlay Network)

  在結構化P2P系統中,每個節點只存儲特定的信息或特定信息的索引。當用戶需要在P2P系統中獲取信息時,他們必須知道這些信息(或索引)可能存在于哪些節點中。由于用戶預先知道應該搜索哪些節點,避免了非結構化P2P系統中使用的泛洪式查找,因此提高了信息搜索的效率。

  以太坊采用的通信協議是Kademlia協議,這是一種結構化P2P網絡,提供UDP和TCP兩種通信方式,節點發現是基于 UDP 的,節點的數據交換是基于 TCP 的。主網TCP端口為30303,推薦UDP端口30301。

  4 賬本結構

  區塊鏈系統的賬本以區塊鏈為單位,以特定算法獲取上一區塊鏈的特征嵌入下一個區塊,連綴成鏈。區塊鏈的名稱即來源于此。區塊鏈的賬本結構是區塊鏈系統最大的創新點,涉及到哈希算法、默克爾證明等技術。

  (1)哈希函數(Hash Function)

  哈希函數也叫散列函數、摘要函數,是一個把任意長度的數據映射成固定長度數據的函數。任何一種能將任意大小數據映射為固定大小數據的函數,都能被稱為散列函數。哈希函數的返回值被稱為哈希,也被稱為散列值、摘要。

  哈希函數有如下特性:一是消息的長度不受限制。二是確定性:對于相同的輸入,使用同一哈希函數,它始終生成相同的哈希值,如果兩個哈希值是不相同的,那么這兩個哈希值的原始輸入也是不相同的。雖然對于不同的輸入可能會哈希成相同的輸出(哈希碰撞),但是哈希碰撞的概率可以非常小,所以一般從哈希值來確定唯一的輸入值。三是均勻性:良好的哈希函數應該輸入盡可能均勻的映射到輸出范圍上。四是單向性:在加密應用程序中,哈希函數實際上是不可逆的,為加密和驗證信息完整性而設計的哈希函數(又被稱為單向散哈希函數或者消息摘要函數),對于給定的哈希值,沒有有效方法可以反向計算出原始輸入,因此很難偽造(見圖1)。

  (2)默克爾證明(Merkel Proof)

  ●Bitcoin的默克爾證明

  Merkle Proof最早的應用是Bitcoin,它是由中本聰在 2009 年描述并創建的。Bitcoin 的 Blockchain 利用 Merkle proofs來存儲每個區塊的交易。而這樣做的好處是中本聰描述到的“簡化支付驗證”(Simplified Payment Verification,SPV)的概念:一個“輕客戶端” (Light Client)可以僅下載鏈的區塊頭即每個區塊中的 80字節的數據塊,僅包含5個元素(上一區塊頭的哈希值,時間戳,挖礦難度值,工作量證明隨機數nonce,包含該區塊交易的MerkleTree的根哈希),而不是下載每一筆交易以及每一個區塊。

  如果客戶端想要確認一個交易的狀態,它只需簡單地發起一個Merkle Proof請求,這個請求顯示出這個特定的交易在Merkle Trees之中,而且這個Merkle Tree 的樹根在主鏈的一個區塊頭中。

  一個比特幣輕客戶端中至少會有一個節點會通知你關于你的地址中任何特定的交易支出。然而一筆交易的確切性質(Precise Nature)可以取決于此前的幾筆交易,而這些交易本身又依賴于更為前面的交易,所以最終必須驗證整個鏈上的每一筆交易。為了解決這個問題,Ethereum的MerkleTree概念會更進一步。

  ●Ethereum的默克爾證明

  每個以太坊區塊頭不是包括一個Merkle Root,而是為 3 種對象設計的 3 棵樹:交易(Transaction)、收據(Receipts)和狀態(State)。

  對于驗證屬于列表格式的信息而言,二叉Merkle Tree是非常好的數據結構。對于交易樹來說二叉樹也是可行的。但是,對于狀態樹情況會更復雜些。以太坊中的狀態樹基本上包含了一個鍵值映射,其中的鍵是地址,而值包括賬戶的聲明、余額、隨機數 Nounce、代碼以及每一個賬戶的存儲。不同于交易歷史記錄,狀態樹需要經常地進行更新:賬戶余額和賬戶的隨機數Nonce經常會更變,更重要的是,新的賬戶會頻繁地插入,存儲的鍵(Key)也會經常被插入以及刪除。我們需要這樣的數據結構,它能在一次插入、更新、刪除操作后快速計算到樹根,而不需要重新計算整個樹的 Hash。Ethereum所使用的MerkleTree稱之為“默克爾· 帕特里夏樹”(Merkle PatriciaTree),這種數據結構有兩個非常好的特征:一是樹的深度是有限制的,即使考慮攻擊者會故意地制造一些交易,使得這顆樹盡可能地深。不然,攻擊者可以通過操縱樹的深度,執行拒絕服務攻擊(DDoSAttack),使得更新變得極其緩慢。二是樹的根只取決于數據,和其中的更新順序無關。換個順序進行更新,甚至重新從頭計算樹,并不會改變根。

  5 共識機制

  共識機制本質上是控制參與方的數據一致性。

  (1)權益類共識

  拼算力共識 PoW(Proof of Work)在區塊中遞增一個 Nonce 值,并針對每次的 Nonce 計算整個區塊的哈希值,直到找到一個哈希值,該值滿足所要求的零比特位數量,該節點獲得打包權限,所有節點同步該節點打出的區塊。在這種算法中,沒有比遍歷更快的方法找到符合要求的哈希值,因此,遍歷速度是獲得符合哈希值的重要參數,可以用簡單運算硬件加速,如GPU或其他專用芯片。此算法有一定的偶然性,算力高的節點獲得打包權的幾率上升,但并不是一定獲得打包權。這種共識機制去中心化程度較高,安全性較強,但資源消耗大,需要代筆作為激勵機制維持系統健康運行。

  相關知識推薦:區塊鏈技術論文容易成功發表嗎

  區塊鏈是目前很受歡迎的一項技術,它本質上是一個共享數據庫,應用于各個行業。隨著對區塊邊技術的研究不斷深入,區塊鏈技術方面的論文也越來越多。那區塊鏈技術論文怎么發表?容易成功發表嗎?本文我們一起來看看。

  拼權益共識 PoS(Proof of Stake)、DPoS(Delegates Proof of Stake)以抵押資產的多少來分配獲取打包權的概率,這在一定程度上縮短了共識達成的時間,不再需要大量消耗能源去競爭記賬。這種共識去中心程度較弱,有可能出現寡頭優勢,安全性相比 PoW 較弱。同時 DPoS 節點代理是人為選出的,公平性相比 PoS更低。

  (2)拜占庭類共識

  ●拜占庭問題(Byzantine Question)

  拜占庭問題是當一群參與方中,有不超過一定數目的惡意方發送欺騙消息時,參與方總體能通過三輪投票,做出正確的決定。拜占庭問題能容忍不高于參與方總數1/3的惡意方。

  ●拜占庭共識(Practical Byzantine Fault Tolerance, PBFT)

  PBFT是一種基于消息傳遞的一致性算法。該算法經過 3 個階段:預準備(Pre-prepare)、準備(Prepare)和確認(Commit)達成一致性,以計算為基礎,也無需代幣獎勵。由鏈上所有人參與投票,少于(N-1)/3個節點反對時就獲得公示信息的權利。拜占庭共識算法的可靠性有嚴格的數學證明,具備(N-1)/3容錯性。當有 1/3或以上記賬人停止工作后,系統將無法提供服務,此外拜占庭共識經過三個階段的投票,對通信資源消耗較大,隨著節點規模擴增,通信量指數級增加。

  ●分布式數據一致性共識

  這類共識機制在聯盟鏈應用廣泛,采用分布式數據庫的一致性算法,在信任環境中使用RAFT或Kafka 來控制區塊鏈參與方的數據一致性。

  這類共識機制無分叉可能、無交叉驗證、通訊量小,但是僅能運行在可信環境中,對關聯交易支持有限,區塊鏈特性較弱。

  6 證書機制

  (1)數字簽名

  區塊鏈系統使用數字簽名機制來實現不可篡改、不可抵賴的重要特征。在區塊鏈系統種,除了保證數據內容的完整性之外,還需要確保數據來源的可認證性(身份識別)和數據發送行為的不可否認性(防止抵賴行為)。

  任何一個公鑰密碼體系都可以單獨作為一種數字簽名方案使用,流程如下:發送方使用私鑰對消息原文做簽名(加密)處理,生成出消息原文的“數字簽名”,然后將消息原文連同它的數字簽名(即加密后的消息密文)一起發送給接收方。然后接收方使用公鑰對接收到的消息密文做解密處理,并將公鑰解密后的消息與原來的消息進行比較。

  如果需要對所有信息原文進行加密操作,效率是非常低的。常用的數字簽名算法可以看做是一種帶有密鑰的消息摘要算法,并且這種密鑰包含了公鑰和私鑰,也就是說,數字簽名算法是非對稱加密算法和消息摘要算法的結合體。幾乎所有的數字簽名方法都要和快速高效的哈希算法搭配,才能成為有效的數字簽名方案。

  (2)數字身份和認證

  系統參與方的數字身份通過數字證書來管理,數字證書(DigitalCertificate)是經認證中心授權頒發并經認證中心數字簽名的包含公開秘鑰擁有者及公開秘鑰相關信息的電子文件,可以用來判別數字證書擁有者身份。

  數字證書包含:公鑰、證書名稱信息、簽發機構對證書的數字簽名以及匹配的私鑰。證書可以存儲在網絡中的數據庫中,用戶可以利用網絡彼此交換證書,當證書失效后,簽發此證書的認證中心仍存檔此證書的副本。認證中心(CertificateAuthority)一般是一個公認可信的第三方機構,其作用主要是為每個用戶頒發一個獨一無二的包含名稱和公鑰的數字證書。

  7 加密機制加密簡單而言就是通過一種算法手段將對原始信息進行轉換,信息的接收者能夠通過秘鑰對密文進行解密從而得到原文的過程。按照加密方和解密方秘鑰相同與否可以將加密算法大致分為3種類型。(1)對稱加密對稱加密的加密解密方使用相同的秘鑰,這種方式的好處在于加解密的速度快但是秘鑰的安全分發比較困難。(2)非對稱加密非對稱加密體系也稱為公鑰體系,加解密時加密方擁有公鑰和私鑰,加密方可以將公鑰發送給其他相關方,私鑰嚴格自己保留。例如銀行的頒發給個人用戶的私鑰就存儲在個人的U盾里;非對稱加密可以通過私鑰加密,他人能夠使用公鑰進行解密,反之亦然;非對稱加密算法一般比較復雜執行時間相對對稱加密較長;好處在于無秘鑰分發問題。常見的非對稱加密算法有 RSA、ECC,區塊鏈中主要使用 ECC 橢圓曲線算法。(3)對稱加密與非對稱加密的結合這種方式將加密過程分為兩個階段,階段一使用非對稱加密進行秘鑰的分發使得對方安全地得到對稱加密的秘鑰,階段二使用對稱加密對原文進行加解密(見表1)。

2023最新分區查詢入口

SCISSCIAHCI

7799精品视频