比特幣底層區塊鏈技術到底是什麼?

區塊鏈技術

什麼是區塊鏈?

去中心化的、分佈式的、區塊化存儲的數據庫

存儲全部賬戶餘額及交易流水的總賬本

每個節點有完整的賬本數據

賬本數據記錄了全部的歷史交易數據

交易數據存儲在區塊上

每個區塊包含前一區塊ID及HASH,形成鏈

區塊鏈基本原理

如果把區塊鏈作為一個狀態機,則每次交易就是試圖改變一次狀態,而每次共識生成的區塊,就是參與者對於區塊中所有交易內容導致狀態改變的結果進行確認。

交易(Transaction):一次操作,導致賬本狀態的一次改變,如添加一條記錄

區塊(Block):記錄一段時間內發生的交易和狀態結果,是對當前賬本狀態的一次共識

鏈(Chain):由一個個區塊按照發生順序串聯而成,是整個狀態變化的日誌記錄

區塊鏈要解決的問題

如何去中心化地共享數據?

如何確保賬戶不被冒用?

如何確保賬戶餘額足夠?

如何確保交易記錄不被篡改?

誰負責記賬?

怎麼保障記賬者的可信?

怎麼保障記賬者的積極性?

區塊鏈特性

去中心化

開放性(沒有限制,開源,數據公開)

去信任(僅信任機器)

自治性,集體維護

可靠的數據庫(不可更改,永遠可訪問)

匿名性,隱私保護

核心技術

P2P網絡、數字簽名、區塊化數據庫,競爭記賬權、共識算法、交易回溯。

比特幣底層區塊鏈技術到底是什麼?

分佈式計算網絡

自動發現

通過種子文件,獲取初始節點(地址及端口)

連接初始節點,獲取初始節點知道的Peer

把自己的地址及端口廣播給各個Peer

接收各個Peer廣播的地址信息,構建出網絡的全貌或片段

技術領域

分佈式存儲、分佈式計算、分佈式協同

組播

流媒體

搜索引擎

通信協議

napster 、Gnutella、eDonkey、 Bittorrent(文件分發協議)

XMPP、Jabber(即時通信協議)

Paxos 、Gossip(分佈式系統狀態同步協議)

JXTA

HASH算法及非對稱加密及簽名技術

每個節點、每個人有唯一的一對公鑰及私鑰

公鑰同時也是每個節點、個人的地址和賬號

私鑰是證明”我就是我“的唯一手段

HASH算法對數據進行規整

算法

RSA、Elgamal、D-H、ECC

SHA256、 RIMPED160

加密

發送方使用接收方的公鑰加密數據

接收方使用本方的私鑰解密數據

通常使用本方面交換對稱加密的Key

簽名

發送方使用HASH算法計算數據的HASH值

發送方使用本方的私鑰加密HASH值,得到簽名

接收方使用HASH算法計算數據的HASH值

接收方使用發送方的公鑰解密簽名得到發送的HASH值

比較兩個HASH值的一致性

區塊鏈化數據庫

典型特徵

去中心化的、分佈式的、區塊化存儲的數據庫

區塊(Header + Body)

隨機數

時間戳

包含父區塊創建之後、本區塊創建之前的全部交易;

滿足某個條件的區塊HASH;

a) SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET

b)

Target值由動態的難度係數確定,Target越小,難度越高;

比特幣底層區塊鏈技術到底是什麼?

參考

默克爾樹是一種二叉樹,由一組葉節點、一組中間節點和一個根節點構成。最下面的大量的葉節點包含基礎數據,每個中間節點是它的兩個子節點的哈希,根節點也是由它的兩個子節點的哈希,代表了默克爾樹的頂部。默克爾樹的目的是允許區塊的數據可以零散地傳送:節點可以從一個源下載區塊頭,從另外的源下載與其有關的樹的其它部分,而依然能夠確認所有的數據都是正確的。

默克爾樹協議對比特幣的長期持續性可以說是至關重要的。在2014年4月,比特幣網絡中的一個全節點-存儲和處理所有區塊的全部數據的節點-需要佔用15GB的內存空間,而且還以每個月超過1GB的速度增長。簡化支付確認(SPV)協議允許另一種節點存在,這樣的節點被成為“輕節點”,它下載區塊頭,使用區塊頭確認工作量證明,然後只下載與其交易相關的默克爾樹“分支”。這使得輕節點只要下載整個區塊鏈的一小部分,就可以安全地確定任何一筆比特幣交易的狀態和賬戶的當前餘額。

記賬權競爭及獎勵制度(挖礦)

概述

為防止可預期的記賬節點被控制或攻擊,導致錯誤記賬行為,區塊鏈技術採用競爭記賬權的做法:

任何一個節點均可以參與記賬,因而記賬節點無法預期,也就不容易被控

競爭的過程就是看誰最先計算出滿足條件的HASH值

每次計算必須以最後1個有效的區塊為起點,必須消耗大量的計算機CPU,增加偽造記賬數據的成本

計算的結果必須得到大部分節點的認可(共識算法),才會成為新的區塊。實際算法中,如果該區塊位於最長的區塊鏈上,則為正式被認可的區塊,也即大部分節點認可計算結果,並願意在該結果下繼續計算

這個過程被稱為挖礦,或工作量證明(POW)。參與挖礦的節點稱為礦工,協同挖礦的礦工聯合體稱為礦池

a ) 以前1區塊為起點,計算滿足條件的HASH值;

b ) 將計算的結果廣播給其他節點;

c ) 其他節點驗證計算結果無誤時,認可該結果,並以該結果為起點重新進行計算;

d ) 單位時間內達到共識認可要求時,該區塊成為正式認可的區塊。

這個過程被稱系統為鼓勵挖礦的積極性,給予競爭成功的記賬節點獎勵

e ) 給予每個區塊挖礦者直接的“現金”獎勵。例如,比特幣網絡給予25個比特幣,以太坊給予5個以太幣;

f ) 以太坊:納入該區塊的交易的手續費,由發起節點和記賬節點分成(發起75%,記賬25%)。

比特幣底層區塊鏈技術到底是什麼?


分享到:


相關文章: