區塊鏈簡介

kobejayandy發表於2018-10-29

    區塊鏈簡介
        區塊鏈的概念
        區塊鏈的發展歷史
        區塊鏈的特點
        區塊鏈的結構
        區塊鏈的應用
        參考文獻

區塊鏈簡介

區塊鏈(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)外,還可以應用於能源網際網路(能源區塊鏈)、醫療事業(醫療區塊鏈)、學術界學術記錄、供應鏈管理、共享單車、雲端儲存等。

 

相關文章