DPOS是由BTS首创使用,后来被无数项目根据自身情况改动后使用的一种共识算法。
译者介绍:
奚海峰,万云首席技术官,曾在IBM担任研究院工程师和高级咨询顾问,在Sempra Commodities (全球大宗商品交易公司集团)担任主管架构师,在Tudor Investment ( 美国排名前20的对冲基金)担任软件开发主管。在美国12年间,荣获了包括“IBM 研究成就奖”在内的多次嘉奖,在一流国际会议和杂志上发表过多篇学术论文,并且持有美国发明专利。
这篇“缺失的白皮书”是对委托权益证明(DPOS)的分析,目的是为DPOS的工作原理及其鲁棒性根源提供一个分析。DPOS的早期描述可以在bitshares.org(https://bitshares.org/technology/delegating-proof-of-stake-consensus/)找到;不过,那个描述还包含了许多不属于实际共识过程的内容。 所有区块链本质上都是一种由交易驱动的确定性状态机。共识是商定确定性交易顺序和过滤无效交易的过程。有许多不同的共识算法都可以产生等效的交易排序,但DPOS已经通过在多个区块链上经年累月的可靠运行证明自身是健壮、安全和有效的。 像所有共识算法一样,块生产者可能导致的最大损害是审查。所有块的有效性必须基于确定性的开源状态机逻辑。 DPOS算法分为两部分:选择一组块生产者和调度生产。选举过程确保利益相关方最终得到控制,因为当网络不能顺利运行时,利益相关方的损失最大。选举方法对实际运行中如何达成共识几乎没有影响,因此,本文将重点介绍如何在块生产者被选择之后达成共识。 为了帮助解释这个算法,我想假设3个块生产者A,B和C。因为共识(的达成)需要2/3+1多数来解决所有情况,这个简化的模型将假设生产者C是打破僵局的那个人。在现实世界中,将有21个或更多的块生产者。像工作量证明一样,一般规则是最长链胜出。任何时候当一个诚实的对等节点看到一个有效的更长链,它都会从当前分叉切换到更长的这条链。 我将举例说明在大多数想得到的网络条件下DPOS如何运行。这些例子应该可以帮助您理解为什么DPOS稳健且难以破坏。 在正常操作模式下,块生产者每3秒钟轮流生成一个块。假设没有人错过自己的轮次,那么这将产生最长链。块生产者在被调度轮次之外的任何时间段出块都是无效的。

