在 EOS 生态中,投票与 stake 是并不完全一致的概念,stake 首先换取的是 CPU 和 NET 的资源,在 EOS 生态里面每一笔交易都需要占用一定的 CPU 和 NET,因此大部分散户将持币质押是为了换取相应的主网资源来满足日常需求。

目前 EOS 节点返利给投票者依然被视为贿选行为,几乎没有节点公开进行返利,所以 EOS 持币者想要像其他 PoS 公链持币者一样参与 staking 挖矿还需要观察 EOS 社区的舆论风向。

原文标题:《PoS 项目分析(一):EOS》
作者:Rudy 卢地,InfPool 无限矿池合伙人

PoS 共识机制的发展史有太多可写,因为其衍生出来的变种实在太多,各个项目的设计者们总有自己的奇思妙想。之前已经有一篇关于 PoS 发展史,但是各项目的特点我觉得还是有必要单独好好写一写,毕竟 staking 质押挖矿是一件长期赚利的事情,看好一个项目而不做 staking 是愚蠢的,而对一个项目的机制没有充分的了解就买币做 staking 更是盲目的。

Staking 火热,但 EOS 为何还不能参与?

PoS 项目分析系列的开篇当然要写 EOS,这个 PoS 项目中如今市值第一的老大哥(ETH 升级成 PoS 乐观估计还要一年),当年超级节点竞选时也是风头无两,其共识机制、投票机制的设计,为之后的 PoS 项目均产生了极强的影响。

EOS 的全称为 Enterprise Operation System,直译就是为商用分布式应用设计的一款区块链操作系统,为了达到其商用的愿景,EOS 通过 DPoS 的方式解决区块链之前数据延迟、吞吐量低的问题,使得 EOS 可以达到每秒上千级别的处理量,在经过 DPoS 与 BFT 机制结合后,目前出块速度已达 0.5s 一个块。

Staking 火热,但 EOS 为何还不能参与?

EOS 共识机制:DPoS+BFT

EOS 共识算法经历过一次升级,最早采用的是纯粹的 DPoS,就如同其创始人 Daniel Larimer(BM) 在他的前两个项目 Bitshares 和 Steem 中采用的共识机制一样,用户以抵押持币的方式获得投票权,投票给节点帮忙验证交易并出块。

BM 根据 Bitshares 的经验,将参与验证出块的超级节点数量定为 21 个之少,他认为较少的节点数量有助于社区对每个节点都做好监督,而 Bitshares 的持币人就没有足够的注意力去审视他们的 100 位委托人,造成决策力的削弱。当然,数量较少的超级节点也进一步引起了外界对 EOS 去中心化程度低的诟病。

EOS 升级后的共识机制一般被称为 BFT-DPoS 机制,融入了拜占庭容错算法,也即出块节点产生区块后就直接发给所有其他节点,超过 2/3 的节点验证并签名返回给出块节点后就可以确认此区块,区块确认即代表着该区块不会再分叉,也即交易得到确认。

这次共识机制的改变为 EOS 的性能带来了很好的效果。共识机制主要影响四个问题:

  • 谁来出块?
  • 多快产生一个块?
  • 如何验证区块?
  • 多快可以确认区块?

在 BFT-DPoS 机制下,投票选出的 21 个超级节点根据地理位置传播距离最短的次序(避免网络传输时间过长)顺次出块,每 0.5s 产生一个块,每个节点生产 6 个区块,21 个节点出块完毕为一轮。从产生区块到其他节点签名验证返回并确认,需要的时间不会超过 1s,也即意味着不到 1s 的时间交易即可得到确认,不会有分叉、双花等问题。

因此,EOS 是一条不会分叉、TPS 较高、交易确认速度极快的公链。顺带一提,1s 内区块确认也几乎是拜占庭容错算法机制下的最快速度量级,想达到更快的速度除非有更好的共识解决办法。

节点与奖励机制

在 EOS 的机制中,持币人投票给超级节点候选人先需要将持有的 EOS 质押换取投票权,若要将质押的 EOS 取回则需要 3 天的锁定期。每一枚通证质押换取的投票权最多可以给 30 位超级节点候选人投票,且一枚通证只能为一个节点投票一次,获得票数最多的前 21 名候选人将成为超级节点。

Staking 火热,但 EOS 为何还不能参与?数据源自 eosauthority.com/voting

截止到 2019 年 8 月 5 日,根据 EOSAuthority 统计,实际投票数超过 3.16 亿,在逾 10 亿的流通总盘中投票比例达到了 30.9%,而总 staking 比例为 48.23%。

EOS 机制中设计的通胀率为 5%,但只有 1% 用来奖励给节点(另外 4% 留作他用,但还没有想好做什么用,所以几个月前已经全部销毁过一次)。目前 EOS 的总盘大致有 10 亿,增发量可以粗略以 1 千万计算。

在这 1% 的奖励中,25% 将会作为出块奖励分发给超级节点,其余的 75% 作为投票奖励由超级节点和备选节点根据得票比例进行分配,前提是备选节点获得每天至少 100EOS 的收益。根据 EOSbeijing 的统计,目前只有 68 个备选节点可以达到这个门槛。

Staking 火热,但 EOS 为何还不能参与?图片源自 InfStones

Staking 火热,但 EOS 为何还不能参与?

EOS 中的投票与 staking

在 EOS 投票率的图中我看可以看到有投票率与 stake 率两个比率,两者的差别意味着在 EOS 生态中投票与 stake 是并不完全一致的概念,stake 首先换取的是 CPU 和 NET 的资源,在 EOS 生态里面每一笔交易都需要占用一定的 CPU 和 NET,因此大部分散户将持币质押是为了换取相应的主网资源来满足日常需求。

不同于其他 PoS 公链,目前在 EOS 社区中,节点返利给投票者依然被视为“贿选”,所以散户将币质押是不会得到通胀奖励的。目前持币者通过 stake 换取主网资源后,更有可能将资源租赁给需要大量主网资源的 DApp 开发者来换取一些经济利益。

总结

EOS 采用 BFT-DPoS 共识机制,对 PBFT 算法与 DPoS 共识机制完成了较好的融合,0.5s 出一个块,1s 内可完成区块确认,不会产生分叉,TPS 较高。

EOS 的投票总量仍在上涨中,投票比例已经达到较高的水平,由于用于奖励给节点的通胀比例仅为 1%,计算下来备选节点每一票的年化收益率仅为 1.5% 左右。但是由于 EOS 较高的价格,收益仍然相当可观,看好 EOS 未来发展的群体基数也较大,这也造成了 EOS 质押比例居高不下。

但目前 EOS 节点返利给投票者依然被视为贿选行为,几乎没有节点公开进行返利,所以 EOS 持币者想要像其他 PoS 公链持币者一样参与 staking 挖矿还需要观察 EOS 社区的舆论风向。