# 质押（Staking）

我们讨论两种类型的质押：

1. 非自我质押（在许多其他生态系统中被称为委托，但不要与Namada上的治理委托混淆）
2. 自我质押

***

## 非自身质押（委托）(Non-self bonding (delegating))&#x20;

用户可以在任何时间向任何数量的验证者进行质押。当用户质押代币时，质押不会在当前时期 `n`直到时期 `n + 2`（由 PoS 参数 `pipeline_len` 设置为字面值 `2`）计入验证者的权益（从而决定其投票权）。质押的代币将立即从质押者的账户中扣除，并记入 PoS 系统的账户。

从别名 `aliace` 的源地址质押代币到别名为 `validator-1` 的验证者：

```
namada client bond \
  --source aliace \
  --validator validator-1 \
  --amount 12.34
```

你可以查询你的质押：

```
namada client bonds --owner aliace
```

此查询的结果将告知您从哪个时期开始您的质押将生效。

由于 PoS 系统只是一个账户，您可以查询其余额，该余额是所有当前质押代币以及尚未提取的未质押代币的总和：

```
namada client balance --owner PoS
```

***

## 自身质押 (Self-bonding)&#x20;

通过将验证者的流动余额质押到自身，也可以增加验证者的投票权。用户可以提交从验证者账户到 PoS 系统的自质押代币交易：

```
namada client bond \
  --validator my-validator \
  --amount 3.3
```

***

## 查询验证者的`质押权益` (Query a validator's `bonded-stake`)&#x20;

验证者的质押权益（在 cometbft 中的投票权）由他们所有的活动自身绑定和来自委托人的绑定总和决定，如有任何减少。

当代币解绑时，在当前时期 `n` 到时期 `n + 2` 开始，解绑的金额不会计入验证者的权益。质押的代币金额将立即从验证者的账户中扣除，并记入 PoS 系统的账户。

要查看所有验证者及其投票权（完全等于来自他们自身质押和委托质押的 NAM 代币数量），您可以查询：

```
namada client bonded-stake
```

使用此命令，您可以指定 `--epoch` 以查找未来时期的投票权。请注意，只有当前时期和下一个时期的投票权是最终的。

***

## 惩罚 (Slashes)&#x20;

如果验证者展现出应受惩罚的行为，向该验证者的质押也将受到惩罚。只有在错误发生的时期中处于活动状态的质押将按错误类型的惩罚率被削减。如果您的任何质押已被削减，这将显示在`bonds`查询中。您还可以找到所有应用的削减：

```
namada client slashes
```

***

## 解押 (Unbonding)&#x20;

当代币被质押时，它们将被锁定在 PoS 系统中，除非质押者将它们提取，否则它们不会变得流动。为此，质押者首先需要发送交易来“解押”其代币。用户可以解押任意数量的代币，最多可达到给定验证者的所有质押的总和，甚至在质押变为活动状态之前。

### 非自身解押 (Non-self unbonding)&#x20;

提交从源地址到验证者的解绑代币：

```
namada client unbond \
  --source aliace \
  --validator validator-1 \
  --amount 1.2
```

### 自解押 (Self-unbonding)&#x20;

提交从验证者解绑自身绑定的代币：

```
namada client unbond \
  --validator my-validator \
  --amount 0.3
```

***

## 提取解押的代币 (Withdrawing Unbonded Tokens)&#x20;

当用户解押代币时，用户将无法立即提取它们。相反，在时期 `n` 中解押的代币将从时期 `n + 6` 开始可以提取（字面值 `6` 由 PoS 参数 `unbonding_len` 设置）。解押代币后，用户将能够通过绑定查询看到何时可以提取它们：

```
namada client bonds --owner aliace
```

当链到达您可以提取代币的时期（或之后的任何时间），aliace可以提交一笔将解押的代币提回她账户的交易：

```
namada client withdraw \
  --source aliace \
  --validator validator-1
```

成功后，已提取的代币将记入 `aliace` 的账户并从 PoS 系统中扣除。
