执行摘要
一个资金库提案是一个治理提案,其可执行的有效载荷授权链上资金库操作(通常是转账、拨款或合约调用)。在 Livepeer 中,资金库提案在 协议层(链上):一旦达到法定人数和阈值,并且时间锁过期,编码的操作将确定性地执行。
本页面定义了资金库提案有效载荷的结构、执行语义以及主要的失败模式。
1. 正式定义
一个储备金提案 是可执行操作的元组:
每个操作 被定义为:
其中:
- 目标 是被调用的合约或地址
- 值 是附加的原生代币金额(如果有)
- 数据 是 ABI 编码的 calldata,指定函数选择器和参数
该提案将通过治理并在等待期后执行。
2. 治理授权
让绑定的质押变量:
投票权:
法定人数条件:
阈值条件(示例):
只有满足治理条件的提案才能进入时间锁队列。
3. 时间锁队列语义
一旦获得批准,提案将被放入一个延迟的时间锁队列中.
时间锁提供:
- 可预测的执行窗口
- 利益相关者的响应时间
- 防止突然或恶意更改的缓解措施
在延迟结束后才能执行。
4. 执行语义
在时间锁到期后,执行尝试应用每个操作 在执行交易中原子地进行。
两个重要属性:
- ** 确定性:** 执行由 calldata 严格定义
- ** 原子性:** 如果任何操作回滚,交易将回滚,除非执行模型明确容忍部分失败
因此,必须在考虑调用数据正确性和失败模型的情况下编写资金库提案。
5. 资金库转账作为标准案例
一种常见操作是资金库转账。
如果资金库余额是且分配金额是:
接收者余额增加 根据资产的转账语义。
6. 失败模式
国库提案执行可能因多种原因失败。
6.1 调用数据错误
错误的函数选择器或格式错误的 ABI 编码会导致回滚。
6.2 财务储备余额不足
转账金额超过财务储备持有的金额。
6.3 目标合约中止
由于访问控制、暂停状态或参数验证,被调用的合约拒绝调用。
6.4 资产转账语义
某些代币合约可能:
- 返回 false 而不是回滚
- 应用转账费用
- 强制允许列表
提案作者必须验证目标资产行为。
6.5 时间锁配置
如果时间锁延迟或执行窗口条件配置错误,提案可能变得无法执行。
7. 风险缓解检查表
在提交资金库提案之前:
- 通过注册表验证目标地址和合约
- 确认 ABI 编码正确
- 确认资金库余额充足
- 尽可能模拟执行
- 确保 calldata 可审计且作用域最小
8. 提案执行流程
9. 协议与网络分离
协议(链上):
- 提案负载定义
- 投票统计和授权
- 时间锁队列
- 确定性执行
- 金库转账
网络(链下):
资金库提案由协议逻辑强制执行;结果需要链下交付。
参考文献
Last modified on March 1, 2026