挖矿

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,其中详细描述了 proof of transfer。

PoX 挖矿是对 Proof-of-Burn (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所述,以将区块奖励分配给矿工。矿工赢得抽签并被授予当前任期的概率将基于一个函数,该函数考虑到在当前抽签之前的区块上总的区块提交支出。

尽管协议没有强制执行最低 BTC 承诺,但在实际中存在由“尘土”限制的下限:基本上,如果交易费用超过所花费输出的价值,则该输出被视为尘土。尘土如何 计算arrow-up-right 取决于许多因素,我们发现每个输出 5,500 satoshi 是一个不错的下限。Stacks 矿工的比特币交易包含两个输出(用于 Proof-of-Transfer),因此建议每个区块至少承诺 11,000 satoshi。

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

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

  • 估算所有矿工承诺的 BTC 总量

Stackers 负责验证和追加新块以及执行矿工任期更替。下一节将解释这如何运作,然后我们将看到此过程如何导致比特币最终性。

Stacks 挖矿的实践情况

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

许多人注意到 Stacks 上看似较少的矿工数量。没有上下文时,这有时会引发怀疑。让我们深入研究 Stacks 上的挖矿如何工作,这样我们就能理解这为什么不会对去中心化构成问题。

Stacks 矿工的功能类似于 L2 系统中的排序器(sequencer),因为他们只负责构建和提议新块,而不是将其追加到链上。但与大多数仅由单一中心化排序器运行的以太坊 L2 不同,Stacks 始终至少有 4-5 名矿工且成员资格开放,任何人都可以加入。

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

这两个角色在区块生产过程中是互补的关系,stackers 大幅降低了矿工对链可能造成的破坏性影响。

矿工无法重组链。在最坏的情况下,所有矿工最多也只能省略(某些类型的)交易,而解决方法只是运行您自己的矿工。

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

chevron-right更多矿工难道不意味着更多竞争,从而意味着更多奖励吗?hashtag

更多矿工意味着更少奖励的原因在于矿工会作出经济理性的行为,而且他们可用的 BTC 并非无限。

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

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

这里有一个具体示例:

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

如果所有矿工都理性行事并且忽略 Stacks 费用,则所有矿工的总支出将少于 1,000,000 Sats(1,000 STX coinbase * 每 STX 1,000 Sats)。

如果这是来自 5 名矿工,那么可能有 10,000 Sats(每笔交易 2,000 Sats)用于比特币费用,990,000 Sats 用于 PoX。

如果有 100 名矿工,则会有 200,000 Sats 用于比特币费用,800,000 Sats 用于 PoX。

这创造了一个自然的经济均衡,其中:

1

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

上述内容描述了可靠性。

2

Stackers 收到最佳的 BTC 奖励

上述内容描述了奖励优化。

3

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

上述内容描述了审查抵抗性。

这一设计是有意为之——通过让 stackers 作为补充的安全担保人并通过 PoX 获得 BTC 奖励,Stacks 在不需要过多数量的矿工单纯竞争区块生产权利的情况下实现了安全性。

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

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

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

  • 70% stacker 门槛签名要求在区块被接受之前确保广泛的共识

这种矿工与 stackers 之间的职责分离正是使 Stacks 在矿工数量较少的情况下依然具有独特安全性的原因。

chevron-right微区块发生了什么?hashtag

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

Nakamoto 不是使用微区块,而是采用一种区块生产结构,以快速节奏创建 Stacks 区块,如此处所述。

最后更新于

这有帮助吗?