工程场景
示意RWA 代币化平台
一个工程场景:以许可型代币表示现实世界资产,配合作为权威记录的链下登记系统、强制执行的转让控制和持续对账。
问题
设想一家发行方,希望把一项链下资产,例如基金份额、债务工具或某项实物资产的份额,表示为公有区块链上的代币。其意图是让发行、转让和后续服务可以编程,同时保留已经适用于该资产的法律和监管框架。
代币只是一种表示,法律上的权利主张存在于别处。如果链上记录与链下登记系统不一致,或者代币落到了没有持有资格的人手中,平台就没有完成它最主要的任务。因此,大部分工程工作都围绕着让两份记录保持一致,以及让转让规则无法被绕过。本场景只描述工程实现,不构成法律、财务或投资方面的指引。
设计必须满足的需求
- 只有属于已验证且具备资格的持有人的钱包才能接收或持有代币,而且这一点必须由合约本身强制执行。
- 链下登记系统必须始终是所有权的权威记录,并且必须持续与链上状态对账。
- 发行方必须能够在多方审批之下执行受控的管理操作,例如暂停转让或从丢失的钱包中找回代币。
- 发行、分配和赎回必须可以从链下指令追溯到链上交易,并能反向追溯。
- 个人数据必须留在链下,账本上只记录最少的必要引用。
- 合约逻辑必须可以在治理机制下升级,且不改变代币余额或持有人地址。
设计
组件
链下
- 01
资产准入
法律结构与文件
- 02
投资者 KYC
身份与资格审查
- 03
资产登记
所有权与权利的记录
- 04
对账
登记记录与链上状态核对
- 05
报告
对账单、审计与信息披露
链上
- 01
代币发行
依据已登记资产铸造
- 02
白名单
仅已验证钱包可持有
- 03
转让控制
规则在合约中强制执行
- 04
结算
资产与付款原子交割
- 05
生命周期事件
分配、赎回与销毁
资产准入与登记系统
登记系统记录每项资产、其条款、支持性文件,以及它与代币合约之间的映射。它还保存持有人名册及其持仓,是审计人员和管理人员查阅的系统。文件哈希可以锚定到链上,用以证明某条记录未被改动。
投资者准入与资格
投资者通过集成的 KYC 服务商完成身份验证和资格审查,结果保存在链下。通过验证的投资者登记一个或多个钱包地址,并通过对挑战信息签名来证明自己控制该地址。资格可能到期或被撤销,这些变更会同步到链上的白名单。
许可型代币合约
代币遵循 ERC-20 接口,并参照 ERC-3643 等许可型代币标准的方式增加了转让限制。每一笔转让都会调用合规模块,由它对照身份注册表和所有适用规则检查发送方与接收方。暂停、强制转让和找回等管理功能确实存在,但受角色限制,并且会发出事件。
发行与生命周期服务
该服务把已批准的链下指令转化为链上交易:认购时铸造,赎回时销毁,并记录分配。每条指令都带有一个标识,与由此产生的交易哈希一起保存,因此两者始终可以关联。操作是幂等的,被重试的指令不会铸造两次。
结算
当付款以代币化货币在链上完成时,资产的转让与付款的转让在同一笔交易中原子执行。当付款通过银行渠道完成时,只有在链下确认付款之后才释放资产一侧。设计上同时支持这两种方式,因为可用的结算资产因市场而异。
托管与密钥管理
发行方和管理员的密钥保存在基于 HSM 或 MPC 的签名基础设施中,合约的特权角色分配给多重签名账户。任何个人都无法单独铸造、暂停或升级。投资者可以在自己的钱包中持有代币,也可以交由托管方持有,平台把两者都视为已登记的地址。
索引与对账
索引器跟踪代币合约,并在达到最终性时构建余额和转让的链上视图。对账任务把这一视图与登记系统进行比较,对任何差异生成差异项,并在下一个报告周期之前完成调查。这是用来发现任意一份记录中错误的控制手段。
报告与审计
持有人收到的对账单由对账后的记录生成。管理人员和审计人员可以把任何一笔持仓追溯到产生它的指令和交易。报告输出的结构旨在支持发行方履行披露义务,而这些义务仍由发行方及其顾问负责。
取舍
设计决策
| 决策 | 理由 |
|---|---|
| 转让限制在链上、在代币合约中强制执行 | 不设限制、只在应用层做检查的代币更容易构建,也能与更多钱包和交易场所集成。但它同样允许持有人直接在链上转给任何地址。在合约中强制执行资格要求,会收窄代币可以流向的范围,而这正是目的所在。 |
| 以链下登记系统作为所有权的权威记录 | 把链当作唯一记录在概念上很简洁,却让密钥丢失、法院命令或操作失误没有任何补救手段。让登记系统保持权威、把代币作为与之同步的表示,会增加对账负担,但这与此类资产所有权通常的确立方式相吻合。 |
| 采用 EVM 兼容的公有链,而不是私有账本 | 私有账本可以控制参与方和费用,却限制了与现有钱包、托管方和工具的互操作性。公有 EVM 链提供了这一生态和成熟的审计工具,代价是交易公开可见、费用波动,这也是个人数据要留在链下的原因。 |
| 在受治理的代理之后使用可升级合约 | 不可变合约向持有人提供最强的保证,但在规则或监管变化时无法修正。代理模式能在升级过程中保持余额不变,同时引入了升级风险,应对措施是多重签名控制、时间延迟,以及对每个新实现进行独立审计。 |
| 个人数据完全保留在链下 | 把身份属性记录到链上会简化某些检查,却会让这些数据永久存在并公开可见。因此合约只存储地址和资格标记,地址与个人之间的关联留在链下系统中,在那里它可以受到保护,也可以被删除。 |
