1. 首页
  2. 术语表
  3. ERC-4626

ERC-4626

又称 代币化金库标准 · EIP-4626

定义

ERC-4626 是以太坊上的代币化金库标准。它定义了一套通用接口,用于把资产存入金库、获得相应份额,以及计算每份份额的价值,使钱包和协议无需定制代码,就能对接任何符合标准的金库。

在 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 系列函数会报告这些限制。

对金库代码的审计,比它是否符合接口标准更能说明问题。两者都要核查,并了解金库实际持有什么。

Tori Finance 如何运用这一概念

strUSD 是一种 ERC-4626 金库代币。其底层资产是 Tori Finance 的合成美元 trUSD,每一份 strUSD 份额都代表对金库中所持 trUSD 的索取权。金库累积策略的浮动收益,因此每份份额对应的 trUSD 价值会随时间变化,而持有人的份额余额保持不变。由于 strUSD 遵循这一标准,已经支持 ERC-4626 金库的协议可以直接与之对接。

常见问题

ERC-20 和 ERC-4626 有什么区别?

ERC-20 是同质化代币的基础标准,涵盖余额与转账。ERC-4626 在其基础上专为金库而设。份额本身是 ERC-20 代币,而该标准增加了存入资产、取出资产,以及在份额与资产之间换算的函数。

收益在 ERC-4626 金库中如何体现?

通过兑换比率体现。随着金库赚取收益,总资产增加而份额数量不变,每份份额可换算的底层资产随之增多。你的份额余额不会改变。

ERC-4626 能让金库变得安全吗?

不能。它标准化的是接口,而不是策略或代码质量。两个符合标准的金库可能承担截然不同的风险,所以策略、审计以及金库对份额价格操纵的防御,仍需逐一核查。

参考来源

由 Tori Finance 团队撰写。不构成投资建议。收益会有波动,资金存在风险。