第 03 章13 分钟
QUEUE · TIMELOCK · EXECUTION提案通过后为什么还要等待?
把通过的提案放进时间锁,倒计时结束后才允许执行;每一步都留下可重放的事件。
本章目标学完后,你应该能:
- 区分通过、排队、可执行和已执行
- 解释时间锁如何给观察者留下反应窗口
- 判断哪些状态变化只能由执行动作触发
- 上一章一票代表多少投票权?
- 本章提案通过后为什么还要等待?
把通过的提案放进时间锁,倒计时结束后才允许执行;每一步都留下可重放的事件。
- 下一章治理怎样执行金库转账?
阅读前
先想一想这几个问题
展开答案前,可以先在心里做个判断。与预期不同的内容可以加入复习列表。
Q01有两天时间锁,就能保证恶意提案伤不到协议吗?+
简要回答
时间锁只把危险公开两天,不会自动识别危险。安全仍依赖监控者发现问题、取消者有合适权限,以及用户真的来得及退出。
和原先判断相比:
通过不是终点。时间锁把“社区同意”和“协议改变”之间拉出一段公开倒计时,让成员、监控器和集成方有机会发现错误并做出反应。
四个状态,四种权限
提案通过后先进入 queued;等待两天变成 ready;只有 ready 才能 execute。每个状态都让不同的动作变得合法或非法,而不是给按钮换一套颜色。
SECURITY 002 · PROPOSAL / VOTE / TIMELOCK / TREASURY
谁有权改变协议?
跟着一项提案从意图走到可执行状态,再检查投票权、时间锁和金库守恒。
当前场景手续费变更阶段:草稿
参与投票0法定人数 600,000
赞成比例0.0%占快照投票权
金库余额1,000,000虚拟积分
协议手续费0.30%运行中
总投票权1,000,0000 已委托
- 01草稿→
- 02投票中→
- 03已通过→
- 04时间锁→
- 05可执行→
- 06已执行
创建提案,冻结一份投票权快照。
CONTROL CONSOLE让提案前进一个合法步骤
投票委托
投出一票
Alice420,000 票
Bob330,000 票
Carol250,000 票
观察提示
先创建一项提案。先读清楚动作,再看票数,治理才不会退化成情绪百分比。
- 02
投票窗口 3 天,法定人数 60%,时间锁 2 天。
- 01
治理模块创建:1,000,000 治理代币、1,000,000 积分金库,提案需要投票和时间锁。
操作记录实验时间轴
1 个状态快照拖动滑块可以回到此前的步骤。从那里继续操作时,后续记录会替换为新的操作序列。
先尝试在投票结束后直接执行,观察错误反馈。然后排队、推进时间,再执行手续费变更。时间轴和事件日志会显示批准、等待和写入状态的顺序。
展开:这一步如何实现
succeeded → queue(operation, salt, eta)
eta reached → ready
executor calls target only when ready
真实系统会把操作哈希、时间戳、前置和后置调用一起纳入权限检查。模拟器用 queuedAt + timelockDelay 表示同一条可验证边界,并记录每个事件以支持完整重放。