我们已经迎来了 CKB 的再一次更新(v0.15.0),这次更新会对矿工有一些影响 ~ 一句话描述影响:当矿工挖出高度为 N 的区块时,出块奖励会在 Block N+11 通过 Cellbase Tx 发放。大家出块的时候可千万别着急哦,等几分钟奖励就到手!
脑壳疼地读了 CKB 的共识机制以及目前的出块奖励的设置,下文抛砖引玉地讨论下 CKB 的出块奖励,有任何问题欢迎大家指出讨论~ 简而言之,目前 CKB 的出块奖励可以区分为 3 个部分,Base Reward、Proposal Reward 、Commit Reward,未来还会将与经济模型相关的增发奖励增加到出块奖励中。这三部分的奖励是遵循 CKB 共识机制的【两步交易确认】与【动态难度调节机制】而最终确定的。
Base Reward - 动态难度调整机制
Base Reward 的发放与动态难度调节机制密切相关。Base Reward 与比特币的 Block Reward 类似,属于最新铸币。不同于 Bitcoin 固定数量的发放数量以及固定的2016个区块难度调整。“CKB 共识协议修改了Nakamoto 共识难度调整机制,以便: (1) 自私挖矿不再有利可图; (2) 根据网络的带宽和延迟动态调整吞吐量。实现目标1, 我们的协议在计算上一个时期的调整后的哈希率估计时包含所有块而不是仅主链, ,其确定每个奖励单元的下一个时期所需的计算工作量. 实现目标2, 我们的协议计算下一个时期中具有最后一个时期的孤儿率的主链块的数量。然后通过组合这些结果来计算块奖励和目标。”(Copy 自 CKB 共识协议译稿 )
通过上述方法(在共识白皮书有详尽的公式)可以获得下个周期的周期长度(Epoch Length)与周期总奖励(Epoch Reward)。通过这两个数据可以得到周期内每一个的出块奖励,其计算方法为:一个 epoch 的奖励是固定的 R,如果这个 Epoch 有 L 个 blocks,前 R%L 个 block 的 block reward 是 floor(R/L) + 1,后 L - (R%L) 个 block 的 block reward 是 floor(R/L)。简单来说,假设某个 Epoch Reward 为 100 shannon,Epoch Length 为11,计算 100/11 取整数为 9 ,余数为1。余数以每个区块 1 shannon 的方式从该 Epoch 的第一个区块进行分发,直到分完为止。因此,由于余数仅为1,第一个 Base Reward 为[9+1]shannon,其他区块的 Base Reward 为整数 9 shannon。若总奖励为107 shannon,则余数为8,该 Epoch 的前8个区块的矿工就能够比后面的矿工多分到 1 shannon 。
Commit Reward & Proposal Reward - 两步交易确认
两部交易确认是为了消除区块传播瓶颈,共识协议的分析如下:“当区块间隔缩短时,区块传播延迟的瓶颈就是传递新的交易,这些新交易是在生成最新块时,尚未完成广播到网络的新广播交易。没有收到这些交易的节点必须在将块转发给其他节点之前请求它们。由此产生的延迟不仅限制了区块链的性能,而且还可以在自私挖矿攻击中被利用,攻击者故意在其块中嵌入新的交易,希望较长的传播延迟使他们有机会找到下一个块来获取更多奖励。与此研究结果不同,我们的协议通过将NC的交易确认分解为两个单独的步骤来消除瓶颈:提案和提交。一笔交易如果将其截断的散列即txid发布到区块或叔块(由区块引用的孤立块)中,则打包到提案区。新提案的交易既不影响区块有效性也不影响区块的传播,因为节点可以在接收这些事务之前已经开始将区块传送到其他节点。如果交易在提案后的几个的周期中出现在提交区中,则打包该交易。这个两步确认规则既消除了块传播瓶颈,因为新块中的已提交事务已被所有节点接收并在提交时进行验证。新规则还通过限制攻击时间周期有效地减轻了自私挖矿攻击。”(Copy 自 CKB 共识协议译稿 )
从两步交易确认的原则出来,一笔 CKB 交易的生命周期是:1)用户发送交易;2)交易进入交易池;3)交易进入区块结构的提案区(Proposal zone);4)交易进入区块结构的提交区(Commitment zone)(既一般意义的交易打包进入区块)。针对一笔非 Cellbase 交易,最早将交易放置入提案区的矿工将获得该交易的交易费的 40%,而将交易放置入提交区的矿工将获得该交易的交易费的 60%。
在 v0.15.0 发布的版本中,Block N Proposal 的交易只能在之后的2到10个区块之间进入提交区并最终在区块链中确定。因此,Block N Proposal 的收入只有在 Block N+11 才能够真正算清:在 Block N+2 至 Block N+10 所 Commit 的交易中,找到 Block N 首次 Proposal 的交易并获得其交易费的 40%。这解释了为什么 Block N 的挖矿收入最终要在 Block N+11 发放,因为之前是无法计算出来!
Commit Reward 非常易于理解:既 Block N 所打包进入提交区(Commitment zone)的交易的交易费的60%。其他的40%用于支付之前区块 Proposal 这些交易的工作。
最终,Block N 的矿工将获得 Base Reward、Proposal Reward、Commit Reward,并通过一笔 Cellbase Tx 获得这笔收入。