# Stacking：STX 持有者如何贡献

<div data-with-frame="true"><figure><img src="/files/c627827f943a53ae3e0ffa7c8bb58c4a4bade31f" alt=""><figcaption></figcaption></figure></div>

{% hint style="info" %}
**构建者资源**

* 所有 stacking 操作都发生在 PoX 合约实现中， [这里](https://explorer.hiro.so/txid/0xc6d6e6ec82cabb2d7a9f4b85fcc298778d01186cabaee01685537aca390cdb46).
* 要开始 stacking STX， [这里](/operate/stacking-stx.md).
  {% endhint %}

#### 全局概览

* Stacking 会锁定 STX，以帮助保护网络并赚取 BTC 奖励。
* 它是转移证明（PoX）的一部分，在其中矿工花费 BTC，而这些 BTC 会分配给 Stackers。
* STX 会按固定周期锁定，在此期间不能移动。
* 直接 Stack 有最低门槛，但用户可以委托给池。
* 该模型将矿工和持有者的激励保持一致，同时以比特币作为锚定。

***

## 简介

Stacking 会通过将 Stacks（STX）代币持有者的代币锁定一段时间，并让他们以共识关键签名者的身份参与，从而为网络提供有价值的服务，并以比特币奖励他们。如果你不熟悉 Stacks 中签名者的概念，请务必查看 [签名部分](/learn/zh/block-production/signing.md)。本文档是对 stacking 及其工作方式的概念性概述。

{% hint style="info" %}
请注意，SIP-007 描述的是 Nakamoto 之前的 stacking。虽然大部分功能保持不变，但现在 stackers 还多了一项责任，即按照 [SIP-021](https://github.com/stacksgov/sips/blob/feat/sip-021-nakamoto/sips/sip-021/sip-021-nakamoto.md).
{% endhint %}

`pox-4.clar` 是 stacking 合约。如果你有兴趣尝试包括状态变更、单独 stacking 和池 stacking 在内的转移证明用例，所需的所有函数都可以在已部署的合约中找到：

* 测试网： [ST000000000000000000002AMW42H.pox-4](https://explorer.hiro.so/txid/0xfba7f786fae1953fa56f4e56aeac053575fd48bf72360523366d739e96613da3?chain=testnet)
* 主网： [SP000000000000000000002Q6VF78.pox-4](https://explorer.hiro.so/txid/0xc6d6e6ec82cabb2d7a9f4b85fcc298778d01186cabaee01685537aca390cdb46?chain=mainnet)

<details>

<summary>Stacking 与 Staking</summary>

虽然在 Stacks 网络上进行 stacking 在概念上可能与 staking 类似，但 Stacks 不是 PoS 网络，而且两者有几个关键差异。

Stacks 中的 stacking 与 PoS 网络中的 staking 之间有两个主要区别。

**收益以燃烧链代币生成**

在 staking 中，用户锁定一种代币，并以相同代币获得收益。而在 stacking 中，用户锁定一种代币（STX），并以“燃烧链”代币（BTC）获得收益，而不是以被锁定的同一种代币。 在 PoX 中，收益来自有限的外部来源（来自 Stacks 矿工的比特币存款）。在 PoS 中，收益来自货币自身的发行计划。

这些发行率是如何设定的？在以太坊中，发行率由网络使用情况决定。以太坊的目标是创造通缩型货币供应，因此发行率会根据网络使用情况而定。要使以太坊交易被视为有效，它必须包含一个在交易执行期间被销毁的基础费用。 [发行率由算法决定](https://ethereum.org/en/roadmap/merge/issuance/#post-merge) 会按区块逐块变化，取决于有多少 ETH 因这些基础费用加上正常 gas 费用而被销毁。

Stacking 不会在相同代币中生成收益，因此无需为 stacking 奖励发行新的 STX。Stacking 收益需要外部代币（BTC）的输入。Stacks 确实有发行率并会生成新的 STX 代币，但该过程与 stacking 以及 stacking 收益机制是分开的。

**无削减惩罚**

尽管 stackers 通过担任签名者在 Stacks 中履行了共识关键角色，但 PoX（转移证明）中没有削减惩罚的概念。

相反，如果 stackers 没有履行签名者职责，他们只会无法解锁自己的 STX 代币，并且不会收到 BTC 奖励。

Stacking 是一种内置操作，是“转移证明”（PoX）机制所必需的。PoX 机制由 Stacks 网络上的每个矿工执行。

</details>

#### 锁定与解锁 STX

当 STX 代币被“锁定”时，不会发生 STX 代币转移。锁定 STX 代币是非托管的，STX 代币仍保留在你的钱包中。当你发起 stacking 交易时，这些代币会在协议层面被锁定并且不可花费，但它们并不会离开 stacker 的钱包。

在锁定期结束时，它们会自动解锁（在协议层面可再次花费）。这一过程是隐式发生的；没有直接的解锁交易。

***

## Stacking 流程拆解

### 单独 Stacking 流程

单独 stacking 遵循通用的 stacking 流程。你自己 stack 自己的 STX 代币，并运行自己的 signer。要以单独 stacker 的身份运行，你必须拥有最低数量的 STX 代币。这个最低数量是动态的，可以通过查看 [API 的 pox 端点](https://api.testnet.hiro.so/v2/pox) 中的 `min_threshold_ustx` 字段找到。

<div data-with-frame="true"><figure><img src="/files/c3e43e47f59dd81b1572b358646e4bdd220d8bdc" alt=""><figcaption></figcaption></figure></div>

{% stepper %}
{% step %}
**发起 API 调用以获取即将到来的奖励周期的详细信息**

查询网络以了解即将到来的周期参数和时间安排。
{% endstep %}

{% step %}
**确认某个特定 Stacks 账户的资格**

验证该账户满足最低要求并有资格参与。
{% endstep %}

{% step %}
**确认 BTC 奖励地址和锁定时长**

指定用于接收支付的比特币地址，并输入所需的锁定期限。
{% endstep %}

{% step %}
**广播 stacking 交易以锁定 STX**

该交易会被广播，STX 代币将被锁定。这必须在下一个奖励周期的准备阶段之前发生（即当前奖励阶段最后 100 个比特币区块）。
{% endstep %}

{% step %}
**奖励周期执行并发送 BTC 奖励**

stacking 机制会执行奖励周期，并将奖励发送到已配置的 BTC 奖励地址。
{% endstep %}

{% step %}
**在锁定期间监控解锁时间和奖励**

在锁定期内，你可以获取有关解锁时间、预期奖励等详细信息。
{% endstep %}

{% step %}
**代币在锁定期结束后释放**

一旦锁定期结束，代币就会再次变为可花费。
{% endstep %}

{% step %}
**显示奖励历史**

显示以前奖励周期的收益等历史详情。
{% endstep %}
{% endstepper %}

{% hint style="info" %}
请记住，奖励周期的目标时长约为 2 周。该时长基于比特币网络的目标出块时间（10 分钟），并且有时可能会更长，原因是 [确认时间差异](https://www.blockchain.com/charts/median-confirmation-time) 来自比特币网络。
{% endhint %}

### 委托（池）Stacking 流程

<div data-with-frame="true"><figure><img src="/files/589cf7d37d772c3d1ca0f6a22a3eae78db427fef" alt=""><figcaption></figcaption></figure></div>

* 在代表代币持有者进行 stacking 之前，委托者必须获得账户所有者的授权。授权会限制委托者可 stack 的最大数量；该最大值可以设得高于可用资金。一个账户只能关联一个委托者。
* 账户设置委托关系。它们可以选择性地限制必须用于支付的比特币奖励地址，并指定一个到期的 burn block 高度以限制委托期限。
* 委托者会从不同账户中锁定 STX（“聚合阶段”），直到达到参与 stacking 所需的最低数量。
* 一旦委托者锁定了足够的 STX，他们就可以最终确认并承诺参与下一个奖励周期。
* 某些委托关系可能允许 STX 持有者直接从矿工那里接收支付。
* 委托可以根据到期规则自动终止，或通过主动撤销委托权利来终止。

***

## 代币持有者资格

Stacks（STX）代币持有者不会自动获得 stacking 奖励。要参与，他们必须：

* 在奖励周期开始前承诺参与
* 至少承诺最低数量的 STX 代币以确保获得一个奖励席位，或者与他人一起 pooling 以达到最低要求
* 将 STX 代币锁定一段指定的时间
* 提供一个受支持的比特币地址以接收奖励
* 维护其 signer 软件（如果他们运行 signer）

<div data-with-frame="true"><figure><img src="/files/b40204cf234b754d833d2ffcbd4639f8dbe194c4" alt=""><figcaption></figcaption></figure></div>

代币持有者有多种提供商和工具来支持他们参与 stacking。Stacks 网站包含一个 [池和 stacking 选项列表](https://www.stacks.co/learn/stacking#startstacking).

## Stacking 周期

Stacking 会发生在 2100 个比特币区块的奖励周期中（约两周）。奖励周期分为两个阶段：准备阶段和奖励阶段。

<div data-with-frame="true"><figure><img src="/files/22ee8bbe968bdc1e0705f6495ffe58b66b9b0295" alt=""><figcaption></figcaption></figure></div>

* 准备阶段持续 100 个比特币区块，在此期间，下一奖励阶段的新 stackers 会由 PoX 锚定区块选出（详见 SIP-007）。
* 由于 Stacks 在 Nakamoto 升级后不会分叉，PoX 锚定区块总是在下一个奖励周期开始前 100 个比特币区块时就已知。它是准备阶段之前的最后一个 tenure-start 区块。
* PoX 锚定区块会识别出下一个 stackers。他们有 100 个比特币区块的时间来为签署 Stacks 区块做准备，包括完成用于签名区块的分布式密钥生成轮次。
* PoX 合约要求 stackers 在他们进行 stacking 或委托 stacking STX 时注册其区块签名密钥，以便整个网络能够验证区块签名。

此过程由 [运行 signer](/operate/run-a-signer.md) 随后以该 signer 的身份执行 stacking 操作来处理。

***

## Stacking 与签名

Stacking 和签名是不同的操作，但两者都必不可少。签名者必须 stack 他们的 STX 代币，而如果没有关联的签名信息，你就不能 stack STX。具体细节取决于单独 stacking 还是委托 stacking。

<div data-with-frame="true"><figure><img src="/files/d22fadd14cf5cc2c4a16544f3419784c3128f584" alt=""><figcaption></figcaption></figure></div>

#### 单独 Stacking

如果你进行单独 stacking，你有两个签名选项。

**运行你自己的 signer：**\
你可以按照“如何运行 signer”指南来运行自己的 signer。这需要运行机器的技术知识和资源。详见该指南。

**与另一位 signer 合作：**\
如果你不想运行自己的 signer，你可以与另一位 signer 合作，并在你的 stacking 交易中包含他们的签名。相关操作详情见 [Stack STX](/operate/stacking-stx.md) 指南。

#### 委托 Stacking

如果你将 STX 委托给池运营者，你就不需要运行 signer。池运营者会执行实际的 stacking 交易，并负责运行 signer。

如果你是池运营者，请查看 [operate-a-pool 指南](https://app.gitbook.com/s/4cpTb2lbw0LAOuMHrvhA/stacking-stx/operate-a-stacking-pool).

***

## 如何以及在哪里进行 Stacking

stacking 的选项包括单独 stacking、参与池、使用交易所以及流动性 stacking。Stacks 网站上有一个 [stacking 页面](https://www.stacks.co/learn/stacking) 介绍这些选项。

有关如何 stack 的详细说明，请参阅 [Stack STX 指南](/operate/stacking-stx.md).

用于 stacking 数据和统计的工具和浏览器：

* <https://app.signal21.io/stacks>
* <https://www.stacking-tracker.com/>
* <https://www.stakingrewards.com/calculator?asset=stacks>
* <https://stacking.tools/>

***

### 其他资源

* \[[Stacks YT](https://youtu.be/x3ESWoA61yM?si=9M3s2QgarTfYzm0s)] 什么是 Stacking？在 Stacks 上赚取比特币 ft. Kate Parkman
* \[[Stacks YT](https://youtu.be/cUq4_vbZfUM?si=anrHyckZS5mi1Wu-)] 赚取比特币奖励：Stacking 你的 STX 如何运作（分步）
* \[[Stacks YT](https://youtu.be/Taa7fb3dSqA?si=doqOLpi3YmbwJ-Lg)] Stacking 简介 ft. Hank Stoever


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.stacks.co/learn/zh/block-production/stacking.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
