什么是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 的保护,未来会不会有安全性问题就有待时间的考验了。