區塊鏈--一種分布式基礎架構與計算范式
驗證與存儲數據:塊鏈式數據結構
生成和更新數據:分布式節點共識算法
保證數據傳輸和訪問安全:密碼學
編程和操作數據:自動化腳本代碼組成的智能合約
狹義來講是一個分布式賬本(分布式數據庫)
概念
--一個分布式的鏈接賬本,每個賬本就是一個區塊
基於分布式的共識算法來決定記賬者
賬本內交易有密碼學簽名和哈希算法保證不被修改
當前賬本有上一個賬本的哈希值,賬本之間的鏈接保證不可篡改
所有交易可追溯
特點
1.去中心化
2.去信任(數字簽名技術進行驗證)(數據透明,用戶匿名)
3.集體辯護(系統中所有人共同參與維護工作)
4.可靠數據庫(每個節點都擁有完整數據庫拷貝,除非能控制整個網絡中超過51%結點同時修改)
區塊鏈分類
以參與方式:
公有鏈/非許可鏈
(任何人均可自由參加,自由接入網路,不受控制,一般適合於虛擬貨幣,面向大眾電子商務,會聯網金融,如比特幣和以太坊)
聯盟鏈/許可鏈
(加入和退出需聯盟授權,讀寫權限和參與記賬權限按聯盟規則來制定,整個網絡由成員共同維護,適合於機構間的交易,結算和清算。例:銀行間業務,將各家銀行的網關點作為記賬節點,當網絡上有超過2/3的節點確認一個區塊時,該區塊記錄的交易將得到全網確認;有40多家銀行參與的區塊鏈聯盟R3和Linux基金會支持的超級賬本(Hyperleder)項目屬於聯盟鏈架構)
私有鏈(企業內部,權力完全控制在一個組織中,如企業數據庫管理,審計)
以鏈與鏈的關系:
主鏈
側鏈(側鏈是用於確認來自於其他區塊鏈的數據的區塊鏈,可增強區塊鏈的隱私保護通過雙向掛鈎(TwoWay Peg)機制使比特幣,Ripple幣等多種資產在不同區塊鏈上以一定的匯率實現轉換)
區塊鏈產業鏈
基礎網絡層(數據層+網絡層)
中間協議層(共識層+激勵層+合約層)
應用服務層(可編程貨幣+可編程金融+可編程社會)
具體:
數據層:底層數據區塊鏈,數據加密,時間戳等
網絡層:分布式組網機制,數據傳播機制,數據驗證機制
共識層:網絡節點的各類共識算法
激勵層:將經濟因素集成到區塊鏈體系中,包括經濟激勵的發行機制和分配機制
合約層:各類腳本,算法,智能合約 (是區塊鏈可編程性的基礎)

數據層:
區塊=區塊頭+區塊體
區塊體:只負責記錄前一段時間內的所有交易信息
區塊頭:封裝當前的版本號,前一區塊地址,時間戳(精確到秒),隨機數(記錄解密該區塊相關的數學題和答案的值),當前區塊的目標哈希值,Merkle數的根值信息 (即大部分功能都有區塊頭實現)
概括:區塊≈交易信息+前一個區塊形成的哈希散列,隨機數
隨機數:交易達成的核心,所有礦工結點競爭計算隨機數的答案,最快得到答案的結點生成一個新的區塊,並廣播到所有節點進行更新,如此完成交易
- 哈希函數
哈希函數可將任意長度的資料經由Hash算法轉換為一組固定長度的代碼,原理是基於一種密碼學上的單向哈希函數,這種函數很容易被驗證,但是卻很難破解。通常業界使用y =hash(x)的方式進行表示,該哈希函數實現對x進行運算計算出一個哈希值y。
常使用的哈希算法包括MD5、SHA-1、SHA-256、SHA-384及SHA-512等。
- Merkle樹
Merkle樹是一種哈希二叉樹,使用它可以快速校驗大規模數據的完整性。在區塊鏈網絡中,Merkle 樹被用來歸納一個區塊中的所有交易信息,最終生成這個區塊所有交易信息的一個統一的哈希值,區塊中任何一筆交易信息的改變都會使得Merkle 樹改變。
- 非對稱加密
非對稱加密算法是一種密鑰的保密方法,需要兩個密鑰:公鑰和私鑰。
公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密,從而獲取對應的數據價值;如果用私鑰對數據進行簽名,那么只有用對應的公鑰才能驗證簽名,驗證信息的發出者是私鑰持有者。
因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫做非對稱加密算法,而對稱加密在加密與解密的過程中使用的是同一把密鑰。
網絡層:
- P2P網絡
P2P網絡(對等網絡),又稱點對點技術,是沒有中心服務器、依靠用戶群交換信息的互聯網體系。與有中心服務器的中央網絡系統不同,對等網絡的每個用戶端既是一個節點,也有服務器的功能。
P2P網絡其具有去中心化與健壯性等特點。
共識層:
- 共識機制
共識機制,就是所有記賬節點之間如何達成共識,去認定一個記錄的有效性,這既是認定的手段,也是防止篡改的手段。目前主要有四大類共識機制:PoW、PoS、DPoS和分布式一致性算法。
PoW機制,也就是像比特幣的挖礦機制,礦工通過把網絡尚未記錄的現有交易打包到一個區塊,然后不斷遍歷嘗試來尋找一個隨機數,使得新區塊加上隨機數的哈希值滿足一定的難度條件。找到滿足條件的隨機數,就相當於確定了區塊鏈最新的一個區塊,也相當於獲得了區塊鏈的本輪記賬權。礦工把滿足挖礦難度條件的區塊在網絡中廣播出去,全網其他節點在驗證該區塊滿足挖礦難度條件,同時區塊里的交易數據符合協議規范后,將各自把該區塊鏈接到自己版本的區塊鏈上,從而在全網形成對當前網絡狀態的共識。
優點:完全去中心化,節點自由進出,避免了建立和維護中心化信用機構的成本。只要網絡破壞者的算力不超過網絡總算力的50%,網絡的交易狀態就能達成一致。
缺點:目前比特幣挖礦造成大量的資源浪費;另外挖礦的激勵機制也造成礦池算力的高度集中,背離了當初去中心化設計的初衷。更大的問題是PoW機制的共識達成的周期較長,每秒只能最多做7筆交易,不適合商業應用。
總結自:
https://www.cnblogs.com/skyme/p/8717535.html
