架构
Primcast 分三层:由以太坊保障安全的 Rollup、只有链能提供的四个应用系统,以及部署在其上的成熟协议。
分层
~ 上层协议 Primcast DEX · Morpho(借贷)· Chainlink(价格、自动化)· ERC-4337 Paymaster · Blockscout
4 发行 Offering(IRO 认购)
3 资产 RWAToken + RWATokenFactory 结算:USDC / USDT(外部、白名单)
2 数据 AssetHub(保证金提供方 · 设备 · 读数 · 中位数主题)
1 合规 IdentityRegistry(KYC · 合格投资者 · 辖区 · 冻结 · 制裁)
0 底座 SystemRegistry(系统合约 · 结算币白名单)· Arbitrum Nitro / ArbOS 61 · 以太坊
产品架构
| 层 | 组件 | 作用 | 运营方 |
|---|---|---|---|
| 链 | Nitro 排序器、批次提交器、验证者 | 每 100 毫秒排序交易,向以太坊提交数据,断言状态 | Primcast(上线时验证者为白名单) |
| 链 | 合规发布器与哨兵 | 把链上制裁同步到排序器过滤名单;过滤被制裁方的延迟收件箱交易 | Primcast |
| 0 | SystemRegistry | 列出允许移动 RWA 余额的合约,以及允许用于结算的稳定币 | 治理方 |
| 1 | IdentityRegistry | 按钱包保存事实;一次调用 complianceOf(address) 返回全部信息 | 登记机构(事实)、治理方(制裁) |
| 2 | AssetHub | 有保证金的数据提供方、登记设备、读数、聚合主题 | 提供方;治理方负责罚没 |
| 3 | RWAToken | 每项资产一个 ERC-20,内置资格规则、冻结、强制转移、持有上限、分红、赎回、到期 | 资产发行方(admin) |
| 3 | RWATokenFactory | 发行方白名单;以信标代理部署每一个代币 | 治理方(发行方)、发行方(代币) |
| 4 | Offering | 一级发行:认购、关闭、领取或退款、提取募资 | 发行方;任何人都可关闭到期的认购 |
| 上层 | Primcast DEX、Morpho、Chainlink、Paymaster、Keeper | 交易、借贷、价格、Gas 代付、定时任务 | 各自的运营方 |
链负责什么,不负责什么
原则很简单:如果已有经过充分审计的协议能做,而且能源场景并不改变它的机制,就部署现成协议,而不是重写一个。
- 自建: 身份事实、实物资产数据、证券型代币,以及为尚不存在的资产做一级发行——没有第三方为能源资产提供这些。
- 上层: 现货交易、借贷、价格源、Keeper、支付流、Gas 代付和区块浏览器。见生态。
系统之间如何调用
IdentityRegistry ◄── RWAToken、AssetHub、Offering (complianceOf / requireKYC / requireNotSanctioned)
SystemRegistry ◄── 所有合约 (isSystem / isSettlementToken)
AssetHub ◄── RWAToken (设备绑定)
USDC / USDT ◄── RWAToken(分红、赎回)、Offering(认购)、AssetHub(保证金)
RWAToken ◄── Offering (领取时 mintFor)
结算币是外部代币,因此每个接收结算币的合约都会在入金和出金两端自行执行身份校验。
无调度器的周期任务
Primcast 上没有任何"区块结束时自动执行"的逻辑。所有周期性任务都是任何人都可调用的公开函数:
| 函数 | 作用 | 如果没人调用 |
|---|---|---|
Offering.processAll(n) / process(ids) | 关闭窗口已结束或已达硬顶的认购 | 认购在结束时间后仍显示为开放,但已拒绝新认购;任何人都可以关闭它 |
RWAToken.checkMaturity() | 到期后把代币切换为已到期 | 代币保持活跃,直到有人调用 |
RWAToken.distributeDividend(amount) | 分配收益(从发行方授权额度中划转) | 分红延迟,不会丢失 |
所以 Keeper 卡住只会造成延迟,永远不会危及资金。
升级模型
- 单例合约(
SystemRegistry、IdentityRegistry、AssetHub、RWATokenFactory、Offering)是由治理 Safe 拥有的 UUPS 代理。 - 每个代币都是同一个
UpgradeableBeacon上的BeaconProxy,一次升级会同时改变所有代币。 - 没有时间锁:Safe 执行升级即刻生效。存储布局只能追加,并在 CI 中检查。
- Primcast DEX 不可升级:交易对不可变,路由合约无状态。
这对持有人意味着什么,见信任与安全。
当前部署
以下地址读取自本门户所连接的部署。
| 合约 | 地址 · Primcast Demo (31337) |
|---|---|
| SystemRegistry | 0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512 |
| IdentityRegistry | 0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9 |
| AssetHub | 0xa513E6E4b8f2a923D98304ec87F64353C4D5C853 |
| RWATokenFactory | 0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e |
| Offering | 0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82 |
| 治理方(owner) | … |