Conflux 进阶课 | 比特币、以太坊的矿工激励模型

                                     Conflux 进阶课

在这里,Conflux 团队成员将敞开心扉,权威解析 Conflux 网络最新进展、生态构建进程等信息,没有八卦、没有小道消息,绝对干货、绝对知无不言,想要 360° 无死角了解 Conflux,来这里就够了!

上期说到 Conflux 经济模型的目标是使得生态中的各种角色获得有效激励同时使得链上有限的计算资源和存储资源得到更合理的分配。

在初始阶段,Conflux 将通过直接激励直接建设者和生态建设者 ,实现生态冷启动的同时使其持续完善生态的基础建设,为整个生态项目打好地基。

在运行阶段,Conflux 将会持续激励系统的维护者,推动系统实现升级;激励生态的建设者,促进社区用户持续为 Conflux 生态创造价值;同时通过市场化系统资源,促进 Conflux 的系统资源实现自适应配置。

POW 系统的主要维护者——矿工,主要负责验证并记录系统中的交易,是保障系统稳定的重要角色。矿工激励是矿工收入的主要来源,所以矿工激励模型的设计直接影响系统运行的可持续性。

那么主流公链是怎么设计矿工激励模型的呢?

比特币/以太坊的矿工激励模型

对于所有公有链来说,特别是对于基于 POW 的公链来说,设计一套合理的激励机制来鼓励所有参与者遵守规则,是至关重要的事。比特币的激励机制设计也是其获得成功的核心因素之一。我们常说,“比特币安全性的基础是超过半数的矿工是好人”。但是现实世界里矿工都是逐利的,不是“好人”也不天然具备“诚实”的美德。之所以大部分比特币矿工表现得都很老实,唯一的理由就是在比特币的激励机制下,“做个好人”能给他们自己带来最高的收益。

按照比特币的激励机制,矿工每挖出一个最长链上的区块,就可以获得一定数额的比特币作为区块奖励。最开始这个奖励数额是 50 BTC, 之后每挖出 21 万个区块,比特币的区块奖励就减半。截止 2020 年 5 月 12 日,比特币已经历了第三次区块奖励减半,目前比特币的区块奖励是 6.25 BTC。

除了区块奖励,比特币矿工的另一个收入来源是交易费。每个用户在发起一笔交易时,需要支付一笔交易费。每个比特币区块中所有的交易费会付给挖出这一区块的矿工。在比特币的设计中,早期的交易不多,区块奖励是矿工主要的收入来源;随着时间推移,当比特币的用户越来越多,区块奖励也经过多次减半后,交易费将取代区块奖励成为矿工收入的主要部分。例如,在比特币区块 500439 中,交易费超过 13 BTC,高于该区块的区块奖励 12.5 BTC。

以太坊的矿工收入主要也包含区块奖励与交易费两部分,但与比特币相比有几处不同:

以太坊的基础区块奖励没有比特币的定期减半计划。在初始阶段,以太坊的基础区块奖励是 5 ETH。在 2017 年名为拜占庭的硬分叉中,649 号提案被激活,基础区块奖励调整为 3 ETH。随后,1234 号提案将基础奖励进一步降低至 2 ETH。

为了给智能合约消耗的计算资源定价,用户在以太坊中发起交易时,不直接指定交易费,而是指定一个交易费单价,被称为燃料价格(gas price)。交易实际执行时按照计算量的多寡消耗燃料,燃料用量乘以燃料价格就是以太坊最终向每笔交易收取的交易费。

以太坊出块速度较快,所以会出现更多分叉。为了给矿工提供更好的挖矿体验,以太坊引入了“叔块”的概念。每个区块除了选择自己的父亲区块,还可以选择最多两个“叔块”,每选择一个叔块可额外获得基础区块奖励 1/32 的奖励。而被主链区块选中的叔块,其中的交易不会被执行(不为系统共享吞吐量),但挖到该块的矿工也可以获得一定的奖励,具体数值是:

接下来,我们以 Conflux 共识机制为例,为大家分析一下树图结构下的 POW 公链,在激励机制设计上面临的新挑战,以及我们的对策。

树图结构为什么不能用比特币的激励机制?

Conflux 保留所有区块的设计,不仅是为了充分利用网络带宽最大化交易吞吐率,也是为了阻止攻击者通过操纵树图结构丢弃诚实矿工的区块。在这种情况下,如果我们采用比特币或以太坊的规则,每一个区块的区块奖励是一个固定值,将会面临一个问题——我们称之为 “零成本攻击”的问题。

考虑在比特币网络中,有一个攻击者尝试挖一条分叉链,以此来与主链(最长链)竞争。如果攻击者成功,他当然可以获得分叉链上所有的区块奖励;但是如果竞争失败,整个分叉链会被丢弃,失败的攻击者拿不到任何奖励。在这个过程中,攻击者消耗了大量算力,付出了巨额的电费,还需要承担攻击失败情况下血本无归的风险。所以,在比特币网络发起这样的攻击需要付出的成本是很可观的。

假如 Conflux 也采用比特币的固定区块奖励,则一个攻击者在 Conflux 中发起类似的分叉链攻击失败后依旧可以拿到和正常挖矿相当的区块奖励。因为 Conflux 会保留所有的区块,而在这种情况下固定的区块奖励意味着失败的攻击者不会受到惩罚。

从结果上来看,失败的攻击者当然无法改变交易顺序或者实现双花,但这并不意味着他们没有损害系统的安全性和稳定性。首先,如果攻击未遂者都不会受到惩罚,矿工也就没有太强的动机严格遵守共识协议规定的出块和引用规则,能偷懒的地方一定会偷懒,最终可能导致遵守协议的算力达不到保证系统安全性所要求的比例。其次,失败的攻击虽然不会危及已确认交易的安全性,但是仍会影响树图结构的收敛性,直接的后果就是攻击发生期间的交易需要更久的时间才能被确认,这段时间的树图结构也会变得更加复杂而难以维护。

我们不希望看到,由于激励机制没有对未遂的攻击行为做出任何惩罚,导致矿工随意违反共识规则甚至尝试发起攻击。所以,我们在设计激励机制的时候充分考虑了如何检测并惩罚疑似“未遂攻击”的行为,最终采用的解决方式是惩罚传播不及时的区块——无论这个区块是生成以后没有被及时广播,还是生成的时候故意无视了一部分已经收到的区块。

下期,我们将为大家介绍 Conflux 树图结构下的矿工激励机制会如何设计,与经典的链式结构的 POW 区块链相比又有怎样的不同。