區塊鏈是一個融合了點對點傳輸(P2P),加密算法等技術的分布式數據庫,它必須基于計算機網絡來進行。
分布式記賬的方式帶來了的好處就是大家都來記賬,每個人手里都有一本完整的賬本(數據),某部分(節點)的賬本(數據)的丟失不會導致整個賬本(數據)的丟失,因為賬本(數據)是全網所有(節點)共有,即這個數據有無數個備份,隨時可以恢復。
而且隨著節點的增加,賬本(數據)也越來越安全,很難摧毀。
當然,另外一個好處就是,任意一個或部分(節點)的賬本(數據)的篡改,都不可能被全網認同,對于數據的篡改幾乎不可能,除非你能控制其中51%的節點,即51%攻擊。
前面我們通過極簡化的家庭模型來闡述了中心化記賬和去中心化記賬的對比,了解了公開的分布式記賬的好處:安全(難摧毀)和真實(難篡改)。
那么極簡化的家庭模型,只有少數人,大家都來記賬,都來對賬,也不會有什么大問題。
但如果是成千上萬的人(節點)呢?
誰來記賬?憑什么來讓你記賬?你有什么能力來記賬?
這就需要達成一種共識,這就是區塊鏈里面所需要的共識機制。
共識機制就是需要達成一致的問題,其中比較經典的共識機制問題就是“拜占庭將軍問題”。
拜占庭將軍問題
拜占庭有10個將軍要攻擊一個繁華強大的城邦,由于某種原因他們要分開行軍和駐扎。
這個城邦雖然沒有拜占庭強大,但也足以打敗少于半數的拜占庭聯軍。拜占庭的將軍們必須有超過半數一起攻打,不然就會失敗,因此他們需要商定是否在約定時間攻擊。他們需要面臨的問題是,信使可能沒有到達,也可能某幾個將軍是叛徒,會發不同的決定給不同的將軍,誤導他們使得最終無法統一行動。
當然還有一個很古典的有關共識機制的問題就是“類兩軍問題”。
由“類兩軍問題”引申出來的案例恐怕就是TCP的三次握手協議了:
1. A向B發送請求;
2. B對A說:我收到了你的請求;
3. A對B說:我知道你收到了我的請求;
但這其實是在假設第三次A對B說“我知道你收到了我的請求”時,假設B已經收到了,就不再繼續確認下去了,否則,這樣下去就沒完沒了,就變回成“類兩軍問題”了。
區塊鏈的共識機制——工作量證明
在比特幣系統里,比特幣區塊鏈的共識機制就是通過比拼計算能力來進行的,誰能在最短的時間內完成具有一定目標難度的hash散列值的計算,誰就獲得這個記賬的權利,并獲得比特幣獎勵。
|
新聞熱點
疑難解答