一、區塊鏈解決的問題
拜占庭將軍問題
故事大概是這麼說的:
拜占庭帝國即中世紀的土耳其,擁有巨大的財富,周圍10個鄰邦垂誕已久,但拜占庭高牆聳立,固若金湯,沒有一個單獨的鄰邦能夠成功入侵。任何單個鄰邦入侵的都會失敗,同時也有可能自身被其他9個鄰邦入侵。拜占庭帝國防禦能力如此之強,至少要有十個鄰邦中的一半以上同時進攻,纔有可能攻破。
然而,如果其中的一個或者幾個鄰邦本身答應好一起進攻,但實際過程出現背叛,那麼入侵者可能都會被殲滅。
於是每一方都小心行事,不敢輕易相信鄰國。這就是拜占庭將軍問題。
區塊鏈解決方案的特點:
1)互聯網傳遞信息,解決了通信的時間問題
2)一段時間內只有一個節點可以傳播信息
3)節點必須完成一個計算工作才能向各城邦傳播消息
4)非對稱加密技術就是公鑰和私鑰
5)計算工作是公平的,窮舉找到一個隨機數字
6)對於計算工作有獎勵機制
7)只要大多數人是好人,就可以完全去中心化達成共識
二、區塊鏈的定義
區塊鏈(Blockchain) 是由多個節點組成的分佈式數據庫系統。特點是不可修改,不可僞造。
區塊鏈是由使用密碼學加密產生的數據塊組成的,包括上一個區塊的哈希值。
三、區塊鏈核心優勢
1)任何節點都可以創建交易、再經過一段時間就可以確認是否爲有效的交易。可以預防雙花問題。
2)對於想要修改記錄的人來說,成本非常大,不如正常挖礦
3)區塊鏈實現了兩種記錄:交易(transactions)和區塊(blocks)。交易是被存儲在區塊鏈上的實際數據,區塊記錄確認時間和順序。交易由參與者在使用過程中創建,區塊則由礦工(miners)創建。
四、區塊鏈工作原理
1)區塊記錄在區塊鏈末端,一旦書寫很難修改。
2)區塊結構
大小 字段 描述
4字節 區塊大小 用字節表示的該字段之後的區塊大小
80字節 區塊頭 組成區塊頭的幾個字段
1-9(可變整數) 交易計數器 交易的數量
可變的 交易 記錄在區塊裏的交易信息
3)區塊頭由三組區塊元數據組成。
首先是一組引用父區塊哈希值的數據,這組元數據用於將該區塊與區塊鏈中前一區塊相連接。
第二組元數據,即難度、時間戳和nonce, 與挖礦競爭相關。
第三組元數據是merkle樹根。
4)區塊頭結構
大小 字段 描述
4字節 版本 版本號,用於跟蹤軟件/協議的更新
32字節 父區塊哈希值 引用區塊鏈中父區塊的哈希值
32字節 Merkle根 該區塊中交易的merkle樹根的哈希值
4字節 時間戳 該區塊產生的近似時間
4字節 難度目標 該區塊工作量證明算法的難度目標
4字節 Nonce 用於工作量證明算法的計數器
5)創始區塊創建於2009年,所有區塊的共同祖先。
五、區塊鏈衍生概念
1)公鏈(public blockchain): 是指全世界任何人都可讀取、發送交易且能獲得有效確認的共識區塊鏈。
公鏈的安全由工作量證明機制(pow)或權益證明機制(pos)等方式負責維護。
2)共同體區塊鏈(consortium blockchains): 是指其共識過程受到預選節點控制的區塊鏈。
3)私鏈(private blockchain): 完全私有的區塊鏈,其寫入權限僅在一個組織手裏的區塊鏈。
六、公鏈和私鏈的特點
公鏈特點:
1)中立、開放、去中心化
2)不可更改,不可撤銷
3)擁有網絡效應
4)抗審查性高
私鏈特點:
1)規則易於修改(交易,餘額等)
2)交易成本低(交易只需幾個受信節點驗證即可)
3)讀取權限受限