技术参考
Steakhouse Financial 的 Box Vaults 智能合约技术参考,涵盖角色、时间锁治理、分配控制、生命周期状态和资金模块。
这是 Box 的智能合约技术参考文档,Box 是由 Steakhouse Financial 构建的 ERC-4626 子金库。本文档记录了合约的角色与权限(Owner、Curator、Guardian、Allocator、Feeder)、时间锁治理、分配与交换安全控制、生命周期状态,以及面向 Aave v3 和 Morpho Blue 的资金模块集成。
Box 的作用
持有单一基础资产(例如 USDC)并发行 ERC-4626 份额。
在基础资产与白名单中的 ERC-20 代币之间进行配置分配。
通过白名单中的资金模块进行借贷。
使用代币预言机和资金模块 NAV 跟踪净资产价值。
架构
适配器是 Box 预期的 feeder。Box 份额由适配器持有,并通过以下方式报告回 Vault V2: previewRedeem (缓存于 BoxAdapterCached).
角色与权限
Owner
设置 Curator。
转移所有权。
设置
skimRecipient.
Curator
管理 allocator 和资金模块。
添加/移除白名单中的代币和预言机。
配置滑点限制。
提交受时间锁保护的变更。
可以发起关闭。
Guardian
否决受时间锁保护的操作(
revoke).触发关闭。
在 winddown 之前可以从关闭状态恢复。
仅可在最终 winddown 阶段更新预言机。
通常由代表 Vault V2 份额持有人的 Aragon DAO 控制。
Allocator
执行交换(
allocate,deallocate,reallocate).通过资金模块质押抵押品、借款、偿还。
可以使用
flash进行原子化的多步骤操作。
Feeder
唯一允许存款/铸造份额的角色。
在实践中,适配器充当 feeder。
时间锁治理
关键功能需要时间锁延迟,并且在执行前必须使用 submit() 排队。治理的设计是有意让 Vault V2 份额持有人能够通过由 Aragon DAO 控制的 guardian 进行干预,使他们在必要时可以否决已排队的操作或触发关闭。
典型的受时间锁保护的操作包括:
添加/移除 feeder
设置
maxSlippage添加代币、预言机、资金模块或设施
设置 guardian
时间锁延迟默认是 0;部署应初始化为非零延迟,以防止立即执行。
分配与交换安全
Box 施行 两层滑点控制:
单次交换滑点检查 基于预言机价格,每次交换必须满足
received ≥ expected * (1 - maxSlippage).周期滑点预算 已实现滑点相对于 NAV 按以下周期跟踪:
slippageEpochDuration。如果累计滑点超过maxSlippage,则在周期重置之前会阻止进一步交换。
在 winddown期间,忽略每周期上限,而单次交换容忍度会线性上升至 1%。
生命周期状态
资金模块
Box 通过以下方式集成借贷协议: IFunding 模块。每个模块都由 Box 拥有,并支持:
设施(协议特定配置)
白名单中的抵押代币
白名单中的债务代币
Box 只会添加 空的 资金模块(无设施、无代币、无债务)。
FundingAave(Aave v3)
facilityData必须为空("").使用 Aave Pool 以及可选的
eMode.pledge提供抵押品并启用抵押品使用。borrow将债务代币返回给 Box。NAV 是
抵押品价值 - 债务价值,最低为零。
FundingMorpho(Morpho Blue)
facilityData编码 Morpho 市场参数。每个模块支持多个设施。
通过以下方式强制执行 LTV 上限:
lltvCap相对于每个市场的 LLTV。pledge/borrow按每个设施进行验证。NAV 按每个设施计算并汇总,最低为零。
闪电操作
allocator(或在 winddown 期间的任何人)可以调用 flash() 以便在复杂序列中临时获取流动性。flash 期间会缓存 NAV 以防止操纵,并且 flash 代币必须在同一笔交易中归还。
审计与来源
ChainSecurity 审计(2025 年 12 月): 2025-12-16-chainsecurity.pdf
Cantina 审计(2026 年 1 月): 2026-01-06-cantina.pdf
最后更新于