在本文中,我们将概述主要的权益证明实例和相应的项目。用基于共识算法的权益证明代替浪费型工作量证明的想法已经提出很久了。
Sunny King 和 Scott Nadal 于 2012 年撰写的学术论文首次引入了权益证明(PoS)的概念,而且一开始就被设计成是浪费型比特币协议的替代方案。自此以后出现了很多不同的共识算法。正如工作量证明(PoW)一样,替代共识算法存在一些问题,导致原始协议出现了许多改编版本。
总的来说,权益证明算法主要分为两大类:一类基于区块链,另一类基于拜占庭容错(BFT)。基于区块链的权益证明验证者是通过伪随机的方式选出来创建下一个区块的。在基于拜占庭容错的权益证明中,提议下一个区块以及创建下一个区块的行为是分开的。之后,多轮投票机制会决定最后是哪个区块被添加到区块链上。与基于区块链的权益证明不同,拜占庭容错共识不依赖于区块链的长度或大小。对一个区块的共识可以仅限于这个区块本身。重要的是要记住权益证明设计会带来天差地别的选择,以及共识算法的区分有时并非那么绝对,因为一个项目可以在很大程度上是基于权益算法的,不过也包含拜占庭容错的成分(如 Casper 或 Neo)。
第一代权益证明:(基于区块链的)代币
针对浪费型工作量证明协议,Sunny King 和 Scott Nadal 在 2012 年创造出了一个更加环保的加密货币,即 Peercoin 。Peercoin 分享了很多源代码和技术实施方案给比特币。在创生方式上,它与新代币存在根本差异。Peercoin 使用的是权益证明/工作量证明的混合型系统,这意味着一些代币是在个人持有量的基础上被创造出来的。每年,Peercoin 持有者手中的代币数量将增长 1%。Peercoin 存在的问题是没能激励代币持有者果断选择某一条链。相反,代币持有者可能会在不需付出任何代价的情况下给多个有冲突的区块投票,从而破坏安全性。这就是所谓的“无利害关系问题”。 工作证明会避免挖掘多个区块,因为矿工必须将自己的算力一分为二并且造成资源浪费。
第二代权益证明:(基于区块链的)以太坊 Casper
虽然以太坊目前是基于工作量证明共识算法运行的,该项目的长期策略是将 Casper 从工作量证明过渡到权益证明。Casper 的第一个版本 the Friendly-Finality-Gadget (FFG) 采用的是工作量证明/权益证明的混合型系统。Casper 试图解决上一段中形容的权益证明共识算法中的“无利害关系问题” 。点点币的主要问题是只奖励出块,但没有惩罚措施。签署任何区块都不会受到惩罚,代币持有者可以签署链上的所有分叉。其中包括想要撤销有效交易的恶性分叉。如此一来,不管哪条分叉赢了,下注的人都会得到奖励。Casper 会通过惩罚参与者来抑制伪造者在所有分叉上下注的倾向。如果验证者签署了两个有冲突的区块头,其权益将受到全部或部分削减。
混合工作量证明和权益证明的 Casper 初始版本将于 2018 年年末推出。
一些权益证明项目:Peercoin、Qtum、Ethereum
授权型权益证明
主要的设计差异在于系统是否允许代币持有者授权其他参与者代表代币持有量较少的人下注。授权型权益证明(DPoS)被提议用来作为一种激励代币持有者继续参与该系统的方式。正如我们在这篇关于中心化的博文中讨论过的那样,因为代币持有量大的人利润率更高,区块链上可能会出现中心化。为了确保能将协议中的权益集中起来,授权型权益证明的使用者会被鼓励将他们的代币授权给拥有更多权益的人。作为回报,他们可以从协议那里得到部分权益奖励。授权型权益证明的一个明显特点是它将对网络的控制集中起来,从而导致少量节点控制大部分网络。与此同时,这对代币持有者来说可能更加方便了,因为他们不一定要通过授予控制权的方式来做出每个治理决策了。
一些授权型权益证明:Ark、Lisk、Waves、Tezos、BOScoin
BFT 权益证明
要理解 BFT(拜占庭容错),重点是明白它要解决什么问题:拜占庭将军问题。因此 BFT 算法就是在哪怕 1/3 (小于等于 33%)的验证者都下线或是与其他人对立的情况下仍然能实现共识的算法。然而,这也意味着要求网络中 2/3 的人都是诚实的。因为共识并不依赖于前面链的长度,而会在验证区块的每一轮中达成。不仅如此,因为 BFT 共识算法倾向于节点间的一致性而非可用性,它们可以用于管理非同步的网络。基于链的权益证明算法刚好相反,依赖于网络的同步性。
一些 BFT 项目:Tendermint、Ripple、Stellar
我们希望当前关于权益证明的困惑可以消散,换成我们发现更多 PoS 及其所有变体的好奇心。如果你想要弄清更多关于奖励系统和铸币的东西,可以阅读我们的其它文章。
链接: https://medium.com/@poolofstake/a-proof-of-stake-overview-445c52558d03