0112 分钟
PROPOSAL · TARGET · ACTION

一项可执行的提案需要什么?

把一句“改手续费”拆成目标、动作、参数和执行前状态,理解提案为何必须可重放。

本章目标学完后,你应该能:
  • 区分提案描述和可执行动作
  • 指出提案在执行前为什么不能直接改变协议状态
  • 用目标、动作和参数描述一个可审计的变更
章节位置第 1 / 4 章
  1. 上一章课程开始
  2. 本章一项可执行的提案需要什么?

    把一句“改手续费”拆成目标、动作、参数和执行前状态,理解提案为何必须可重放。

  3. 下一章一票代表多少投票权?
阅读前

先想一想这几个问题

展开答案前,可以先在心里做个判断。与预期不同的内容可以加入复习列表。

Q01提案 99% 赞成,为什么协议仍然可能完全不变?
简要回答

它可能没达到法定人数、还没排队、时间锁未结束,或执行调用失败。投票结果只是状态机中的一次授权,不是目标合约已经改变的证明。

和原先判断相比:

治理不是一场把意见数成百分比的投票,而是一条把“有人想改变协议”变成“协议状态真的改变了”的状态链。提案先描述目标和参数,之后才可能被投票、排队和执行。

从一句话到一条状态转换

“把手续费降到 0.20%”听起来像一项决定,但机器需要知道目标合约、动作类型和参数。没有这些字段,节点无法验证每个人是否在投同一件事,也无法重放执行结果。

GOVERNANCE SIMULATION虚拟代币 · 不连接真实治理
SECURITY 002 · PROPOSAL / VOTE / TIMELOCK / TREASURY

谁有权改变协议?

跟着一项提案从意图走到可执行状态,再检查投票权、时间锁和金库守恒。

当前场景手续费变更阶段:草稿
参与投票0法定人数 600,000
赞成比例0.0%占快照投票权
金库余额1,000,000虚拟积分
协议手续费0.30%运行中
总投票权1,000,0000 已委托
权限状态链草稿
  1. 01草稿
  2. 02投票中
  3. 03已通过
  4. 04时间锁
  5. 05可执行
  6. 06已执行

创建提案,冻结一份投票权快照。

CONTROL CONSOLE让提案前进一个合法步骤
投票委托
投出一票
Alice420,000
Bob330,000
Carol250,000
观察提示

先创建一项提案。先读清楚动作,再看票数,治理才不会退化成情绪百分比。

治理事件日志2 EVENTS
  1. 02

    投票窗口 3 天,法定人数 60%,时间锁 2 天。

  2. 01

    治理模块创建:1,000,000 治理代币、1,000,000 积分金库,提案需要投票和时间锁。

操作记录实验时间轴
1 个状态快照

拖动滑块可以回到此前的步骤。从那里继续操作时,后续记录会替换为新的操作序列。

初始状态
查看实验记录 →

实验室里创建提案后,右侧的手续费仍然是 0.30%。这不是延迟,而是边界:投票记录的是许可,执行动作才会写入协议状态。

展开:这一步如何实现
draft
  → voting(snapshot power)
  → succeeded / defeated
  → queued(timelock)
  → ready
  → execute(target, action, parameters)

链上实现通常把动作编码为目标地址、函数选择器和 calldata。教育模拟把它们压缩成目标、动作和值,但保留同一个原则:每一步都是可验证、可重放的状态转换。

理解检查

为什么投票通过后协议手续费仍然没有立刻改变?

留下审计问题

看到任何“治理已通过”的新闻时,继续追问:提案的精确 calldata 是什么?现在处于排队还是可执行?执行者是谁?这些问题比标题更接近真实的权限边界。

本章小结完成练习和理解检查后,可以保存本章