coinbase 抽奖
coinbase 抽奖是 ZooBC 向节点付酬的方式。每个区块的奖励池由新释放的币、该区块的手续费和长效池的一部分组成,它被切成等额的份额,每一份都在已注册节点之间抽签,中签机会与节点的 参与分数 成正比。产出该区块的节点对它没有任何特殊的权利:节点靠完成分数所衡量的工作来赚取收益。
奖励池
每个区块的奖励池是以下各项之和:
- 它的 coinbase,即发行计划为该区块释放的新 ZBC(供应量与发行);
- 它所含交易的手续费,扣除退还给发送方的多付部分(手续费);
- 长效池的一部分;长效池收取租金和罚金,并在每个区块中支付一点出来(资金池)。
谁持有抽奖券
抽奖券持有者是已成熟、既未缺席也未被暂停的已注册节点:
- 已成熟。 新节点在准入后经过 4 个分数单位并产出一个自己的区块之前,什么也赚不到:在链上节点少于 2,880 个时,这是 2 天(成熟与收益)。
- 未缺席。 跳过了自己轮次的节点在它下一次自己出块之前都算作缺席,其间什么也赚不到(错过轮次、暂停与除名)。
- 未被暂停。 连续错过 4 个轮次后被暂停的节点不持有抽奖券。
仍在队列中等待的节点没有分数,也不持有抽奖券。
抽签
奖励池通过若干次抽签分配:
- 每秒出块时间抽签一次,出块时间以前两个区块之间的间隔计算,该区块的出块者无法选择它;
- 最多 600 次抽签,且抽签次数永远不超过抽奖券持有者的数量;
- 当奖励池中平均每次抽签超过 1 ZBC 时,次数提高到奖励池中每个整 ZBC 抽签一次,同样受上述两项限制。
因此,一条有 11 个抽奖券持有者的链每个区块抽签 11 次,而不是 15 次。在有 1,000 个抽奖券持有者、间隔 15 秒、奖励池为 30 ZBC 的情况下,次数从 15 开始,这会使每次抽签为 2 ZBC,于是次数提高到 30。
每次抽签赢得等额的一份:奖励池除以抽签次数,向下取整到原子单位,余数加到最后一份上。奖金支付到节点的所有者账户,而不是节点密钥(节点的密钥)。
机会跟随分数
每次抽签选中某个节点的概率与其参与分数成正比。两个抽奖券持有者的分数分别为 80% 和 40% 时,前者赢得任何一次抽签的可能性是后者的两倍,而后者仍然可能赢得其中任何一次。各次抽签相互独立,并且是有放回的,因此一个节点可以在同一个区块中赢得多份。
随机数来自一个以标签 zbc-coinbase 和前一区块的种子(区块种子(VRF))为种子的生成器,因此每个节点都算出相同的中签者,并能核查每一笔支付。
长期来看,一个节点的预期收益等于它在所有抽奖券持有者总分数中所占的份额。质押不起任何作用:它让节点进入队列,其本身什么也赚不到。
特殊情况
- 如果没有任何抽奖券持有者的分数可以用来加权,奖励池在抽奖券持有者之间平均分配。
- 如果没有任何节点持有抽奖券,奖励池结转到下一个区块。
- 市场的吃单手续费不属于奖励池:它归该区块的出块者所有,而且是唯一一项付给出块者而非进入抽奖的费用。如果该出块者尚未成熟,吃单手续费则改为进入抽奖(市场与订单)。
它奖励什么
当节点自己的区块携带它向指派的对等节点所转发数据的回执时,分数上升;节点处于缺席状态时,分数下降(参与分数)。由于抽奖跟随分数,而缺席或被暂停的节点根本不持有抽奖券,收益归于持续产出区块并转发数据的节点。只持有质押的节点什么也赚不到。