區塊鏈學習之核心技術概覽(二)

定義與原理

定義

維基上給出定義: 一種分佈式數據庫技術,經過維護數據塊的鏈式結構,能夠維持增加的、不可篡改的數據記錄算法

基本原理

區塊鏈包括三個概念:數據庫

  • 交易: 一次對帳本的操做,致使帳本狀態的一次改變,如添加一條轉帳記錄
  • 區塊: 記錄一段時間內發生的全部交易和狀態結果,是對當前帳本狀態的一次共識
  • 鏈: 由區塊按照發生順序串聯而成,是整個帳本狀態變化的日誌記錄

以比特幣爲例理解區塊鏈工做過程

首先比特幣客戶端發起一項交易,廣播到比特幣網絡中並等待確認。網絡中的節點會將一些收到的等待確認的交易記錄打包在一塊兒(此外還要包括錢已給區塊頭部的哈希值等信息),組成一個候選區塊。而後,試圖找到一個nonce串(隨機串)放到區塊裏,使得候選區塊的哈希結果知足必定條件(好比小於某個值)。這個nonce串的查找須要必定的時間去進行計算嘗試。一旦節點算出來知足條件的nonce串,這個區塊在格式上就被認爲是'合法'了,就能夠嘗試在網絡中將它廣播出去。其餘節點收到候選區塊,進行驗證,發現確實符合約定條件了,就認可這個區塊是一個合法的新區塊,並添加到本身維護的區塊鏈上。當大部分節點都將區塊添加到本身維護的區塊鏈結構上時,該區塊被網絡接受,區塊中包括的交易也就獲得確認。安全

關鍵步驟:網絡

  • 完成對一批交易的共識
  • 新區塊添加到區塊鏈結構上,被你們承認,確保將來沒法被篡改

比特幣的這種基於算力尋找nonce串的共識機制稱爲工做量證實(PoW )。目前,要讓哈希結果知足必定條件,只能進行嘗試的暴力計算,嘗試的次數越多(工做量越大),算出來的機率就越大。分佈式

技術的演化與分類

區塊鏈的演化

比特幣區塊鏈已經支持了簡單的腳本計算,但僅限於數字貨幣相關的處理。除了支持數字貨幣外,還能夠將區塊鏈上執行的處理過程意義不泛華,即提供智能合約。智能合約能夠提供除了貨幣交易功能外更加靈活的合約功能,執行更爲複雜的操做。性能

從計算特色上,能夠看到現有區塊鏈技術的三種典型演化場景:區塊鏈

clipboard.png

區塊鏈與分佈式記帳

跟傳統的記帳技術相比,基於區塊鏈的分佈式帳本應該包括以下特色:spa

  • 維護一條不斷增加的鏈,只可能添加記錄,而發生過的記錄都不可篡改
  • 去中心化,或者說多中心化,無需集中控制而能達成共識,實現上儘量採用分佈式
  • 經過密碼學的機制來確保交易沒法被抵賴和破壞,並儘可能保護用於信息和記錄的隱私性

分類

根據參與者的不一樣,能夠分爲公開鏈、聯盟鏈、私有鏈:日誌

  • 公有鏈: 任何人均可以參與使用和維護,好比比特幣區塊鏈,信息是徹底公開的。若是進一步引入許可機制,能夠實現私有鏈和聯盟鏈兩種類型
  • 私有鏈: 由集中管理者進行管理限制,只有內部少數人可使用,信息不公開
  • 聯盟鏈: 介於二者之間,由若干組織一塊兒合做維護一條區塊鏈,該區塊鏈的使用須是帶有權限的限制訪問,相關信息會獲得保護,如供應鏈機構或銀行聯盟。

根據使用目的和場景的不一樣,又能夠分爲以數字貨幣爲目的的貨幣鏈,以記錄產權爲目的的產權鏈,以衆籌爲目的的衆籌鏈,也有不侷限特定應用場景的通用鏈。ip

關鍵問題和挑戰

抗抵賴與隱私保護

  • 怎麼防止交易記錄被篡改?
  • 怎麼證實交易雙方的身份?
  • 怎麼保護交易雙方的隱私?

密碼學的發展爲解決這些問題提供了很多手段。

分佈式共識

共識問題的核心指標將包括容錯的節點比例、決策收斂速度、出錯後的恢復、動態特性等。PoW等基於機率的系列算法理論上容許少於一半的不合做節點,PBFT等肯定性算法理論上則容許不超過1/3的不合做幾點。

交易性能

區塊鏈系統和傳統分佈式系統不一樣,其處理性能很難經過單純增長節點數來進行橫向擴展。實際上,傳統區塊鏈系統的性能,在很大程度上取決於單個節點的處理能力。高性能、安全、穩定性、硬件輔助加解密能力,都將是考察節點性能的核心要素。

擴展性

常見的分佈式系統能夠經過增長節點來橫向擴展整個系統的處理能力。對於區塊鏈網絡系統來講,根據共識機制的不一樣,並無那麼簡單。

安全防禦

世界上沒有絕對安全的系統

數據庫和存儲系統

集成和運營

基於區塊鏈的新業務系統必將與已有的中心化系統集成共存

趨勢與展望

區塊鏈技術的進一步發展,將會使區塊鏈技術大放異彩

認識上的誤區

  • 區塊鏈不等於比特幣
  • 區塊鏈不等於數據庫
  • 區塊鏈並不是一門萬能的顛覆性技術
相關文章
相關標籤/搜索