區塊鏈--共識算法POW

首先我們通過介紹一個拜占庭將軍問題(Byzantine Generals Problem),來進一步瞭解共識算法是要幹什麼。

故事:

拜占庭帝國,擁有巨大的財富,周圍10個鄰邦垂誕已久,但拜占庭高牆聳立,沒有一個單獨的鄰邦能夠成功入侵。任何單個鄰邦入侵的都會失敗,同時也有可能自身被其他9個鄰邦入侵。拜占庭帝國防禦能力如此之強,至少要有十個鄰邦中的一半以上同時進攻,才有行。

其中的一個或者幾個鄰邦本身答應好一起進攻,但實際過程出現背叛,那麼入侵者可能都會被殲滅。

於是每一方都小心行事,不敢輕易相信鄰國。這就是拜占庭將軍問題。

所以想要吃到這塊肥肉,最重要的是10個鄰國的將軍達成一致去進攻拜占庭帝國。這就是要解決10個相互不信任的個體,去獲得最大利益的問題。

針對這個問題有幾個比較初級的解決方案,像口頭信息,書面協議等,這些我們就不講了,直接到高級點的,就是比特幣的共識算法pow。

工作量證明(Proof Of Work)

假如10個將軍都發信息,很容易亂,因為每個人都收到另外9個人的信息,所以中本聰規定只有一個人可以發出發起進攻的信息,這個人是誰都可以,但是有一定的條件限制,這個條件就是“工作量”,就是說這個人必須完成一個計算工作才能發消息,誰先完成這個計算工作,誰就能發消息。

當某個將軍計算出這個結果後就發出進攻的消息,其它將軍看到後必須簽名表示自己的身份,這裡請注意,古代那個簽名是很容易偽造的,所以中本聰引入了加密技術,就是非對稱加密,它的好處:1.消息的私秘性。2.確認簽名人身份。3.簽名不可偽造不可篡改。

非對稱加密

非對稱加密算法是由非對稱加密算法的加密和解密使用不同的兩個密鑰.這兩個密鑰就是公鑰和私鑰.

公鑰和私鑰一般成對出現, 如果消息使用公鑰加密,那麼需要該公鑰對應的私鑰才能解密; 同樣,如果消息使用私鑰加密,那麼需要該私鑰對應的公鑰才能解密.非對稱加密的作用是:保護消息內容, 並且讓消息接收方確定發送方的身份.

哈希現金(Hashcash)

這個就是大家要完成的計算,找一個隨機數,計算機只能用窮舉法來找到這個隨機數,誰也不能確定找到,隨機是公平的,並且這個隨機的數學邏輯是大家都認可的。

獎勵機制

中本聰設計是每有一個人算出這個隨機數,就獎勵一定數量的比特幣,這個機制是自動運行的。這個獎勵機制促使了大家一起來做這個計算,工作沒有白做。

總結:

共識算法主要是解決由誰來創建區塊,如何維護區塊鏈的統一性。

在本文中工作量證明解決了一致性問題,非對稱加密技術解決了信任問題。


分享到:


相關文章: