挖矿

circle-info

这是一本概念性指南,介绍了挖矿的工作原理。有关如何设置自己的矿工的实际步骤,请参阅在以下位置运行矿工的指南 主网测试网.

矿工任期

在之前的 Stacks 版本(Nakamoto 升级之前),Stacks 矿工会以与比特币区块一对一的节奏挖掘新的 Stacks 区块。

在 Nakamoto 之后,情况不再如此。根据 Nakamoto 规则,矿工改为被选中担任与某个比特币区块对应的任期。在该任期内,矿工构建并提议多个 Stacks 区块(大约每 10 秒),stackers 会批准并追加它们(下一节)。

要被考虑进入任期,矿工必须在比特币区块中包含一个区块提交。如果矿工希望在提交后更新其承诺,可以使用比特币的 Replace-By-Fee。

Coinbase 奖励

矿工会为他们赢得的任期获得 coinbase 奖励。

奖励金额为:

  • 在挖矿的最初 4 年内,每个任期释放 1000 STX

  • 在接下来的 4 年内,每个任期释放 500 STX

  • 在随后 4 年内,每个任期释放 250 STX

  • 从那时起无限期地每个任期释放 125 STX。

这些“减半”与比特币的减半同步。

交易费用

矿工会获得他们所产生的任何区块中已挖交易的 Stacks 手续费。

奖励成熟期

区块奖励和交易费用需要在比特币区块链上经过 100 个区块才能成熟。成功挖出区块后,您的奖励将在约 24 小时后出现在您的 Stacks 账户中。

使用转移证明(proof-of-transfer)进行挖矿

矿工向 两个 地址在每个领导者区块提交中进行承诺。每个地址承诺的金额必须相同。地址从当前参与 stacking 的奖励集合中选出。地址是使用可验证随机函数选择的,确定给定区块的正确两个地址需要监控 Stacks 链。

有关此过程的更详细信息,请阅读 SIP-007arrow-up-right,其中详细描述了转移证明。

PoX 挖矿是燃烧证明(PoB)挖矿的一个修改版本,其中承诺的比特币不是发送到销毁地址,而是转移给参与 stacking 协议的有资格的 STX 持有者。

circle-info

只有当 PoX 矿工将比特币转移给有资格的 STX 代币持有人时,才能收到新铸造的 STX 代币

矿工运行启用挖矿的 Stacks 节点以参与 PoX 机制。该节点实现了 PoX 机制,通过四个关键阶段确保正确的处理和激励:

  • 注册:矿工通过将共识数据发送到网络来注册未来的选举

  • 承诺:已注册的矿工转移比特币以参与选举。承诺的 BTC 被发送给一组参与的 STX 代币持有者

  • 选举:可验证随机函数选择一名矿工担任新的任期,在 Stacks 区块链上写区块

  • 组装:当选矿工通过从内存池提取交易来写入新块,并以新 STX 代币的形式收集奖励

挖掘下一个区块的概率

被选中挖掘下一个区块的矿工取决于矿工所发送的 BTC 数量,即转移或销毁的数量。

矿工挖掘下一个区块的概率使用一种 Assumed Total Commitment with Carryforward (ATC-C) 的变体来确定,这是一种 MEV 缓解策略,描述于 本文件arrow-up-right 中,用于将区块奖励分配给矿工。矿工赢得抽签并被授予当前任期的概率将基于一个函数,该函数考虑了在当前抽签之前的区块提交总支出。

您可以在 SIP-021 的 MEV 部分arrow-up-right.

中阅读更多相关内容。虽然协议没有强制执行最低 BTC 承诺,但在实践中存在由 “尘埃”arrow-up-right所限制的下限:基本上,如果一笔交易的费用超过了所花费输出的价值,则被视为尘埃。尘埃如何被 计算arrow-up-right 取决于多个因素,我们发现每个 输出arrow-up-right5,500 satoshi 是一个不错的下限。Stacks 矿工的比特币交易包含两个输出(用于转移证明),因此建议每个区块至少承诺 11,000 satoshi。

要计算要发送的 BTC 数量,矿工应当:

  • 猜测下一天(100 个区块之后)BTC/STX 的价格

  • 猜测所有矿工承诺的 BTC 总额

Stackers 负责验证和追加新块以及执行矿工任期变更。下一节将解释其工作原理,然后我们将看到该过程如何导致比特币确定性(finality)。

Stacks 挖矿的实践

如果您查看 SIgnal21 的挖矿仪表盘arrow-up-right,您可以查看有关 Stacks 网络挖矿的一些有趣数据,包括每个区块花费的 BTC、每个区块获得的 STX、链历史上的矿工总数以及任意区块的矿工数量。

许多人注意到 Stacks 上看似较少的矿工数量。没有上下文,这有时会引起疑问。让我们深入了解 Stacks 上的挖矿工作方式,这样我们就能理解为什么这对去中心化不是问题。

Stacks 矿工的功能类似于 L2 系统中的序列器,负责构建和提议新块,而不是将它们追加到链上。但与大多数仅有单一集中式序列器的以太坊 L2 不同,Stacks 始终至少有 4-5 名矿工,并且会员是开放的,任何人都可以加入。

需要注意的是,在 Stacks 的区块生产过程中有两个主要参与方:矿工和 stackers。

这两个角色在区块生产过程中是互补的,stackers 大大减少了矿工对链可能造成的任何破坏性影响。

矿工无法重组链。在最糟糕的情况下,所有矿工所能做的就是省略(某些类型的)交易,而解决这个问题所需的只是运行您自己的矿工。

此外,网络上更多的矿工意味着 stackers 可获得的 BTC 奖励更少,因为矿工将不得不把更多资金花在比特币 L1 手续费上,而不是发送给 stackers。

circle-info

更多的矿工难道不会意味着更多的竞争,从而带来更多的奖励吗?

更多矿工导致奖励减少的原因是矿工会做出经济理性的行为,而且他们可用的 BTC 并非无限。

矿工在支付他们的 PoX 承诺以及比特币费用以争取赢得 coinbase(1000 STX)和任期费用。如果矿工数量更多,他们每人支付的将更少,因为他们获胜的概率更低。他们不能无限增加支付的 BTC,因为在某个点上他们将永远无法盈利,所以他们为争取赢得任期而能花费的 BTC 有一个上限。

随着他们支付的减少,比特币手续费在他们的开支中所占的比重变得更大,这也降低了他们赢得任期的几率。

这里有一个具体的例子:

假设 Stacks 的交易价格为每 STX 1,000 satoshi。

如果所有人都按理性行事并且忽略 Stacks 费用,那么所有矿工的总支出将小于 1,000,000 satoshi(1,000 STX coinbase * 1000 satoshi/STX)。

如果有 5 个矿工,那么可能有 10,000 satoshi(每笔交易 2,000 satoshi)用于比特币手续费,990,000 satoshi 用于 PoX。

如果有 100 个矿工,那么将有 200,000 satoshi 用于比特币手续费,800,000 satoshi 用于 PoX。

这创造了一个自然的经济均衡,具体为:

1

有足够的矿工参与以确保区块可靠地产生

如上所述的内容,描述了可靠性。

2

Stackers 收到最优的 BTC 奖励

如上所述的内容,描述了奖励优化。

3

网络在没有不必要挖矿竞争的情况下保持抗审查能力

如上所述的内容,描述了抗审查能力。

这种设计是有意为之——通过让 stackers 作为互补的安全担保者并通过 PoX 获得 BTC 奖励,Stacks 达成了安全性,而无需过多数量的矿工仅为赢得区块生产权而竞争。

与仅由矿工单方面决定规范链的其他链不同,Stacks 的两方系统提供了更强的保证:

  • 矿工不能强制引入无效的交易或区块(stackers 不会为其签名,即使签了,节点也不会接受)

  • 没有矿工可以单方面重组链(stackers 控制链的确定性)

  • 70% 的 stacker 阈值签名要求在区块被接受之前确保了广泛的一致性

矿工与 stackers 之间的这种职责分离使得即便矿工数量较少,Stacks 仍然具有独特的安全性。

微区块怎么办?

微区块是之前版本 Stacks 的遗留功能,现在已不存在。它们最初是为提高交易吞吐量而创建的,但在没有 Nakamoto 功能的情况下,它们在实践中从未起作用。

Nakamoto 使用了一种区块生产结构,如此处所述,以快速节奏创建 Stacks 区块,取代了微区块。

最后更新于

这有帮助吗?