【小白向科普】淺談POW/POS共識機制

買賣虛擬貨幣
在前面的文章中,我們科普了挖礦的原理和應用,那麼如何在區塊鏈中確保交易的準確性和有效性呢?

讓我們再次回到特定的情境中。在傳統的金融系統裡,A向B轉賬了一筆錢,這個行為會被儲存在銀行資料庫裡,也就是交易資料的真實性由銀行這樣的傳統機構保證,以他們的記錄為準。但是在比特幣系統中,可能有的節點記錄了A向B轉賬的事情,有的節點沒有記錄,那系統到底如何確認這筆轉賬的真實性呢?

於是透過一個合適的共識機制,讓整個系統能做出統一的決定,就很重要了。

相信這時候有人會提出,這不是很簡單嗎,讓所有人投票,少數服從多數就好了!

可是世界畢竟沒有那麼單純。1982年,Leslie Lamport等在論文《The Byzantine Generals Problem》(中譯名《拜占庭將軍問題》)中提出了這樣一個問題:

設想在中世紀,拜占庭帝國的幾位將軍各自帶兵共同圍困一座城市。這座城市的防守非常堅固,只有他們一起進攻才能攻下來。也就是說,他們要麼一起進攻,要麼一起撤退,否則都是災難性後果。但是因為各位將軍分處城市不同方向,沒法坐在一起討論,只能透過信使告訴彼此自己投票進攻還是撤退。於是,每位將軍都是根據得到的所有別的將軍的投票,做出自己進攻還是撤退的決定。

如果所有將軍都是忠誠的,當然沒有問題,根據大多數將軍投票結果就好了。但是問題在於,將軍中可能有叛徒。假設9位將軍投票,4人投進攻,4人投撤退,剩下1人是叛徒,他選擇告訴進攻的4人他投進攻,告訴撤退的4人他投撤退,那麼結果就悲慘了。


所以需要有一種演算法,以保證即使將軍中有叛徒,忠誠的將軍們依然能透過多數來做出決定,也就是拜占庭容錯。這並不容易。直到1999年,Miguel Castro和Barbara Liskov提出了實用拜占庭容錯演算法(PBFT),能夠實現只要叛徒不超過三分之一,忠誠的將軍們就一定能達成一致結果。這已經是非常好的成績。

直到中本聰提出比特幣,拜占庭將軍問題的解決終於有了一種新的思路。我們這裡不討論技術演算法和結構,簡單來說,中本聰的思路就是,如果要做叛徒,攻擊整個網路,需要付出相應的成本,而這個成本在比特幣的PoW(Proof of Work)工作量共識機制下,就是要掌握整個網路50%以上的算力——換句話說,有50%以上的叛徒才行,這是比PBFT高得多的容錯率,而且大家可以想象一下這是多高的成本。接下來,絕妙的是,如果真的掌握那麼大的算力的話,用這些算力維護網路(誠實地挖礦)獲得的收益其實會高於破壞網路。

當然PoW機制雖然很健壯,但成本很高,有太多懂區塊鏈不懂區塊鏈的人批評比特幣浪費了大量的算力以及產生這些算力的電、計算裝置等。因此後來全世界的聰明人們研究出了不少替代PoW的共識機制,不過這些共識機制同樣延續的中本聰的思路:作惡有成本,且成本高到還不如為善。


但是後續的這些共識機制也都有各自的問題。比方說,PoW之外最早也是最重要的PoS(Proof of Stake),由Sunny King於2011年提出,它的原則是一個節點持有的幣越多,越有機會產生下一個區塊,也就是如果想要造假需要持有很大量的幣。而既然造假者持有了那麼多幣,破壞網路的可信度就會造成資產的大量損失,這個損失極有可能是超過造假的收益的。

PoS相比PoW節約了大量的資源,但是對它的批評也很明顯:這會造成富者越富,窮者越窮,然後使用者會流失,新使用者也不願意加入。

即使在POS和POW之後,誕生了股份授權證明(DPoS)機制、按區塊達成的投注共識(Casper)、瑞波共識機制(Ripple Consensus)、秒級共識驗證Pool驗證池、廣泛應用於聯盟鏈共識的實用拜占庭容錯機制、小蟻釋出的授權拜占庭容錯機制等各樣共識機制,但是由於它們各自存在的中心化過強、過於依賴代幣、容錯性過差等缺點,截至目前,依然沒有一種共識機制,能讓大家都覺得信服。

作者:Sophie,來源:財女知女和大美女

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;