EOS 中的超级节点,指的是那些收集交易信息并打包到区块里的节点。在 EOS 白皮书中这些节点也被称为“区块生产者(Block Producers, BPs)”。
EOS 自发布时起就是区块链领域的明星级项目。这是因为其白皮书中承诺了许多诱人特性,如百万级 TPS、无手续费等。DPOS 算法正是实现这些特性的基础之一。
按照 EOS 白皮书的计划,实现 DPOS 算法需要有 21 个超级节点,以及 100 个备用节点。
可以看出超级节点决定 EOS 整个生态系统的稳定。尽管超级节点的数量是在白皮书中约定的,但是并不是永远不变的。
EOS 是一个社区驱动的项目,因此当超级节点的数量不能够满足项目发展时,社区可以发起投票来增加节点数量。
不同中心化系统会遭受 DDOS 威胁,在 EOS 网络中采取了“代币即资源”策略来防止 DDOS。
在 EOS 网络中,使用任何网络带宽资源都需要支付 EOS 代币。
因此能够发起一次 DDOS 攻击的攻击者需要囤积大量的 EOS 代币,而拥有大量代币后对 EOS 节点进行攻击只会损害自己的利益。不顾及自己利益而攻击 EOS 节点是一个小概率事件。
另外,运营 EOS 节点的团队都拥有经验丰富的运维人员,也会采取流量清洗、防火墙策略等防御 DDOS 攻击。
02
超级节点选举
image.png
超级节点的选举过程与现实中的选举过程类似,只不过在超级节点选举过程中是每个代币一票而非一人一票。
持币人会通过 EOS 开发的智能合约在投票系统中完成投票。
根据 EOS 源码中投票系统部分的代码,能够看出一些投票机制。
eosio.system:kproducer 是选中候选人的函数。该函数参数为 account: 投票的人账户 producer: 被选举的人,或者是反对的人 vote: 真表示选,否表示反对
eosio.system::stakevote 用于给候选人投票的函数。函数参数为 account:候选人的账户 amount:用于投票的代币数量
eosio.system::etproxy 设置账户代理,就是委托另一个账户替自己投票,被委托人的影响力增加。 account: 要设置代理的账户 proxy: 自己设置的代理账户
由此可以看出,持币人可以选择候选人投票,也可以将代币委托给其他人代投。
按照社区信息,投票将会在钱包中进行,代币持有人可以设置代币锁定期内的候选人账户和投票数量。
这样,尽管每隔 63s 就会进行一次超级节点选举,代币持有人也不需要每次都手动进行投票。
3月18号,Dan Larimer 在开发群中宣布,每轮选举前参与选举的代币的锁定期已经被修改为 3 天而非原定的 6 个月。
锁定期的 3 天内,持币人无法增加或减少参与选举的代币数量,但是可以调整投给每个候选节点的代币数量。
目前符合参选条件的团队可以在 eosgo 网站上找到,持有 EOS 的朋友可以先去了解下各团队的实力和运营计划。
在每轮产生区块前,EOS 系统会统计各个候选节点获得的代币数量。其中获得代币数量最多的 21 个节点将被选定为超级节点,次多的 100 个节点被选为备用节点。
近期争议较大的地方在于,候选节点要不要给持币人提供分红以换取他们的投票?
目前官方的态度是严禁以任何形式的分红拉票行为。有很多人都提到投票人积极性不高的问题,但 EOS 官方认为少一点投票人也比分红换取投票要好。
持有 EOS 的人有很多选择,可以锁仓等待时机,可以投票参与节点建设,可以将代币委托给 EOS 上的项目作为投资参与 EOS 生态建设,可以参与 EOS 交易。
EOS 官方希望持币人作为一个好投票人,是为了参与节点建设,严格审核候选人的资料,最终选出真正合格的节点,而不是因为分红等利益承诺来投票。
03
超级节点的收益
超级节点有什么收益?
成为超级节点获得的直接收益来自区块生产奖励。
简单介绍下 EOS 中区块产生的过程。
可以将超级节点理解为 POW 系统中的矿工。
EOS 的区块生产过程和比特币系统类似,都是收集网络中的交易信息打包为区块。
不同之处在于 EOS 中的超级节点不需要完成工作量证明可以直接广播区块到网络中,让其他节点进行验证。
EOS 系统中,每产生 126 个区块为一个区块周期,即每个超级节点在一个区块周期中应该产生 6 个区块。
区块周期内,EOS 系统设置了每隔 0.5 秒产生一个区块。
每个区块周期开始时,EOS 会根据代币投票结果选出 21 个超级节点。
然后这 21 个超级节点会约定一个区块产生顺序,这些节点按照这个顺序每隔 0.5 秒产生一个区块。
如果一个节点在指定的时间内没有产生出一个区块,那么这个区块就会被跳过,并在区块链上留下时间戳间隔。
一个节点在最近的 24 个小时内都没有产生区块,那么它将被移出超级节点的候选名单。
一旦一个节点完成了区块生产并通过其他节点的验证,它就可以将这个区块添加到区块链上,并获得新的代币作为出块奖励。
有意思的是,白皮书中规定所有超级节点的期望奖励的中位数决定了系统最终会产生多少新代币。
而且 EOS 系统有一个硬性的条件,即每年产生的新代币数量不能超过代币总量的 5%。
也有评论称新产生的代币中 50% 归 21 个超级节点,另外 50% 归其余 100 个候补节点。
50% 这个数据还未有官方的确认,但是在 DAWN-446 提议中 Dan Larimer 认为应该将生产奖励分为三部分,分别作为超级节点区块生产奖励,备用节点奖励和新提案奖励,具体比例尚不清楚。
更重要的是,成为超级节点所获得的社区声望价值是无法估量的。
正如有大佬所说:
如果 EOS 未来成为了区块链操作系统级别的存在,成为超级节点本身就是巨大的荣誉,这与有多大的收益完全没有关系。
深度参与项目生态建设,孵化出一批杀手级应用,才能保证 EOS 未来的繁荣。
如下图是参与竞选的 eosnewyork 团队发布的节点收益使用计划,其中几乎涵盖了生态建设的方方面面。