委托股权证明(DPoS)——它是PoS的一种变体,以限制网络上验证者的数量为代价,提供高级别的可扩展性。
在本文中,我们将介绍DPoS的工作机制、优势、权衡,以及如何减轻这些权衡以实现更高级别的可扩展性,同时避免审查和双重支出的风险。
Dpos委托股权证明是什么?
DPoS是一个系统,其中固定数量的选定实体(称之为区块生产者或见证人)被挑选来以循环顺序创建区块。
区块生产者由网络用户投票决定,他们每个人都得到与他们在网络上拥有的代币数量(他们的股份)成正比的选票。
或者,选民可以选择将他们的股权委托给另一名选民,被委托的选民将代表他们投票选举区块生产者。
来自Dan Larimer关于DPoS与PoS的语义区别:
- 区块生产者负责创建和签署新区块。他们数量有限,由选民投票选出。
- DPoS中的区块验证者指验证区块生产者创建的区块遵循共识规则的完整节点。 任何用户都可以运行区块验证者并验证网络。 (这可能会让人混淆,因为在Casper的PoS中,“验证者”一词指的是创建区块的人)。
DPoS网络中的区块生产者数量由该链的共识规则决定。 以下是一些著名的DPoS链的数字:
- EOS:21
- BitShare:101
- Steemit:21
- Lisk:101
- Ark:51
带有N个区块生产者的DPoS区块链的轮次如下:
- N个区块生产者由区块生产者候选人中被选举出来。
- 第i个区块生产者签署第i个区块,直到i=N。
当一个区块被(2/3 + 1)个区块生产者投票选择时,它会得到最终确定(即不可逆转)。 否则,就遵循最长链规则。 想要实现区块链之间的互操作性时,终结性是非常重要的属性。
每个DPoS实现的区块奖励和通货膨胀机制取决于每个项目的奖励模式,其超出了本文的范围。 Dan Larimer详细写了DPoS如何在各种条件下运行。[2]
选民如果发现区块生产者是恶意的(即试图审查事务或双重支出),则可以通过在下一轮投票时不给他投票“炒掉”他。
由于区块生产者数量有限,DPoS能够处理的事务吞吐量比今天的PoW高出多个数量级。
Dpos理想太美好了?
正如我们之前所写的,由于区块生产者数量较少,DPoS是一种为了吞吐量牺牲去中心性的协议。
因此,尽管DPoS对许多需要高度可扩展性的应用程序来说十分有意义,但我们(和大多数其他严肃认真的区块链开发人员)认为,DPoS不够去中心化,无法成为基础层来存储价值及Web 3应用的总帐所有权。
能够转移金融价值的区块链基础层必须完全去中心化并且安全,基础层绝对不能收到威胁。
有趣的是,尽管某些项目的大量营销活动宣称DPoS优于PoW区块链(如以太坊),但最近的一项Twitter调查中显示,880名用户中有50%认识到这是以牺牲去中心性为代价的:
DPoS作为去中心化系统遭到了许多人的诟病,其中一个是Vitalik Buterin,他认为这将会形成卡特尔和贿赂选民的动机。
鉴于我们不接受任何不是完全去中心化的基础层,我们也不能对网络参与者的诚信做出假设,所以DPoS似乎不太适合用于处理区块链上尤其是金融领域事务。
那将DPoS用于特定用例呢?
我们不是第一个想到这个的。如Myles Snider解释道:
“如果DPoS系统仍然能够提供去中心化数据库所要求的必要的审查抵制、无许可和无信任的级别,那么DPoS更适合于各种去中心化应用。
对于某些用例——绝对审查抵制的数字黄金、p2p的数字货币等,以牺牲性能为代价换取去中心性的权衡也许是合理的。
对绝大多数的应用程序来说,可扩展性要实用得多。”
对于像社交网络或游戏这样的应用程序,每个评论或游戏中的操作都不需要完全去中心化网络的完全安全性,但它们确实需要高吞吐量。 因此,DPoS似乎非常适合这类应用。
更好的是,如果我们使用像以太坊这样的PoW网络作为安全基础层并在第2层上构建我们的DPoS链,那么我们可以在高度可扩展的DPoS链上运行大部分应用程序,同时使用安全基础层为应用程序需要高安全性的部分(如游戏中的货币或资产所有权)提供保障。
正如Vitalik Buterin所言:
如果你的应用程序确实需要非常快速的事务确认,并且要确保这种快速确认能够可靠地发生,那么在我看来用以构建此类系统时所使用的正确的域应该是在安全基础层平台(如以太坊)之上的二级平台。
二级平台的构建方式可以依赖于第二级的性能,但不是安全的(请参阅:状态通道集线器,等离子操作员)。 然后,他们可以获得声誉和预期的未来收入激励,以促使他们在目前表现良好,并且减少任何失败的负面成本。
那样,如果发生了黑天鹅情况(指极不可能发生,实际上却又发生的事件),也总有回落到安全PoW主链的选择。
例如,如果不良参与者能够控制DPoS第2层上的大多数的区块生产者,用户的代币(潜在价值数百万或数十亿美元)在第1层上仍然是安全的。
这在独立且没有受到更加去中心化的第1层支持的DPoS区块链中是不可能实现的——如果链受到不良参与的威胁,这些代币会与链上的其他东西一同遭遇风险。
第2层链上的硬分叉 vs. 第1层链
在DPoS链中,如果一个对手通过获取大量股份获得了对网络的控制权,那么该区块链将被迫硬分叉以审查对手。
在包含追踪代币或其他数字资产所有权的总账的区块链中(像大多数第1层链一样),硬分叉可能是灾难性的。 它破坏了人们把该网络作为一个长期价值存储的信心(例如,一个人可能会投入他们的一辈子的储蓄)。
但是在第2层上运行的非金融应用程序,它在安全的第1层上存储任何有价值的东西的情况下,硬分叉就不是那么大的灾难了。
对于在第2层上运行的应用程序或游戏,只要保持基础数据的完整,硬分叉是一个可行的解决方案。
通过Plasma Cash增加第2层的安全性
Plasma是一种通过区块链实现资产安全转移的技术,即使“Plasma链”变成拜占庭,系统的安全性也由“根链”保证。
通过使用Plasma,用户可以在第2层上使用代币进行交易,同时仍然只依靠第1层来实现安全性。 如果如上所述对手获得了对第2层的控制,用户将有能力将其代币“退出”到第1层。
即使没有Plasma,将DPoS侧链构建在安全的第1层之上也提供了更多的安全性,因为DApp开发人员可以将DApp的一些部分存储在安全基础层上,其他部分存储在可扩展的侧链上。 通过Plasma,开发人员可以获得更大的灵活性,因为他们可以在侧链上执行额外的事务,而这些事务仍然只依赖基础层来实现安全性。
到目前为止,Plasma链的所以示例都使用了权威证明(PoA)伴随着单个Plasma操作者权威,并探索操作者是对手的情景。 这种威胁模型只考虑侧链上的一个Plasma操作者,并且需要非常严格的安全证明来保证侧链和主链之间的资金流动。
然而,在DPoS侧链的例子中,侧链社区可能会选出多个区块生产者,威胁模型则大不相同。 我们认为,通过Plasma在DApp链和以太坊PoW主链之间建立安全链接更简单,因为来自恶意群体区块生产者的攻击媒介有很大不同。
在Loom Network,我们正在为ERC721代币实现Plasma Cash,这将于本月晚些时候发布,它将允许游戏开发者将他们的ERC721代币存放在Loom DApp链上并在游戏中使用它们。
Dpos共识机制
为了在区块链上运行大型游戏和DApp,有必要牺牲一些去中心性以换取更高的性能和成本效益——而DPoS似乎是这些用例的完美解决方案。
我们也看到,DPoS算法可能不是价值储存的理想解决方案,由于网络中只有少量验证者,所以需要信任。
因此,我们认为利用去中心化主网络(即以太坊)作为第1层,并在高度可扩展的DPoS侧链上运行DApps可以是个两全其美的方案。