區塊鏈技術棧-共識機制


共識機制

  所謂共識,就是指大家都打成一致的意思。在生活中也有許多需要達成共識的場景,比如開會討論,雙方或多方簽訂一份協議,在區塊鏈系統中,每個節點必須要做的事情就是讓自己的賬本跟其他節點保持一致,如果是在傳統的軟件結構中,這幾乎就不是問題,因為一個中心服務器的存在,也就是所謂的主庫,其他從庫向主庫看齊就好,在實際生活中,很多事情人們也是按照這邏輯來的。比如企業老板發布了一個通知,員工照着做,但是區塊鏈是一個分布式的對等網絡結構,在這個結構中沒有哪個節點是“老大”,一切都要商量着來,在區塊鏈系統中,如何讓每一個節點通過一個規則將各自節點的數據保持一致是一個很核心的問題,這個問題的解決方案就是制定一套共識算法。

  共識算法其實就是一種規則,每個節點都按這個規則去確認各節點的數據,我們暫且拋開算法的原理,先來想一想在生活中我們會如何解決這個問題,假設一群人開會,這群人沒有一個領導,大家各抒己見,到最后如何統一一個最終的結果出來呢?實際處理的時候,我們一般在某個時間段選出一個人來發表意見,那個負責匯總大家的內容,然后發布完整的意見,其他人投票表決,每個人都有機會來匯總表達,最后票數最多的按最終意見,這種思路就是一種共識算法了,然而在實際過程中,如果人數多並數量是確定的,那還好處理些,如果人數很多並且數量不可確定,那么很難讓每個人去發表意見再投票了,這樣效率太低了,我們需要一個機制選出一個代表的人,在共識算法中就是篩選出具有代表性的節點。

  如何篩選呢?其實就是設置一組條件,就像我們篩選運動員一樣,給一組指標讓大家完成,誰能更好的完成指標,誰就有機會被選上。在區塊鏈系統中,存在着多種這樣的篩選方案,比如PoW(Proof of Work)工作量證明、PoS(Proof of Stake)權益證明、DPoS(Delegate Proof of Stake)委托權益證明、PBFT(Practical Byzantine Fault Tolerance)實用拜占庭容錯算法等,各種不同的算法,其實就是不同的游戲玩法,這里暫且不進行算法的過程詳述,大家只要知道這些都是一些篩選算法就行了。區塊鏈系統就是通過這種篩選算法或者共識算法來使用網絡中各個節點的賬本數據打成一致的。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com