RIB的抽象简化设计
好,我把这条链路补完整,把你那句:
“输入就是 Intent 消息 → worker 分配任务 → 三步验证之后 → 执行链上交易”
做成一个可以直接实现的标准流程。
③ 三步验证:V1 / V2 / V3 完整定义
🔹 V1:合法性 & 授权验证(Intent Level)
在哪里做:
H0 入口 + Worker
检查什么:
- 签名合法
- signature 是否对应 from 地址
- signature 是否对应 from 地址
- 格式合法
- action / payload / constraints 是否符合预定义 schema
- action / payload / constraints 是否符合预定义 schema
- 权限合法
- 该地址是否有权限发这种 action(比如:只能操作自己金库的资金)
- 该地址是否有权限发这种 action(比如:只能操作自己金库的资金)
- 风控基础规则
- 如:单次转账不能超出用户某个额度上限
- 如:单次转账不能超出用户某个额度上限
通过 ⇒ 标记: V1_OK
→ 交给 Worker 做分配
🔹 V2:模拟执行 & 风险检查(Simulation Level)
在哪里做:
I3 执行层里的某个 SimExecutor(也可以看作专门的 “风控 Agent”)
Worker 做的事情:
1. Worker 收到 V1_OK 的 IntentMsg
2. 挑选一个 / 多个 SimExecutor(I3 里的执行者)
3. 调用:simulate(intent) → 返回 SimResult
SimResult 包含:
SimResult {
success // 模拟是否能成功
gas_estimate // 预估 gas
balance_delta // 资产变化情况
risk_flags // 触发了哪些风险规则
}
在 V2 阶段检查:
- 是否会 Revert / Fail
- 是否超出 constraints 里用户自己设置的风控边界
- 比如:最差滑点、最大可亏损额、最大手续费
- 比如:最差滑点、最大可亏损额、最大手续费
- 是否触发系统级黑名单 / 风险标记(可选)
通过 ⇒ 标记: V2_OK
→ 生成一条 PreTxPlan:
PreTxPlan {
intent_id
to_contract
calldata
max_gas
expected_effect // 摘要:会发生什么
}
🔹 V3:因果 / 策略 / 多方确认(Causality / Policy Level)
在哪里做:
C1 因果层 + 某些 I3 的策略/风控 Agent
V3 的作用:
“确认这笔交易在更大时间轴和策略上下文里是合理的,而不是单笔没问题。”
可以包含三种子检查(根据场景选):
- 因果一致性(Causality Check)
- 这条 Intent 是否是某个长期策略链的一部分?
- 之前是否已经执行过同 ID 的交易(防重放)?
- 当前状态是否仍然满足最初意图条件?
- 这条 Intent 是否是某个长期策略链的一部分?
- 策略 / Policy 对齐
- 例如:
- 该 Vault 的策略是 “最大回撤 < 10%”,当前加这笔会不会破表?
- 用户设定自己是 “保守模式”,这笔是不是超频?
- 该 Vault 的策略是 “最大回撤 < 10%”,当前加这笔会不会破表?
- 例如:
- 多方共识(可选)
- 某些高风险操作可以要求:
- 多签地址签名
- 多个“风控 Agent”投票
- 某种信用分 / Bond 等级才允许
- 多签地址签名
- 某些高风险操作可以要求:
通过 ⇒ 标记: V3_OK
→ 最终进入 “可执行状态”。
如果 V3 不通过,就把原因写成一个 RejectionEvent 回 H0,然后整个 Intent 结束,不触发链上交易。
④ V1/V2/V3 都通过 → I3 触发链上交易
当 Intent = V1_OK + V2_OK + V3_OK 时:
- Worker 选择真正的 OnchainExecutor(某个 I3 Agent)
- 调用 execute(intent, pre_tx_plan)
- 生成链上交易:
tx_hash = OnchainExecutor.execute(pre_tx_plan)
- 等待链确认(或异步监听)
- 把链上 tx_receipt 转换成一个 ExecutionEvent,发回 H0 + C1 + S2:
ExecutionEvent {
intent_id
tx_hash
status // success / failed
gas_used
final_state // 重要状态变化摘要
}
⑤ C1 / S2 在这条链上的作用(跟三步验证怎么咬合)
我们把刚才的流程,嵌回你的 H0–C1–S2–I3:
- H0:输入 Intent 消息
- 用户 / Agent 把 IntentMsg 发给 H0
- H0 记录 + 广播给 Worker
- 用户 / Agent 把 IntentMsg 发给 H0
- V1:合法性验证
- 可以在 H0 + Worker 侧做
- 如果签名 / schema / 权限不过,直接拒绝,不进 C1 / S2
- 可以在 H0 + Worker 侧做
- V2:模拟验证(I3 内部)
- Worker 分配给 SimExecutor(I3 的一类 Agent)
- 得到 SimResult
- 通过 → 打上 V2_OK 标记,写一条 PreTxPlanEvent 到 H0(C1 将看到它)
- Worker 分配给 SimExecutor(I3 的一类 Agent)
- V3:因果 / Policy 验证(C1 主导)
- C1 看到 Intent + PreTxPlan + 历史 ExecutionEvent 组成的因果链
- 计算:
- 这笔是不是重复 / 改写版
- 会不会破坏策略 / 风控
- 这笔是不是重复 / 改写版
- 通过 → C1 生成 ApprovalEvent(V3_OK),发给 Worker & S2 预登记
- C1 看到 Intent + PreTxPlan + 历史 ExecutionEvent 组成的因果链
- I3 触发链上交易
- Worker 收到 V3_OK
- 调用 OnchainExecutor 去执行
- 得到 tx_hash
- Worker 收到 V3_OK
- 链上成功 → C1 记因果,S2 记账
- 链上回执 → H0 → C1、S2
- C1 更新:
- 这条 Intent → 确认成为真实世界的 “已生效事件”
- 这条 Intent → 确认成为真实世界的 “已生效事件”
- S2 更新:
- Credit / Bond / Flux / 余额变动
- 记录谁贡献了这笔成功(可用 PoCW 算)
- Credit / Bond / Flux / 余额变动
- 链上回执 → H0 → C1、S2
⑥ 用一句话把整个流程压缩出来(可以直接写到白皮书)
所有外部行为先变成 Intent 消息 → Worker 派发给合适的执行者 → 经过 “V1 合法性、V2 模拟风险、V3 因果策略” 三重验证 → 只有被完整证明是“合理且安全的意图”,才会由 I3 生成链上交易,并最终由 S2 写入信用与资产状态。
换成你爱用的 4 步:
说 → 分配 → 验证 → 上链
H0 → Worker → V1/V2/V3(C1+I3) → S2
如果你接下来想要,我可以直接给你一个:
- 整条流程的 Mermaid 时序图
- 或者
- Python / TypeScript 伪代码版本(包含 V1/V2/V3 & Worker 调度 skeleton)
你可以直接丢给工程师做 PoC。