介紹 PoW, PoS, DPoS 共識機制

in #blockchain6 years ago


什麼是 PoW, PoS, DPoS 共識機制?

區塊鏈中的眾多節點為了防止弊端問題 ,就必須設計一套「共識機制 (Consensus)」來保護系統。區塊鏈是一種去中心化與分散式系統的實踐,架構中只要是遇到分散式系統,就必須處理資訊同步問題,只要是遇到去中心化,並必須處理作弊問題 (拜占庭問題)。這就是區塊鏈為什麼需要共識演算法的原因,目前有幾個常用的驗算法,分別為 PoW, PoS, DPoS。這些演算法在不同的應用場景都有不同的優勢,沒有哪一種演算法一定比較好,但我深信未來一定會有更多變形的共識演算法出現。先介紹一下我們常聽到的幾個演算法:

PoW 共識演算法


區塊鏈始主比特幣 (BitCoin) 使用了由 Adam Back 所發明的 PoW, Proof-of-Work (工作量證明) 作為共識機制,由於 PoW 機制會耗費大量運算來計算 Hash (其實應該是說暴力猜測),大量能源被消耗一直被世人所詬病。在 PoW 共識機制保護下,除非你的計算力超過區塊鏈全網的 51% 才有機會取得中心化控制權,這個 51% 攻擊法在「矽谷群瞎傳」這個美劇第四季上曾經上演過這個情節。


 

PoS 共識演算法


PoW 耗費運算且出塊速度慢,節點數量多也造成同步緩慢問題 (太多的分歧與合併),這些問題一直以來被世人所詬病。後來新的區塊鏈技術漸漸開始轉向由 Sunny King 發明的 PoS, Proof-of-Stake (權益證明) 共識機制,透過鎖定含有稀缺性的數位幣 (Token) 來決定出塊順序。因此可以減少能源消耗問題,不在浪費資源重複計算 Hash,也有效避免了 51% 算力駭客攻擊。以大幣 ETH 2017 年就改用 PoW + PoS 的機制進行運作,未來會有更多數位幣跟進也不一定。
在 PoS 的機制下,如果駭客想要竄改網路,就必須先取得大量的 Token,然而取得大量 Token 就需要大量的資金,阿駭客就是因為沒有錢才要當駭客,因此在 PoS 的共識機制下,確實目前有效阻擋了大部分的攻擊行為。PoS 雖然解決了區塊鏈同步效能的問題,但是卻有著大者恆大,有錢人就越有錢的問題。因為擁有比較多鎖定 Token 的節點,便有更多的機會負責出塊而得到獎勵報酬。

DPoS 共識演算法


除了 PoW, PoS 還有一個新選擇,就是 DPoS, Delegated Proof-of-Stake (委託權益證明),DPoS 由 Daniel Larimer 所發明,Daniel Larimer 這位大神創造了 Bitshares, Steem 和 EOS 三個區塊鏈專案,也都應用了 DPoS 作為共識機制。DPoS 與 PoS 不同的是它創造了一個選舉的機制,透過 DPoS 可以選出特定數量的節點,然後由特定數量的節點輪流進行區塊的出塊工作。


DPoS 有些類似董事會的概念,假設今天沒有董事會的機制,公司營運策略皆由全部股東參與執行,決策運作起來效率極差。如果透過大家推舉董事參與營運策略,只要這些董事不集體叛變,正常情況都是安全的。即使有部份董事不乖,股東也可以透過投反對票剃除董事資格。因此區塊鏈採用 DPoS 共識機制效率極高,EOS 每秒可以處理 10W ~100W 的交易量。也解決了部份傳統 PoS 大者恆大的問題,反之我們思考 EOS 票選出來的 21 個超級節點,卻換來的是一個中心化的架構,或者說弱中心化。這個架構受到 DPoS 的保護,未來會不會有安全性問題就有待時間的考驗了。
今天這幾種演算法就介紹到這裡,廢文結束.......

文章由 Soul & Shell Blog 轉貼, 原文:https://blog.toright.com/posts/5981/pow-pos-dpos-consensus-intro.html
Sort:  

Congratulations @samejack! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You made more than 50 upvotes. Your next target is to reach 100 upvotes.

Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Do not miss the last post from @steemitboard:

Meet the Steemians Contest - Intermediate results

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @samejack! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You received more than 100 upvotes. Your next target is to reach 250 upvotes.

Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:

Meet the Steemians Contest - The results, the winners and the prizes
Meet the Steemians Contest - Special attendees revealed
Meet the Steemians Contest - Intermediate results

Support SteemitBoard's project! Vote for its witness and get one more award!