寫在前面
在分布式之PBFT算法 一文中我們分析了PBFT
(pratical byzantine fault tolerant)
算法,但是該算法對惡意節點的個數有要求,即不能超過
(n-1/3)
,試想下如果将該算法用在區塊鍊中,那就麻煩了。想要解決這個問題,就需要用到PoW算法,也正是本文要分析的内容,下面我們就開始吧!
1:PoW算法
首先PoW算法和PBTF算法一樣都是一種拜占庭容錯的分布式共識算法,但不同于PBFT,PoW全稱是proof of work,即工作量證明,即某節點如果是想要加入到叢集中,則需要完成一定的工作,什麼意思呢?比如某公司招聘Java開發崗位,需要完成一道程式設計題,你完成了這道程式設計題,就是
你工作量的證明
,然後面試官負責對你的程式進行稽核,進而确定是否滿足其要求。在PoW算法就會引入請求方和驗證方,請求方執行運算,運算處結果後,将結果發送給驗證方進行驗證,如下圖:

其實在區塊鍊中使用的就是PoW算法,并且在其應用場景中,這個運算的成本是非常高的,有多高呢?以比特币為例,想要完整作惡的話,總的成本大概在百億。是以Pow算法并非是能夠讓叢集中沒有作惡節點,而是通過提高加入叢集的門檻
(通過工作量證明)
,來提高壞人作惡的成本,進而讓壞人因為得不償失而不去作惡。
寫在後面
參考文章清單
分布式之PBFT算法 。