跳到主要内容

POC 机制、合约与架构白皮书

POC 是 Topo 生态中的贡献到 power 机制。它把 DApp 内发生的真实用户贡献,通过链上可信事件、Coinfair 价格快照、周期结算和链上 PowerStore,转化为可读取、可审计、可组合的用户 power。

本文面向技术评审方、DApp 开发者、治理参与方和生态合作方,解释 POC 为什么不是普通积分系统,链下结算如何保持可审计,以及链上最终承诺如何被下游模块读取。

核心结论

  • POC 的输入是链上可信 ContributionEvent,不是 DApp 自行上报的普通日志。
  • POC 的价值归一化来自 Coinfair 的周期价格快照,而不是事后实时价格。
  • POC 的计算在链下完成,原因是多 App、多用户、多价格和历史状态的周期聚合不适合逐笔放在链上。
  • POC 的最终结果必须写回链上 PowerStore,链上应用只读取 committed power。
  • POC 的可信性来自链上可信输入、链下可回放计算、链上最终承诺和写回后对账四个环节。

POC 要解决的问题

很多链上权重模型主要来自资产或 stake。这类模型容易表达资本投入,但很难表达用户在 DApp 中产生的真实业务贡献。

对 DApp 来说,贡献可能表现为交易、创作、参与、流动性、消费、任务完成或其他业务行为。不同 App 的贡献口径不同,token 价值不同,用户贡献也发生在不同时间。POC 需要把这些异构贡献转化成统一的链上 power。

POC 的目标不是替代 DApp 的业务逻辑,而是提供一个统一的贡献清算和链上权重承诺层。

一句话机制

完整链路可以拆成七步:

  1. 用户在 DApp 中产生业务贡献。
  2. DApp 通过 POC 可信路径发放 equity token。
  3. POC 合约在校验 App、token、custody 后发出 ContributionEvent。
  4. 计算层按周期收集可信事件,并获取 Coinfair 价格快照。
  5. 计算层结合 App 权重、用户贡献占比和历史 power 衰减,计算用户最终 power。
  6. 写回服务将结果写入链上 PowerStore 的下一周期 staged power。
  7. 链上周期推进后,staged power 变成 committed power,供下游模块读取。

三层架构

POC 可以抽象为链上可信层、链下计算层和链上消费层。

职责不承担
链上可信层App 准入、可信贡献事件、PowerStore 最终承诺多 App 大规模聚合计算
链下计算层周期聚合、价格快照、历史状态处理、批量写回自行制造贡献输入或覆盖链上最终结果
链上消费层读取 committed power 并用于 staking、governance、reward 等模块重新解释 DApp 贡献口径

链上合约边界

poc_registry

poc_registry 是 App 准入、身份和权重中心。它至少需要表达:

能力说明
App 身份记录 app address、app id、状态和基础 metadata
token 绑定记录 DApp equity token 与 custody 的对应关系
权重治理管理 App 权重、生效周期和暂停状态
准入状态标识 App 是否可产生 POC 认可的贡献事件
审计事件对 App 注册、暂停、恢复、权重变更和 token 绑定发出事件

Registry 的核心作用是让贡献事件有可验证来源和可治理权重。没有 Registry 准入的 App,不应进入 POC 结算。

poc_contribution

poc_contribution 是可信贡献事件入口。它不负责计算最终 power,而是负责校验并发出 POC 认可的 ContributionEvent。

ContributionEvent 的可信性来自:

  1. 调用方必须来自已准入的 DApp 或授权模块。
  2. equity token 和 custody 必须与 Registry 记录匹配。
  3. token 发放和事件输出在同一可信路径内完成。
  4. 事件包含 app、beneficiary、token、amount、period 归属线索和版本信息。
  5. 消费者可以回链上验证事件来源和 App 状态。

poc_power_store

poc_power_store 是链上 power 账本。它保存周期化的 staged power 和 committed power,并为下游模块提供统一读取口径。

PowerStore 的关键规则:

  1. Writer 只能写入下一周期 staged power。
  2. 当前周期 committed power 不应被逐笔实时修改。
  3. 周期边界后,staged power 才成为新的 committed power。
  4. 历史状态保留和衰减规则应可审计。
  5. 下游模块只读取 committed power。

价格与周期结算

POC 需要把不同 App、不同 equity token 和不同贡献时间的输入归一化。周期结算通常需要以下输入:

输入来源作用
ContributionEventpoc_contribution表示可信贡献发生
App 权重poc_registry表示 App 在当前周期的治理权重
token 价格Coinfair 周期快照把不同 equity token 转换为统一价值口径
历史 powerpoc_power_store支持继承、衰减或其他历史状态规则
周期参数链上配置和结算配置决定归属周期、写回窗口和生效边界

概念计算可以理解为:

App 周期价值 = App 周期贡献数量 × equity token 周期价格 × App 权重
用户贡献占比 = 用户周期贡献数量 / App 周期总贡献数量
用户增量 power = App 周期价值 × 用户贡献占比
用户最终 power = 历史 power 处理结果 + 用户增量 power

真实系统应使用固定精度、明确快照、确定性排序、可重放账本和链上写回校验。文档中的公式只用于说明机制,不代表具体实现中的全部参数。

信任边界

环节信任来源风险控制
DApp 业务事实DApp Move 合约状态机和事件状态机、权限、资产校验、事件版本
ContributionEventpoc_contribution 和 Registry 校验App 准入、token/custody 匹配、重复发放保护
价格快照Coinfair 周期价格来源固定周期、快照记录、异常 hold
链下结算可回放输入、确定性计算、结算账本输入归档、版本化算法、对账报表
写回Writer 权限和 PowerStore 校验只写下一周期、批次记录、失败重试
下游消费PowerStore committed power不读取 staged power,不读取本地预估值

POC 允许链下做复杂计算,但不允许链下系统自行创造可信输入或覆盖最终链上承诺。

审计与恢复

POC 运行中需要支持以下审计链路:

wallet address
-> DApp business object
-> DApp chain event
-> ContributionEvent
-> POC period
-> price snapshot
-> settlement ledger
-> staged power writeback
-> committed power

常见异常和处理方向:

异常处理原则
ContributionEvent 摄入失败从链上事件重新扫描,按 event id 或 tx hash 幂等处理
价格快照失败当前周期进入 hold,不使用临时人工价格覆盖
结算任务失败保留输入和错误上下文,修复后重放同一周期
Writer 写回失败记录批次状态,重试写入下一周期 staged power
App 被暂停停止新贡献进入结算,历史 committed power 按治理规则处理
争议或作弊通过后续贡献抵扣、治理修正或专门 reversal 机制处理

FAQ

DApp 能否自己发贡献事件?

DApp 可以发出自己的业务事件,但 POC 只认可可信路径产生的 ContributionEvent。普通业务事件可以作为候选贡献、审计材料或读模型输入,不能直接成为 POC power。

为什么贡献不是实时变成 power?

POC 需要同时处理多 App、多 token、价格快照、App 权重和历史状态。逐笔实时修改 power 会让价格、周期和审计边界变得不稳定,因此 POC 使用周期结算和下一周期写回模型。

为什么价格变化后历史结算不重算?

周期快照的意义是为当前周期提供确定口径。历史周期如果随价格波动反复重算,会破坏可审计性和下游依赖的稳定性。

如果 App 被暂停会怎样?

暂停后的新贡献不应继续进入 POC 结算。已经生效的 committed power 如何处理,应由治理规则、风险等级和修正机制决定。

下游模块应该读 staged power 还是 committed power?

下游模块只应读取 committed power。staged power 是下一周期的待生效结果,用于写回、对账和周期推进前的准备。

术语表

术语含义
POC把 DApp 可信贡献转化为链上 power 的周期性清算机制
App 权重Registry 中用于调节 DApp 贡献影响力的治理参数
equity tokenDApp 用于表达贡献或权益的资产载体
ContributionEventPOC 认可的链上可信贡献事件
staged power已写入但尚未生效的下一周期 power
committed power当前周期已生效、可被下游读取的 power
PowerStore保存 staged power 和 committed power 的链上账本
periodPOC 结算周期
Writer将结算结果写回 PowerStore 的服务或授权执行方

总结

POC 的核心不是把所有计算放到链上,而是把可信输入和最终承诺放在链上,把复杂、可回放、可审计的聚合计算放在链下。只要 ContributionEvent、价格快照、结算账本、写回批次和 PowerStore 之间可以完整对账,POC 就能在性能和可信性之间保持清晰边界。