區塊鏈簡介
區塊鏈簡介
區塊鏈的概念
區塊鏈的發展歷史
區塊鏈的特點
區塊鏈的結構
區塊鏈的應用
參考文獻
區塊鏈簡介
區塊鏈(blockchain)作為比特幣的底層技術受到了越來越多的關注,其去中心化的分散式資料庫儲存結構有著廣闊的應用場景。本文從一下五個方面介紹一下區塊鏈技術:
區塊鏈的概念
區塊鏈的發展歷史
區塊鏈的特點
區塊鏈的結構
區塊鏈的應用
1. 區塊鏈的概念
狹義上講,區塊鏈是一種按照時間順序將資料區塊以鏈條的方式組合成特定資料結構,並以密碼學的方式保證其不可篡改、不可偽造的去中心化共享總賬(Decentralized Shared Ledger),能夠安全儲存簡單的、有先後關係、 能在系統內驗證的資料。[1]
簡單的講,區塊鏈就是一個去中心化的分散式資料庫,分散式環境中的每一個節點都不能保證可信。資料庫中儲存的是以時間先後順序排列的資料區塊,每一個區塊中儲存的是若干條交易記錄,運用密碼學的方法生成區塊以保證其中資料不可篡改、不可偽造、可以驗證;以共識演算法使全網所有節點(理論上是所有節點)完成對區塊的認可。
廣義上講,區塊鏈技術是利用加密鏈式區塊結構來驗證和儲存資料、利用分散式節點共識演算法來生成和更新資料、利用自動化指令碼程式碼(智慧合約)來程式設計和運算元據的一種全新的去中心化基礎架構和分散式計算正規化。[2]
2. 區塊鏈的發展歷史
區塊鏈技術脫胎於比特幣,在中本聰2008年發表的《比特幣:一種點對點的電子現金系統中》一文中,區塊(Block)和鏈(Chain)作為比特幣系統的核心技術被提出來。區塊鏈發展至今可分為3個階段[3]:
第一階段:區塊鏈1.0 —— 數字貨幣
最具有代表意義的就是比特幣了,其以區塊鏈作為底層技術,是區塊倆最初始的應用。
第二階段:區塊鏈2.0 —— 數字資產和智慧合約
代表產品有2014年7月的Ethereum(以太坊),其將智慧合約理念推進到了極致,還有2015年3月的Factom(公正通)以及國內的太一系統等。
第三階段:區塊鏈3.0 —— DAO、DAC → 區塊鏈大社會
DAO、DAC指區塊鏈自治組織、區塊鏈自治公司。這一階段是區塊鏈技術廣泛應用於人們生活和生產的各個方面,區塊鏈被人們廣泛接受,比如區塊鏈應用於能源網際網路的能源區塊鏈,區塊鏈應用於醫療事業的醫療區塊鏈等等
3. 區塊鏈的特點
1. 去中心化
區塊鏈是一種分散式資料儲存結構,沒有中心節點,所有節點都儲存全部的相同的區塊資訊,完全實現去中心化。對於特殊的應用場景,可以適當地採用弱中心化的管理節點,即中心節點不影響整個區塊鏈結構的執行,比如弱中心化的監管機制;若從安全形度來說,弱中心化結構中的中心節點要滿足對於區塊鏈的安全不構成威脅,對使用者隱私不構成威脅等。
2. 不可篡改性
一方面,區塊鏈中儲存的交易資訊每一條都有相對應的Hash值,由每一條記錄的Hash值作為葉子節點生成二叉Merkle樹,Merkle樹的根節點(Hash值)儲存在本區塊的塊頭部分,區塊頭部除了當前區塊的Merkle樹的根節點,還要儲存時間戳以及前一個區塊的識別符號(Hash指標)形成一條鏈式結構。因此,要想篡改區塊鏈中的一條記錄,不僅要修改本區塊的Hash值,還要修改後續所有區塊的Hash值,或者生成一條新的區塊鏈結構,使得新的鏈比原來的鏈更長。實際上,這是很難實現的。一般,一個區塊後面有6個新的區塊生成時,即可認為該區塊不可篡改,可以將該區塊加入到區塊鏈的結構中了。
3. 不可偽造性
區塊鏈儲存的交易資料中不僅含有Hash值,還有交易雙方的簽名以及驗證方的簽名。簽名具有不可偽造性,因此具有不可偽造性。
4. 可驗證性
可驗證性指的是資料來源的可驗證。每一筆交易中電子貨幣的產生和輸入、輸出都是可以驗證的。區塊鏈結構中不會憑空增加電子貨幣。以比特幣為例,每一筆交易的輸入都是前一筆交易的輸出,每一筆交易的輸出又是下一筆交易的輸入,即交易的可追溯性。除了來源的可驗證外,還有交易金額的可驗證,即驗證金額的正確性,確保交易過程中的每一筆資金都是可靠的。目前,為了保證使用者的隱私,很多電子貨幣通過混幣、環簽名、零知識證明等技術在資料可驗證的情況下,儘可能地切斷金額的可追溯性。
5. 匿名性
區塊鏈中的匿名性實際上是一種偽匿名性。區塊鏈中使用假名技術來切斷賬號和真實身份的聯絡。比如,對使用者公鑰進行一系列的Hash運算,得到的固定長度的Hash值作為對應的電子賬號。實際上,隨著使用次數的增加,通過資料分析可以分析出賬號的很多交易行為,比如經常和那些賬號做交易,交易金額多少等,甚至可以和現實中的真實身份相聯絡。
4. 區塊鏈的結構
(1) 層次結構
比特幣系統將區塊鏈分成6層結構:資料層、網路層、共識層、合約層、激勵層、應用層。其架構圖如下:
區塊鏈6層架構圖
文獻[4] 中將區塊鏈分成3層:網路層、交易層、應用層。架構圖如下:
區塊鏈3層架構圖
文獻[5] 中的北航鏈將區塊鏈分成6層:儲存層、基礎區塊鏈層、快取層、API層、鏈上程式碼層、應用層。其架構圖如下:
區塊鏈6層架構圖
(2) 資料結構
區塊鏈中的資料結構根據不同的應用會有所不同,但基本上都是由區塊頭(塊頭)和區塊體(塊身)組成。區塊體儲存的是若干條記錄以及由每條記錄的Hash值構成的二叉Merkle樹。區塊頭一般包括版本號、前一區塊的Hash值(Hash指標)、隨機數、目標Hash(本區塊的Hash值)、Merkle根,有時還會有用於PoW的計算困難門限值Difficulty等。根據不同的應用,塊頭和塊身的資料項也會有所不同。根據需求,可以建立單鏈結果,還可以建立雙鏈結構。下面是一個單鏈結構的簡單的區塊資料結構圖[3]:
資料結構
5. 區塊鏈的應用
區塊鏈由於其結構特點有著廣闊的應用前景。最早,區塊鏈作為比特幣的核心技術被提出來。隨著區塊鏈的發展,尤其是與智慧合約的結合,區塊鏈技術的應用早已不再僅僅侷限於數字貨幣等金融領域。
區塊鏈除了應用於金融領域(如Bitcoin, Monero, Zcash)外,還可以應用於能源網際網路(能源區塊鏈)、醫療事業(醫療區塊鏈)、學術界學術記錄、供應鏈管理、共享單車、雲端儲存等。
相關文章
- 區塊鏈-技術簡介區塊鏈
- 區塊鏈技術簡介區塊鏈
- 區塊鏈知識,區塊鏈簡史區塊鏈
- 區塊鏈入門 -- 02 區塊鏈介紹區塊鏈
- 區塊鏈——以太坊、智慧合約簡介區塊鏈
- 什麼是區塊鏈,簡單瞭解區塊鏈區塊鏈
- 區塊鏈2.0架構:以太坊區塊鏈的介紹區塊鏈架構
- 區塊鏈及虛擬幣的發展簡介區塊鏈
- 簡單說區塊鏈區塊鏈
- 區塊鏈 2.0:介紹(一)區塊鏈
- 區塊鏈上程式設計:DApp 開發簡介區塊鏈程式設計APP
- 區塊鏈組織-超級賬本(Hyperledger)的簡介區塊鏈
- 區塊鏈教程、區塊鏈指南、區塊鏈中文手冊、區塊鏈原理區塊鏈
- 區塊鏈商城系統介紹區塊鏈
- 區塊鏈公鏈開發,區塊鏈應用場景解決方案介紹區塊鏈
- 簡單的區塊鏈開發入門:Hyperledger Iroha介紹區塊鏈
- 一個簡單的區塊鏈區塊鏈
- 宗譜鏈介紹,區塊鏈宗譜鏈優勢區塊鏈
- 區塊鏈 2.0:Hyperledger Fabric 介紹(十)區塊鏈
- 區塊鏈入門知識介紹!區塊鏈
- 最全區塊鏈寵物遊戲玩法介紹!區塊鏈遊戲
- 區塊鏈100講:區塊鏈為什麼叫“區塊”“鏈”?區塊鏈
- 區塊鏈系列1-區塊鏈概述區塊鏈
- NodeJS實現簡易區塊鏈NodeJS區塊鏈
- 區塊鏈區塊鏈
- 區塊鏈溯源系統開發介紹區塊鏈
- 區塊鏈開發_建立區塊鏈公鏈,聯盟鏈,私有鏈區塊鏈
- 區塊鏈 2.0:房地產區塊鏈(四)區塊鏈
- 1.3 初識區塊鏈:區塊鏈分類區塊鏈
- 區塊鏈以及區塊鏈技術總結區塊鏈
- 從區塊鏈公司角度,分析區塊鏈錢包區塊鏈
- “區塊”和“鏈”的火花,區塊鏈到底為何物區塊鏈
- 區塊鏈大火?區塊鏈究竟是什麼?區塊鏈
- 區塊鏈安全————區塊鏈技術安全討論區塊鏈
- 關於/區塊鏈系統開發|(成熟技術)/區塊鏈系統開發介紹方案區塊鏈
- 區塊鏈原理區塊鏈
- 區塊鏈特徵與區塊鏈技術應用落地區塊鏈特徵
- 區塊鏈公司談區塊鏈技術最新應用區塊鏈