# 机制

在 Lista 机制中，用户可以通过战略性地利用他们的资产来赚取奖励，这些资产可能包括 BNB、ETH、slisBNB、wBETH 和 BTCB。过程从用户将这些资产存入交互（CDP）模块开始，在那里它们被用作借用 LisUSD 的抵押品。

除了存入资产和借用 LisUSD，用户还可以通过在 Lista 生态系统中质押 LisUSD 和 BNB 来赚取奖励。通过参与这些质押活动，他们会积累利息和额外奖励，显著增加他们的总收入。

### 费用

1. 借款利息 —— 支付给 Lista 的借用 lisUSD 的利息。该利率是由 Lista 治理平台设定的固定数字。
2. 清算罚款 —— 在清算过程中通过荷兰拍卖出售用户抵押品时，以 lisUSD 形式扣除的百分比。

### 抵押比率

抵押比率是决定用户最大借款限额的用户抵押价值的百分比；其计算方式如下：(lisUSD 铸造总量 / 抵押品总值 \* 100)。不同的资产将有不同的抵押比率，这取决于资产的波动性。抵押比率用作清算栏，以决定何时应发生清算事件。

### CDP 模块

以下部分将逐一介绍 CDP 模块的功能，解释用户如何通过提供抵押品借用 LisUSD 以及不同合约之间的交互。

**a. 存入抵押品**

1. 用户存入抵押品：用户通过将其抵押品转移到交互合约来启动存款过程。
2. 交互：它将抵押品移动到 GemJoin（类似于财政部）。
3. GemJoin：从交互接收抵押品。
4. Vat：Vat 合约，是 CDP 引擎的核心。它记录用户的抵押信息，并确保抵押品进入系统。

这个过程确保用户的抵押品被安全地存入并记录在 CDP 模块中，允许他们继续借用 LisUSD 对抗他们的抵押品。

**b. 借用 LisUSD**

1. 用户启动借款：用户请求借用特定金额的 LisUSD 对抗他们存入的抵押品，通过调用 borrow()。
2. 交互：此请求由交互处理，然后与 Vat 通信。用户在此过程中还需支付利息，利率是由 Lista 治理平台设定的固定数字。
3. Vat：记录用户债务的增加，对应于借用的 LisUSD 和特定的抵押品。
4. HayJoin：交互调用 `exit()` 来铸造指定金额的 LisUSD 并将其发送给用户。
5. ListaDistributor：交互调用 ListaDistributor 合约的 snapshot 方法，记录用户的债务值以计算和分配未来的奖励给用户。

这一序列确保用户的债务被准确记录，借用的 LisUSD 成功铸造并转移到用户手中，且按照 Lista 治理确定的固定利率支付利息。

**c. 还款 LisUSD**

1. 用户启动还款：用户通过指定要偿还的 LisUSD 数量来启动还款过程。
2. 交互：此还款请求由交互处理。
3. Vat：更新用户的债务，通过偿还的 LisUSD 数量减少。如果用户完全偿还了他们的债务，CDP（抵押债务位置）将被关闭。
4. HayJoin：交互调用 `join()` 方法，从用户账户中烧毁 LisUSD。
5. ListaDistributor：交互调用 ListaDistributor 合约的 snapshot 方法，记录用户的债务值以计算和分配未来的奖励给用户。

这个过程确保用户的债务被准确减少或清除，且相应数量的 LisUSD 被烧毁，有效地从流通中移除。

**d. 提取抵押品**

1. 用户启动提款：用户通过指定他们希望提取的抵押品数量来启动提款过程。
2. 交互：提款请求由交互合约处理。请注意，如果用户已借用 LisUSD 并尚未还款，则他们可以提取的抵押品数量将少于原始存款金额，因为必须保留一些抵押品以确保未偿还的债务。
3. GemJoin：交互调用 `exit()` 方法，将指定数量的抵押品从 GemJoin 转移回用户。
4. Vat：记录用户的抵押信息，更新系统以反映抵押品已离开系统。

这个过程确保用户的抵押品被准确提取并返回，同时系统记录抵押品状态的变化。

**e. 质押 LisUSD**

1. 用户启动质押：用户调用 `join()` 方法质押指定数量的 LisUSD。这些 LisUSD 随后被转移到 Jar 合约。
2. Jar：Jar 合约记录以下信息：
   1. 用户的质押 LisUSD 余额。
   2. 增加所有用户质押的 LisUSD 总量。
   3. 用户质押 LisUSD 的时间。
3. ListaDistributor：ListaDistributor 从 Jar 中获取用户的余额快照。它将用于计算和分配未来的奖励给用户。

**f. 取消质押 LisUSD**

1. 用户启动取消质押：用户调用 `exit()` 方法取消质押指定数量的 LisUSD。
2. Jar：这些 LisUSD 以及任何奖励金额被转回用户。它还记录以下信息：
   1. 用户的质押 LisUSD 余额减少了未质押的数量 X。
   2. LisUSD 的总质押量减少了未质押的数量 X。
   3. 保存提款记录。
3. ListaDistributor：ListaDistributor 获取用户的余额快照并记录用户的质押 LisUSD 余额，用于未来奖励计算。

这个过程用户只与 Jar 合约互动，它负责管理和分配给质押 LisUSD 的参与者的利息。

**g. 清算**

流程图显示了如何启动拍卖。

**g.1 如何启动拍卖**

确定价格和比率：

* 单位抵押品的价格：$2
* 抵押比率：66%
* 基于抵押比率的抵押品价格：2\*0.66=$1.322

用户存款和借款限额：

* 假设用户存入 10 单位抵押品：10\*2=$20
* 借款限额：20\*0.66=$13.2
* 假设用户借用 $13.2 的 lisUSD：13.2 lisUSD

监控抵押品价格下降：

* 假设 1 单位抵押品的价格下降到：$1.8
* 带安全边际的抵押单位价格：1.8\*0.66=$1.188
* 带安全边际的当前抵押品价值：1.188\*10=$11.88
* 确定清算状态：
  * 13.2-11.88=$1.32（正差值表示需要清算）

准备清算拍卖：

* 进入荷兰拍卖的抵押品数量：10 单位
* 清算罚款（由 Lista 治理固定）：债务的 13%
* 拍卖中需覆盖的债务：13.2\*1.13=$14.916
* 缓冲（与清算罚款相似的百分比，由 Lista 治理固定）：2%
* 拍卖起始价格（最高）：1.8\*1.02=$1.836

触发拍卖：

* 有人触发拍卖并获得小费 + 筹码作为奖励（稍后详述）。

**g.2 从拍卖购买**

流程图显示用户如何从拍卖购买抵押品。

示例：

拍卖开始和价格下降：

* 拍卖开始，价格逐渐下降。
* 清算人可以参与购买定制数量的清算抵押品。
* 价格线性下降（受特定条件的干扰）：
  * 公式：$$f(x) = x \* e^{2 pi i \xi x}$$
  * 示例：1.836\*((3600-600)/3600)=$1.53

暂停拍卖的条件：

* 拍卖可以因两个条件之一而暂停：
  * 尾部（经过特定时间，由 Lista 治理固定）
  * 尖峰（价格下降百分比；拍卖起始价格的 40%，由 Lista 治理固定）
* 一旦满足任一要求，拍卖将被重新启动。

**g.3 重新启动拍卖**

等待有人重新启动拍卖。重新启动者获得小费 + 筹码作为奖励。

* 小费（固定费用，由 Lista 治理固定）：5 lisUSD
* 筹码（动态费用，由 Lista 治理固定）：0 lisUSD
