第 01 章12 分钟
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 是什么?现在处于排队还是可执行?执行者是谁?这些问题比标题更接近真实的权限边界。

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