> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tori.finance/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Pages whose paths begin with /zh-Hans/, /ja/, /ko/, /vi/, /id/, /hi/, /pt-BR/ or /es/ are machine translations of the English pages, provided for convenience only. They may contain errors or omissions and have no legal effect, and where one differs from the English page, the English page prevails. For anything that will be relied on, read and cite the English page at the same path without the language prefix.

# 角色、多签与时间锁

> Tori 主网合约上的特权角色：每个角色能做什么、由谁持有，以及哪些操作受 24 小时时间锁约束

Tori 需要在链上合约与集中清算的流动性场所之间打通操作，而这需要特权密钥。本页列出 Tori 主网合约上的特权角色：每个角色能做什么、由谁持有，以及哪些操作受时间锁约束。下面的每个角色都位于[经过验证的合约](/zh-Hans/resources/contracts.md)上，每个持有者都可以在链上查到，因此这里的每一行内容，您都可以亲自核查。

两条设计规则贯穿整个矩阵。**最小权限**：任何角色都只能执行其名称所对应的那一项职责，而那些只能*削减*协议权限的角色，恰恰由响应最快的密钥持有。**扩权须延迟**：任何扩大协议暴露面的操作，无论是新增抵押资产、新增托管目的地还是新的合约实现，都必须公开等待 24 小时才能执行。

## 密钥如何持有

一个角色的托管模式是一项经过权衡的风险决策，因此矩阵逐个角色注明。

| 托管方式 | 含义 |
| - | - |
| **3/5 Safe 多签** | Gnosis Safe v1.4.1。五名签名人中须有三名批准，该门限在链上强制执行，任何人都可以查看 |
| **MPC 金库** | 密钥被拆分为多个分片，分布在一家受监管服务商的基础设施中。包括服务商在内，任何一方都无法单独签名；审批门限由服务商的策略引擎强制执行 |
| **EOA** | 由 Tori 运营的单一签名地址 |

约束 EOA 角色的是合约本身，而非托管安排。每个 EOA 角色的权限在设计上就很有限：要么执行用户已签名的指令，要么写入某个名单，并且每次调用都要接受协议自身限额的检查。下面的矩阵准确列出了每个角色的权限范围。

## 角色矩阵

| 角色 | 合约 | 持有方 | 函数 | 备注 |
| - | - | - | - | - |
| **所有者 / 管理员（Owner / Admin）** | trUSD、strUSD、Minting、Distributor、YT-Lock | 3/5 Safe 多签 | 授予和撤销这些合约上的运营角色；`pause` / `unpause`；`setMaxMintPerBlock`、`setMaxRedeemPerBlock`；移除或停用某种抵押代币；`removeCustodianAddress` | 所有者和管理员由同一个 Safe 持有。它们在链上是两个独立角色，无需修改合约即可拆分 |
| **时间锁管理员（Timelock Admin）** | trUSD、strUSD、Minting、YT-Lock | 时间锁合约 | `_authorizeUpgrade`（合约升级）；`addAllowedToken`、`enableAllowedToken`；`addCustodianAddress`；`setStablesDeltaLimit`；`setMinter` | 只能通过排队中的时间锁操作调用 |
| **时间锁提议方（Timelock Proposer）** | Timelock | 3/5 Safe 多签 | 将操作加入队列 | |
| **时间锁执行方（Timelock Executor）** | Timelock | 3/5 Safe 多签 | 在延迟期满后执行排队中的操作 | 执行需另行获得一次 3/5 批准，且在排队获批一天之后进行：两项相互独立的决定 |
| **时间锁撤销方（Timelock Canceller）** | Timelock | MPC 金库 | 取消排队中的操作 | 可以阻止排队中的变更，但永远无法发起变更 |
| **准入控制方（Gatekeeper）** | Minting | MPC 金库 + 外部方 | `disableMintRedeem`；`removeMinterRole`、`removeRedeemerRole`、`removeCollateralManagerRole` | 只能收回权限，永远不能授予权限。一个持有者是 Tori，另一个是外部方 |
| **白名单管理方（Whitelister）** | Minting | MPC 金库 | `addToWhitelist`、`addToWhitelistBatch`、`removeFromWhitelist` | 铸造和赎回在合约层面受白名单限制，因此该角色决定了谁有资格进行交易 |
| **抵押品管理方（Collateral Manager）** | Minting | MPC 金库 | `transferToCustody` | 转移目的地仅限已通过时间锁登记的托管地址 |
| **铸造方（Minter）** | Minting | 3 个 EOA | `mint()` | 提交用户签名的 EIP-712 订单；无法自行发起订单 |
| **赎回方（Redeemer）** | Minting | 3 个 EOA | `redeem()` | 同铸造方 |
| **黑名单管理方（Blacklist Manager）** | strUSD | Safe + EOA | `addToBlacklist`、`removeFromBlacklist` 及其批量版本 | 合规筛查 |
| **奖励注入方（Rewarder）** | strUSD | Safe + Distributor 合约 | `transferInRewards`、`reportLoss` | 其中一个持有者是合约，而不是密钥 |
| **奖励运营方（Reward Operator）** | Distributor | MPC 金库 | 触发预定的分配 | 无法更改金额 |

铸造方只能提交用户已签名的订单，除此之外什么也做不了。准入控制方无需多签门限，只用一笔交易即可撤销该角色。

## 24 小时时间锁管控哪些操作

时间锁合约为 [`0xA952453E39F77108Ee37C1b92de593F1C59A6ef4`](https://etherscan.io/address/0xA952453E39F77108Ee37C1b92de593F1C59A6ef4)，最短延迟为 86,400 秒。它在核心合约上持有时间锁管理员角色，这意味着以下四类操作无法悄然发生：

* **合约升级**。trUSD、strUSD 或 Minting 的新实现须先公开排队。
* **新增抵押资产**。新增需经时间锁；移除或停用则立即生效，因为能够快速执行的方向，应当是安全的方向。
* **新增托管目的地**。`addCustodianAddress` 受时间锁约束。这项操作决定了存入的抵押品可以流向何处，因此最值得关注。
* **提高稳定币 Delta 限额**。

任何人都可以在 Etherscan 上查看队列。一项出乎意料的排队操作，在可以执行之前会公开整整一天，而撤销方所持有的密钥可以用一笔交易将其阻止。

## 速率限制

铸造和赎回在合约层面按区块、按资产以及在全局范围内受到限制。每次调用都会检查该限额，无论铸造方和赎回方角色收到的是什么订单，限额都同样适用。修改限额属于所有者函数，因此需要 3/5 Safe 多签批准；运营密钥无法自行放宽限额。

## 自行核查

本表中的每一项角色分配都可以从链上读取，无需凭信任接受：

* **谁持有某个角色**：在合约上调用 `hasRole(role, address)`
* **Safe 门限**：在 Safe 上调用 `getThreshold()` 和 `getOwners()`
* **时间锁延迟**：在时间锁上调用 `getMinDelay()`
* **当前排队中的操作**：在 Etherscan 上查看时间锁的事件

MPC 门限保存在托管服务商的策略引擎中，而不在链上。我们正在请服务商确认这些门限并安排独立审验，并计划将其与储备金证明数据一并公布。

> [!NOTE]
>
> **机器翻译说明**：本页面由英文原文经机器翻译而成，仅为方便阅读而提供，可能存在错误或遗漏，不具有法律效力。如本页面与英文版本有任何不一致，以英文版本为准。在依赖本页面的任何内容之前，请先阅读[英文原文](/security/roles.md)。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.