再看EOS之二:DPoS

DPoS在本文中指的是Delegated Proof of Stake。公认的说法是最早出现在Bitshares项目中,由如今EOS的Dan发明,旨在解决区块链网络的规模化交易问题。Bitshares是Dan的第一个区块链项目,其后所主导的Steem项目亦采用了DPoS的共识机制。EOS作为Dan的第三个项目,同样采用了DPoS。

在传统的比特币/以太坊PoW机制中,所有节点理论上都拥有记账权,但随着网络规模的增大、交易量的增多,整体的运行效率并不高。比如,比特币系统的TPS只有个位数量级,以太坊TPS也只有20-30。DPoS尝试解决规划化的问题,在其之前项目的声明中希望达到10万TPS,EOS项目中更是将目标提高到了百万级。

DPoS共识机制的核心理念与我们熟知的选举制度类似,分为两个部分:选举代表、代表行使权利。

选举代表的过程是这样的:所有有权选举的人(这里指token持有者)投票选择他们支持的代表,他们持有的token数量决定了他们的选举权重,整个网络中得到投票数最多的n个最终获选。

代表行使权利(这里指网络记账权)的过程是:代表们先行在一个权利周期内的记账顺序上达成一致,每个代表在自己的记账时段独立行使记账权。

以EOS为例,网络最终需要选举出21个记账节点(Block Producer),权利周期是126个区块,也就是每个周期内每个BP可以记录6个区块,每个区块的时间间隔是0.5秒(之前规划是3秒)。

Dan在EOS的DPoS中新引入了拜占庭容错机制,也称作BFT-DPOS,原理就是允许至多6个节点的恶意行为,只要任一区块有15个节点达成一致便最终确认并且不可逆。

以上是DPoS的主要运行机制,Dan在DPOS Consensus Algorithm – The Missing White Paper一文中对DPoS可能面临的分叉及攻击又做了进一步的阐述,感兴趣的朋友不妨一读。

关于DPoS的优劣讨论非常之多。优势大致是基于Dan在之前的两个项目中成功部署了DPoS机制,经历了市场的检验;缺陷主要聚焦在中心化问题上。

记得Vatalik早些提出过scalability trilemma的概念,就是区块链系统只能满足去中心化、高安全性及规模化三个特性中的两个,无法同时满足全部。DPoS在某种程度上牺牲了中心化,这也就意味着牺牲了部分规避中心化的审查、自由的参与网络及去中心化的信任等比特币系统最开始所期望带来的特性。然而,从区块链发展的角度,DPoS机制是一种方向,它尝试着去解决一个当下区块链最重要的交易瓶颈问题,为某些可能需要一定规模化交易的区块链应用场景提供了一种半中心化或低中心化解决思路。(这里所指的DPoS尝试是指其应用于区块链平台——也就是作为去中心化操作系统的EOS平台的尝试,在非平台化的具体应用上,DPoS曾在Dan之前的两个项目中部署过,并已分别成功运行了1年和3年)

 *本文为作者原创,转载请注明出处