在 ERC-4626 出现之前,以太坊上的每个收益金库都说着自己的方言。有的这样命名函数,有的用另一种方法计算份额价值,任何想支持它们的借贷市场或聚合器,都必须为每个金库编写并审计新代码。2022 年定稿的 ERC-4626 为金库提供了一门共同语言。
标准定义了什么
ERC-4626 金库持有一种底层资产,例如某种美元代币,并发行本身也是 ERC-20 代币的份额。标准规定了每个金库必须提供的函数:
- deposit 和 mint:存入资产并获得份额
- withdraw 和 redeem:销毁份额并取出资产
- totalAssets:报告金库持有或应收的全部资产
- convertToShares 和 convertToAssets:按当前比率在份额与资产之间换算
- preview 和 max 系列函数:在交易发送之前,显示交易会产生什么结果,以及交易规模的上限
份额价值如何增长
兑换比率等于总资产除以总份额。假设一个金库持有 1,000,000 枚美元代币,已发行 1,000,000 份份额,那么一份份额值一枚代币。金库的策略赚取了 20,000 枚代币。总资产增至 1,020,000,而份额数量不变,于是每份份额现在值 1.02 枚代币。新持有人存入 1,020 枚代币,获得 1,000 份份额。没有任何人的份额余额发生变化,但在收益产生之前就持有份额的人都获益了。这就是大多数金库代币采用的非 Rebase 设计。
标准为何重要
由于每个符合标准的金库都以相同方式回答相同的问题,一次集成就能适配所有金库。借贷市场可以通过读取 convertToAssets 接受金库份额作为抵押品,收益代币化协议可以把份额拆分为本金部分和收益部分,钱包可以按底层资产显示持有人的价值。这就是实践中的可组合性:一个标准把一个产品变成其他产品的积木。许多生息美元代币都基于这一标准构建。
风险与局限
标准接口并不说明金库如何使用资产。两个 ERC-4626 金库在钱包看来可能一模一样,承担的风险却截然不同。已知的陷阱包括:
- 份额价格操纵。在新建、几乎为空的金库中,攻击者可以向金库捐赠资产来抬高份额价格,使下一位用户获得的份额向下取整到几乎为零,这就是所谓的通胀攻击。谨慎的金库会用虚拟份额或初始注资来防范。
- 取整。标准要求取整方向有利于金库,这保护了现有持有人,但可能让集成方感到意外。
- 把份额价值当作价格。如果金库的总资产可以在单笔交易内被改变,直接信任 convertToAssets 的借贷市场就可能遭到利用;稳健的预言机更安全。
- 退出限制。金库可以限制或延迟提取,max 系列函数会报告这些限制。
对金库代码的审计,比它是否符合接口标准更能说明问题。两者都要核查,并了解金库实际持有什么。
常见问题
ERC-20 和 ERC-4626 有什么区别?
ERC-20 是同质化代币的基础标准,涵盖余额与转账。ERC-4626 在其基础上专为金库而设。份额本身是 ERC-20 代币,而该标准增加了存入资产、取出资产,以及在份额与资产之间换算的函数。
收益在 ERC-4626 金库中如何体现?
通过兑换比率体现。随着金库赚取收益,总资产增加而份额数量不变,每份份额可换算的底层资产随之增多。你的份额余额不会改变。
ERC-4626 能让金库变得安全吗?
不能。它标准化的是接口,而不是策略或代码质量。两个符合标准的金库可能承担截然不同的风险,所以策略、审计以及金库对份额价格操纵的防御,仍需逐一核查。
相关术语
金库代币
金库代币是由智能合约管理的资产池中的一份份额。随着金库赚取收益,每份份额对应的底层资产越来越多,而持有人的余额保持不变,这让其他协议很容易持有和跟踪金库代币。
DeFi 可组合性
可组合性是指 DeFi 协议可以像积木一样相互拼接,一个协议的代币无需任何人许可,就能在另一个协议中充当抵押品、流动性或收益来源。它成倍扩展了代币的用途,也把各个协议的风险连在一起。
生息美元代币
生息美元代币是一种以美元计价的代币,它把底层策略的回报传递给持有人,通常的方式是让代币本身随时间变得更值钱。回报可以来自政府债券、借贷或交易策略,并且是浮动的。
收益代币化
收益代币化把一枚生息代币拆分为两部分:本金代币,可在设定的到期日换取底层资产;收益代币,在到期之前收取浮动收益。交易这两部分,可以让一方锁定固定收益率,另一方承接未来收益。
参考来源
- EIP-4626: Tokenized Vaultseips.ethereum.org
- ethereum.org: ERC-4626 tokenized vault standardethereum.org
- EIP-20: Token Standardeips.ethereum.org
由 Tori Finance 团队撰写。不构成投资建议。收益会有波动,资金存在风险。