Stablecoin 应用工作流

稳定币是一种可替代的代币,代表具有内置合规执行的数字货币。

稳定币方案强制您了解客户 (KYC) 和反洗钱 (AML) 策略、转移限制和多方审批。系统支持直接调动和基于暂挂的调动,这些调动在调动发生前需要审批。

  • 矿工,燃烧器和公证角色是必需的。
  • 账户策略强制执行 KYC/AML 和限制标志。
  • 审批策略定义基于暂挂的转移的阈值和顺序审批人要求。
  • 转移限制是可选的,可以随时配置。
  • 审批策略匹配用于确定在使用 holdTokens API 时是否需要审批。
  • 事务处理历史记录 API 支持审计和监视。
下表汇总了此方案中的角色。
操作者 角色 说明
Administrator 令牌管理 初始化系统、分配角色、创建帐户和审批策略。
矿工 矿工 请求铸币。
Mint 审批人 公证人 批准或拒绝 mint 请求。
消耗审批人 公证人 批准或拒绝刻录请求。
发送方 启动直接转移或基于暂挂的转移。
审批者 按定义的顺序审批事务处理。审批人是在审批策略中指定为审批人的常规账户持有人(而不是由分配的角色指定)。
公证人 公证人 在批准后完成或释放基于暂挂的转移。
接收方 接收转移的令牌。
审计员 令牌审计者 查询事务处理历史记录以进行合规性和报告。
管理员完成以下步骤来初始化系统。
  1. 使用 initializeStablecoinToken API 初始化稳定币。
  2. 使用 registerOrg API 注册组织。
  3. 使用 createAccountassociateTokenToAccount API 创建账户。
  4. 使用 addRole API 将 minter、Burner 和 Notary 角色分配给相应的账户。
  5. 使用 createStablecoinAccountPolicyCheck API 创建账户策略。
  6. 使用 createApprovalPolicyCheck API 创建审批策略。
初始化系统后,典型流程将遵循这些基本步骤。
  1. Mint 稳定币
    1. minter 使用 requestMint API 提交 mint 稳定币的请求。
    2. mint 批准者使用 approveMint API 来审核和批准 mint 稳定币的请求。或者,Mint 审批者可以使用 rejectMint API 拒绝请求。
  2. 无需审批即可传输稳定币。
    • 发件人使用 transferTokens API 向用户发送稳定币。
  3. 通过审批转移稳定币。
    1. 发件人使用 holdTokens API 请求转移令牌。
    2. 如果需要,审批者使用 approveTransaction API 来批准传输,如审批策略所指定。
    3. 公证人使用 executeHoldTokens API 批准传输请求。或者,公证人可以使用 releaseHold API 拒绝传输。
  4. 验证令牌余额。
    • 用户可以使用 getAccountBalance API 获取他们持有的稳定币数量。
  5. 烧毁代币。
    1. 用户可以使用 requestBurn API 提交请求以刻录其稳定币。
    2. 刻录审批人使用 approveBurn API 来审核和批准请求。或者,刻录审批人可以使用 rejectBurn API 拒绝请求。
  6. 审核事务处理历史记录。
    • 审计人员和用户可以使用 getAccountTransactionHistorygetAccountTransactionHistoryWithFilters API 获取用于审计和报告的事务处理历史记录。

账户策略验证

账户策略对于转移或持有稳定币的所有账户都是必需的。账户策略在以下 API 中进行验证:transferTokensholdTokensapproveTransactionexecuteHoldTokens

每个帐户策略包括三个参数:KYCAMLrestrictionFlag。在传送任何令牌之前,将对发送者和接收者进行验证。

KYC(了解您的客户)
仅当发送方和接收方账户的 KYC 值均为 true 时,才允许转移。
AML(反洗钱)
仅当发送方和接收方账户的 AML 值均为 true 时,才允许转移。
restrictionFlag
如果为发送者和接收者帐户将限制标志设置为 false,验证将通过。如果为发送方或接收方账户、holdTokensapproveTransactionexecuteHoldTokens API 将限制标志设置为 true,则仅当存在最低可用审批策略并且金额在策略限制范围内时,才允许转移。否则,传输将被阻止。对于 transferTokens 方法,仅当金额位于传输限制的下限和上限时才允许传输。

审批策略匹配

调用 holdTokens API 后触发审批策略匹配。审批策略定义事务处理阈值、所需的审批数和审批人详细信息,并设置多级别审批的顺序。审批策略对于暂挂操作是必需的。如果没有审批策略,用户将无法在应用限制时持有或转移令牌。

审批策略匹配确定公证人是否需要审批才能完成暂挂转移。如果需要审批,审批策略匹配将确定需要哪些审批人以及审批顺序。

如果没有为发送方和接收方设置限制标志,则将暂挂金额与所有配置的审批策略阈值进行比较,以查找匹配项。如果找到匹配项,则使用相应的审批人和序列。如果未找到匹配项,则不需要审批,事务处理将直接转至公证人。

如果为发送方或接收方设置了限制标志,则使用可用的最低审批策略。如果没有可用的策略,将阻止事务处理。

确定策略匹配后,将从策略中提取以下详细信息以用于审批流程:
  • 必需的批准人
  • 审批序号
  • 所需审批数

事务处理审批

在调用 approveTransaction API 后触发事务处理审批验证。验证将强制执行在调用 holdTokens API 期间匹配的审批策略中定义的所有审批规则。根据以下步骤按顺序为每个审批人运行验证。

  1. 验证审批人标识:检查当前用户是否存在于审批策略的必需审批人列表中。
  2. 验证序号顺序:检查当前审批人是否是当前序号位置的预期审批人。
  3. 检查重复审批:阻止同一审批人多次审批同一事务处理。
  4. 账户策略验证:再次运行账户策略验证,以确保自创建暂挂以来发送者和接收者账户状态未更改。
  5. 记录审批:记录具有时间戳的审批,增加审批计数,并检查是否已完成所有必需的审批。
如果记录了所有审批,则事务处理将被公证人标记为准备完成。如果需要更多审批,将等待下一个按顺序审批人。