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