本文深入探讨了 ERC-4626 标准的背景、核心概念及其在 DeFi 生态系统中的重要性。ERC-4626 通过为代币化的资产 Vault 提供统一的接口和功能,实现了更高的互操作性与兼容性,为 DeFi 创新奠定了基础,同时也指出了潜在的风险及技术挑战。
1869年,德米特里·门捷列夫发布了化学元素的周期表,这一科学分类成为标志性之一。通过系统地组织已知的物质构建块,并根据共享属性揭示物质之间的关系,门捷列夫的框架为几代人带来了突破。周期表从根本上改变了科学家对物质组成和创造的概念,促进了材料的解构和有序重构。
今天,在DeFi中,我们处于理解加密资产架构的新基础之上。新颖DeFi设计的寒 Cambrian 爆发使基础设施分散、孤立,并且不可整合。
周期表固有的模块化设计彻底改变了材料科学。它通过多样配置组合基本元素,允许对材料进行解构与重建,激发了前所未有的材料创新时代。在DeFi领域也显现出类似的“乐高”风格模块性,随着ERC-4626代币化金库接口的出现。
ERC-4626实现了对代币化资产金库的类似分类(如周期表)——为DeFi组成性奠定基础货币乐高。金库允许集中资本投向管理的收益策略,并进行按比例的代币分配。通过将金库资产框架作为具有可靠接口属性的模块组件,而非临时集成,该标准 enabled 了通过上下文组合的无权限创新。
然而,金库机制在各协议间存在差异——由于会计、存款范式和数据访问惯例不同,妨碍了互操作性。
对金库交互的分类为结构化衍生品、堆叠聚合器和可预测基准行为的沙盒实验铺平道路。枚举的规范增强了外部合约依赖的信心,为金融元结构的爆炸奠定了基础。它为生态系统的演进提供了未来保障,同时通过减少重复工作加速了这一进程。最重要的是,它将竞争范式转变为专业分工——每个金库都是主权的,同时也是合作的。
代币金库规范将这些收益容器转变为金钱乐高兼容性,现在可以堆叠和链接在模块化配置中,开启新的组成可能性。金库策略专门化,而金库访问则通用化。
在本文中,我们深入探讨如下主题:
促进跨链互操作性的核心功能
架构和实施最佳实践
在借贷、结构化产品、代币化质押等领域的用例
风险评估——技术隐患及可持续性问题
通过围绕这一金融基础层标准构建问题和机会,我们描绘了一条通向增加资本效率和无权限创新的路线图,基于可及性高于排他性原则。
因此,正如元素共同性产生了组合化学,金库行为组分化促进了新兴的加密金融原生。聚合的基础在无障碍创造中融为一体。金库接口标准或许会催化DeFi自我的“周期表”时刻——在混乱中带来秩序。
ERC-4626是以太坊标准,提供代币化金库的框架,专注于处理单一基础ERC-20代币的金库。该标准在DeFi中具有重要意义,因为它试图为这些金库建立统一的接口和功能,从而增强各种DeFi应用之间的兼容性和互操作性。
ERC-4626的核心定义了代币化金库的标准API。这些金库基本上是管理特定基础ERC-20代币的智能合约。金库发行自己的代币,称为份额,代表对金库资产的所有权。例如,向金库存入100个ERC-20代币可能会发行10个份额,表明存款人对金库持有的一部分资产的索取权。
该标准要求任何符合ERC-4626的金库实现几项关键功能:
存款和取款:用户可以向金库存入和提取基础ERC-20代币。存入代币的用户将获得相应数量的份额。相反,当取款时,他们用相应数量的基础代币兑换这些份额。
资产与份额之间的转换:ERC-4626提供方法来确定给定金额的基础资产值多少份额,反之亦然。这种转换对于理解份额相对于基础资产的价值至关重要。
查看总资产和总份额:该标准包括查看金库管理的基础资产总额及发行份额总量的功能。这种透明度对用户了解金库的规模和范围至关重要。
处理费用和滑点:该标准承认金库可能对各种服务收取费用,并提出滑点的概念——即由于链上条件,期望与实际份额价格的差异。
ERC-4626金库必须实施ERC-20标准作为其份额,使其与更广泛的以太坊生态系统中的钱包、交易所和其他支持ERC-20代币的服务兼容。这种实施细节确保了份额本身具有尽可能广泛的可用性。此外,该标准还允许可选实现EIP-2612,改善用户在份额批准方面的体验。当用户需要允许其他智能合约支出其份额时,这一补充特别有用。
ERC-20标准定义了可互换的代币,例如稳定币、治理代币或质押衍生品。它概述了转账、批准和查询余额等关键功能。局限性包括缺乏内置特许权使用费或代币铸造上限。
ERC-721处理具有独特元数据的非可替换代币,如数字艺术和收藏品。它允许枚举所有者的资产并在各方之间转移NFT。然而,在不同钱包间聚合持有资产或评估投资组合价值可能会变得复杂。
ERC-1155将两者标准的多个方面融合到多代币合约中,处理可替换、非可替换和半可替换代币类型。然而,验证在现有合同下铸造的新NFT的真实性会很棘手。
早期DeFi集中在基本借贷协议上,允许加密抵押贷款和保证金交易。平台功能集很简单——供应资产、借入资产。然而,快速的收益 Farming 创新导致了新的组合机会。聪明的开发者开始将独立的借贷、交换、流动性和衍生物模块创造性地叠加到自动化收益优化等复杂策略中。这种“货币乐高”架构产生了单个协议设计者未曾预见的新的行为。用户寻求在孤立系统中进行更高级的编排,以寻求保证金优势。
目前DeFi中的交互形式多样,但后端系统依然支离破碎。独特的收益金库架构、自定义奖励代币分配方案和自定义会计系统妨碍了无缝的跨平台互操作。这种情况体现在智能合约开发者不断重复构建冗余集成的时间浪费上。
虽然已经过去了几年,但ERC-4626通过标准化金库交互和会计解决了这一问题。前端可以抽象后端实现细节,构建者可以创造性地组合金库。标准接口消除了不必要的摩擦,加速了组合创新:结果是为最终用户提供快速、更安全和更多样化的金融机会。
ERC-4626规范扩展了ERC-20可替代代币标准,以代表金库份额。通过向符合标准的金库合约存入资产,用户获得ERC-20代币,代表金库所持有的部分资产的分散所有权。
铸造Token的数量将相应于供给金库的资产的美元价值或数量(基于当前汇率)。随着金库通过复利利率、交换费用、清算奖金或其他协议收入流进行额外收益的话,这些收益将按照用户持有的份额数量按比例分配给所有金库股东。
这使得金库代币在传统金融中类似于ETF的功能——持有人有权从所持基础资产的整体收益中抽取一部分利润。然而,份额更灵活,因为它们可以在AMM市场上自由交易以实现收益,用作借贷协议中的生产性抵押,质押以获取治理权,有效与期权合约捆绑等。
金库代币的可替代性还创造了新兴的组合创新。
如果借贷平台A在代币X上提供更高的利息,而平台B在代币Y上的利率更好,精明的整合者可以构建跨链路由系统,自动平衡资产分配以优化收益。交易员可能会利用期货或期权等衍生品,这些合约的结算基于多样化金库代币的价值,而不仅仅是单个资产。
通过用一致的份额代币接口封装收益聚合策略,尽管底层实现不一,复杂的机会也随之而来。
如本文进一步讨论,ERC-4626规范概述了金库应实现的各种接口,以启用跨兼容性。这些包括:
存款功能
允许用户将资产提供给金库,并铸造相应的ERC-20份额。
接收地址参数,以便代表其他账户进行存款(对智能合约钱包和整合者有用)。
取款功能
允许将金库份额兑换为基础资产。
将兑换的资产直接转移到指定接受地址以提高灵活性。
计算份额功能
返回当前金库份额与基础资产之间的汇率。
对于准确定价在二级DeFi市场或衍生品中的金库代币至关重要。
预览取款功能
返回可以为一定数量的份额兑换的最大基础资产数量。
对于风险分析UI在取款前预估滑点十分有用。
转账Hook和事件
在链上记录代币状态变化以进行交易对账。
例如afterDeposit的Hook允许与外部合约的自定义交互。
虽然所有的实现共享统一接口,但在如下方面,架构方法仍可能显著不同:
智能合约控制:管理员/所有者角色和社区控制金库之间的区别。
托管与非托管:关于资产恢复的法律含义和审查抵抗的保证。
收益策略限制:简单的被动聚合与动态优化对于价值稳定的影响。
当金库代币被用作生产性抵押或衍生品交易输入时,对这些架构变量的假设将可能造成显著的风险差异。因此,实施者的透明度增强了金融工程师的比较分析。随着时间推移,对多样化方法的开放评估借助共享接口促进标准内的迭代创新,互操作性使得模块化增强成为可能。
代币化金库结构:ERC-4626的主要概念是代币化金库,一个管理单一类型基础EIP-20(ERC-20)代币的智能合约。这些金库发行自己的代币,称为份额,代表对金库资产的一部分索取权。
份额代币标准合规性:金库所发行的份额符合ERC-20标准。这种合规性确保了与现有以太坊生态系统的广泛兼容性,包括钱包、交易所和其他与ERC-20代币交互的智能合约。
资产和份额转换功能:ERC-4626提供将在基础资产和金库份额之间进行转换的函数,包括确定一定数量的基础资产值多少份额,反之亦然的方法。这些转换函数对于理解用户份额的价值至关重要。
存款和取款机制:该标准包括将基础ERC-20代币存入金库和提取的功能。存款使得份额的发行,而取款涉及用基础代币兑换这些份额。
总资产和份额追踪:ERC-4626要求实施函数来追踪和报告金库所持的基础资产总量及已发行份额的总量。这种透明度对于评估金库的规模和表现至关重要。
处理费用和滑点:该标准承认金库可能收取的多种费用的潜在情况,如管理费或绩效费,并提出滑点的概念,指的是由于市场条件所致的期望与实际价格之间的差异。
可选EIP-2612实现:虽然不是强制性的,ERC-4626金库可以实现EIP-2612,从而增强用户在份额批准方面的体验,特别是在涉及允许其他合约支出用户份额的场景中。
安全性考虑:该标准强调金库实施中的安全性重要性。虽然ERC-4626概述了接口和预期行为,但底层智能合约的逻辑可能不同,因此需要认真审查和分析以确保安全性和可信度。
向后兼容性:ERC-4626设计为向后兼容ERC-20标准,以便与现有的以太坊生态系统中的系统和平台进行整合。
这些核心组成部分共同定义了ERC-4626标准,为在以太坊区块链上创建和管理代币化金库提供了一种结构化和标准化的方法。此标准化旨在提高DeFi领域的互操作性、可用性和安全性。
ERC-4626的技术架构可以通过考察其关键组件和功能来理解:
方法
asset():获取基础EIP-20代币的地址
totalAssets():获取金库管理的总资产
convertToShares():估算存款数量的份额
convertToAssets():估算一份数量的资产
存款/取款方法用于资产和份额之间的交易
预览方法用于模拟存款/取款
最大方法用于获取存款/取款限制
1. 代币化金库概念
目的:ERC-4626金库是管理单一类型ERC-20代币池的智能合约。
份额发行:这些金库发行自己的代币,称为份额,代表对金库资产的一部分的按比例索取权。
2. 份额的ERC-20合规性
标准合规:由ERC-4626金库发行的份额符合ERC-20代币标准。这确保了与更广泛的以太坊生态系统的兼容性。
份额代币特征:股份具有标准ERC-20功能,如transfer、approve和balanceOf。
3. 资产管理功能
存款和取款:用户可以向金库存款基础ERC-20代币并提取这些代币。此过程涉及份额的发行或焚烧。
deposit函数:允许用户存入基础代币并收到金库份额。
withdraw函数:使得用户能够兑换其份额以获取基础代币。
转换机制:提供在基础资产与份额之间的转换函数。
convertToShares:计算一定数量的基础资产值的份额数量。
convertToAssets:确定一定数量的份额代表的基础资产数额。
4. 查询金库状态
总资产和总份额:查询金库管理的总资产和已发行份额总量的函数。
totalAssets:返回金库所管理的基础资产总金额。
totalSupply:标准ERC-20功能,被重新用于反映金库份额的总供应量。
5. 处理费用和滑点
费用结构灵活性:该标准允许实施各种费用结构,尽管具体内容由各自实现来决定。
滑点考虑:承认交易中可能存在滑点,提供估算和考虑滑点的机制。
6. 可选扩展与安全
EIP-2612用于授权:可选实施,允许进行无Gas交易并改善用户体验。
安全强调:尽管ERC-4626定义了接口及预期行为,底层合约逻辑可能存在变化,因此需要严格的安全检查。
7. 事件发射
8. 向后兼容性
9. 与DeFi生态系统的互操作性
架构中一些关键考量:
灵活性与标准化:虽然ERC-4626标准化了代币化金库的某些方面,但它允许实施细节尤其是在费用结构与资产管理策略方面保持灵活性。
安全性与信任:在智能合约的自主权与财务影响面前,安全至关重要。标准鼓励但不强制实施特定的安全实践,为创新留出了空间,但也要求开发者与用户的警惕。
用户体验:通过与ERC-20标准对齐,以及允许像EIP-2612这样的可选扩展,ERC-4626旨在提供一种熟悉且用户友好的体验。
为了说明ERC-4626的技术架构,举例一个虚构的DeFi平台“VaultZ”,它实施了一个ERC-4626代币化金库,该金库管理与美元Hook的DAI稳定币。
VaultZ提供一个金库,用户可以将DAI存入,以获取收益机会。该金库发行自己的股份,称为“VZD-Shares”,代表一部分VaultZ的DAI持有权益。
步骤1:用户交互 - 存款
用户操作:埃隆决定向VaultZ金库存入1000 DAI。
智能合约过程:
埃隆调用金库智能合约的deposit函数。
合约计算要发行的VZD-Shares数量,基于当前份额价格,这由金库总DAI和现有VZD-Shares的比例推导得出。
合同向埃隆的地址发行计算出的VZD-Shares并锁定她的DAI在金库中。
步骤2:金库操作 - 生成收益
金库策略:金库采用多种策略(例如在其他DeFi平台借出DAI)以生成收益。
收益积累:随着时间的推移,这些策略的收益累积,增加金库持有的DAI总额。
步骤3:用户交互 - 取款
用户操作:一段时间后,埃隆决定提取资产。
智能合约过程:
埃隆调用withdraw函数,指明她希望兑换的VZD-Shares数量。
合约根据当前的份额价格计算相应的DAI数量。
然后合约烧毁埃隆的VZD-Shares并将计算出的DAI数量返回给她。
步骤4:份额价值计算
转换函数:在整个过程中,像convertToShares和convertToAssets这样的函数向埃隆提供基于DAI信息和相应的份额值。
动态份额值得变化:随着金库策略生成收益,VZD-Shares的价值随着金库内部累积变化,影响DAI与股份的价值比。
步骤5:处理费用和滑点
费用结构:VaultZ可能实施费用结构,其中提取金额的一小部分作为费用扣除。
滑点考虑:当大笔资金被存入或提取时,滑点可能发生,这影响了份额价格。金库的智能合约将其计入计算中。
附加功能
EIP-2612的实施:为了改善用户体验,该金库可能实施EIP-2612,允许用户进行交易,而不需要单独的ERC-20approve调用,从而节省Gas费用。
事件发射:每次存款和取款操作都将事件发射,以增强透明度并允许外部观察者和接口跟踪这些操作。
EIP-2612引入了对ERC-20代币批准添加离线签名能力的标准化方法。该提议增强了ERC-20代币标准,允许用户通过签名而非链上交易来批准Token转账。EIP-2612的主要组成部分是在ERC-20代币标准中增加一个permit函数。
Permit 函数:EIP-2612的核心特性是permit函数。该函数允许代币持有人用一次签名的消息授权支出指定数量的代币,而不是进行链上交易。这种方法不仅更节省gas,还更加用户友好。
EIP-712标准:EIP-2612利用EIP-712,该标准可以对以太坊的安全性、可类型和结构化数据哈希和签名进行标准化。EIP-712使已签名消息更加易于理解和安全,允许用户准确明确自己在签署什么。
Nonce:为了防止重放攻击,EIP-2612引入了一个nonce,唯一数量与每个操作相关,每个nonce只能用一次。这个nonce确保每个permit签名是唯一的,不能被恶意重复使用。
截止时间:permit函数包括一个截止时间参数,指定签名有效的时间。这一特性的安全作用是限制所授权限的有效期间。
在DeFi协议中,特别是在涉及收益金库的协议中实施EIP-2612,提供了众多优势。
许多ERC-4626金库的实现是从标准ERC-20合约中继承批准机制的,涉及存入和赎回份额。这意味着用户必须先进行approve()的调用,然后才能进行存款,否则转移将被回滚。每个新合同的集成都因批准事件而增加了gas开销。
通过实施EIP-2612用于金库份额代币,可以通过将这种两步骤模式替换为单步骤的permit签名来节省Gas费用。钱包可以直接调用存款或赎回,传递已签名的许可,以便临时访问金库,而不需要单独对授权进行写入。这提高了效率,改善了围绕DeFi中金库交互的用户体验。
此外,由于仅限Externally Owned Accounts(EOA)能主动签署交易,使用permit可以实现当前标准批准无法实现的智能合约交互。例如,一个程序化的keeper机器人当达到设定阈值时,能够将抵押品收益转换为稳定币。
总之,EIP-2612通过提供一种节省Gas、安全和用户友好的代币授权方法来补充ERC-4626,在ERC-4626主要用于DeFi领域至关重要。这种组合提升了DeFi协议的整体效率和吸引力,鼓励更广泛的采用和用户参与。
ERC-4626规定的金库结构有助于构建衍生金融产品,这些产品依赖于基础资产的准确价格反馈。以代币化质押为例——持有人希望获得以太坊的权益证明链的收益和治理权,而无需锁定资产或放弃流动性。
像Lido这样的协议允许质押ETH并铸造资本化的代币,如stETH,来支持质押的ETH。但是,跟踪质押衍生物与ETH之间的准确兑换比率很复杂,因为收益波动、惩罚、MEV提取等因素影响不少。这阻碍了围绕以质押ETH结算的期权、期货和其他合约的定价。
然而,将Lido的金库进行封装为符合ERC-4626合同可以提供可靠的汇率预言机。该标准明确要求calculateShares() 查看功能,引用金库代币与资产之间的确切比率。这使得以一致的接口为stETH定价期权、期货、掉期及其他结构化产品成为可能。
同样,对于另一种称为线性池的衍生合约,允许将质押衍生物如stETH直接交换为资产如ETH,跟踪组向之间的相对价值至关重要,以设定不变的汇率。例如,Curve的基础池试图依赖高度操控的外部报价。实现在线性池上建立符合标准的金库使用可验证的类似确凿链上数据,这种抗操控的特性更有助于可持续的流动性和定价。
线性池是具有两个关键特征的去中心化交易池——
固定的不变资产比例
一个资产的价值/价格变化直接影响到另一个资产
(这与像Uniswap这样传统的恒定产出池形成对比,在那里,价格影响是对数的。相同输入资产数量却带来递减的价格影响。)
例如,DAI-USDC线性池将始终确保池中1 DAI = 1 USDC的价值,通过基于预言机的重新平衡自动实现。
如果外部市场价格变化为$1.01每DAI:
池将变得不平衡,而DAI的价值相较于USDC过高。
为了维持比例,池自动铸造额外的USDC并购买DAI回归。
这将周期的节点同步归还于Hook。
这种对配对资产价值和价格的直接线性联系允许以最小滑点的方式高效回转代币作为重新平衡价格波动,无需产生多余成本。
现如今,线性池是一种极佳的机制,用于将质押的衍生代币如Lido的stETH转换回主网资产如ETH。
随着来自验证节点的收益造成stETH和ETH价格间的分歧,线性池自动重新平衡数量以维持平价。这为质押者提供流动性和固定兑换率,即使收益波动很大。
例如,基于ERC-4626合约的Yearn yVault 实现stETH-ETH线性池将具备:
使用可验证的链上汇率直接赎回stETH以获取ETH
随着收益积累,每stETH的ETH支持的资金保持比例平衡
抵抗外部报价操控
线性池创建了有效转换资产之间的依赖性,维持可靠的不变性定价,对于质押衍生资产尤其有价值。ERC-4626的标准化进一步锁定了开发者和用户利用金库互操作性时的这一保证。
抽象化使得无权限创新得以实现,没有审查。围绕金库代币的结构化产品不再需要特定平台的批准。任何人都可以围绕Lido的stETH构建期权,或围绕任何金库构建期货,而不会需要定制化的集成。金库衍生产品亦可能释放一些市场,围绕历史上更难以大规模金融化的利率策略。
通过采用一致的接口处理代币化质押衍生物如stETH、sdBTC和mSOL,提升了DeFi“乐高”架构中的可组合性。自动收益优化器如Yearn可以基于绩效分析,在标准金库间重新分配资本,避免了一次性集成过程。
交易者能够在流动性质押衍生物上开发复杂的跨链套利策略,利用来自多个链的金库如Kava、Anchor、Kinetic等。期权平台可以围绕一篮子的收益金库代币构建产品。授信机构接受来自多个链的代币化质押资产作为生产性抵押物,因为它们共享一个公共接口。最终,依靠金库标准隐藏实现,释放创新潜力。
借贷平台和收益追求者可以利用符合ERC-4626的金库代币作为抵押资产或收益优化机会。该标准通过提高财务化程度,从根本上创造了价格和流动性氧气。
对于借贷者,接受金库份额作为抵押物显著扩大了借款人所能使用的有效加密资产池,借势于供应方和需求方双方。审计师认证标准的合规性,快速生成即具抵押资格的流动资产,而无需临时批准。借款者获得针对之前无法复制的复杂收益生成策略的无抵押融资。
与此同时,收益聚合者通过统一接口将资本分配推动至风投最高的机会。例如,平台们极大简化了跨平台资本配置决策,以节省用于分析定制会计方案的资源。最终结果——为提供方带来高效收益,借款者实现增强的杠杆效应。
基于ERC-4626的性质,我们可以预期或构思该标准下可能开发出不同类型的金库。以下是一些可能的方向,实际的案例可能随着生态的成长而多样化:
除了上述的示例之外,我们希望能扩展一些潜在的方向:
而非单一投资意图,我们可能会看到金库被结构化为在不同投资者可接受的风险回报下,提供对同一基础投资组合的分层投资:
优先夹层 - 较低的风险/回报,用作固定收益替代品
中间夹层 - 中等风险/回报,提供平衡投资
初级夹层 - 较高风险/回报,具有类资本增长潜力
这将传统融资中证券化的原则应用到定制的去中心化产品中。
金库可以作为区块链与主流金融科技融合的载体,与像Robinhood、Revolut或新兴银行等公司合作。这些企业可利用金库标准,提供尖端的DeFi储蓄利率、质押收益以及风险管理的加密投资,纵深应用自身已有的功能。
金库可为预测市场、在线投注以及其他需要即时清算、代币交换或价格发现的应用提供链上流动性池,而不再仅依赖于外部预言机。金库标准的组合性为融合金融科技、传统金融和区块链创新开启了潜力,解锁新一代的嵌入式DeFi服务。
首先,像ERC-4626这种标准的出现似乎是纯正的好消息,为如今乘着DeFi浪潮的快速发展带来更大的组合性与互操作性。然而,作为想要建立可持续长期系统的构建者,必须超越表层的乐观来探讨——可能会发生什么呢?
你会发现,当采用者达到了规模,财务激励的机制会以意想不到的方式暴露设计中的隐藏缺陷,即使这些设计最初极具善意。多个协议的结合所产生的化学反应将给出单个开发者无法完全预见的出现行为。记住闪贷攻击造成的稳定币失联吗?DeFi是复杂的!
所以,尽管跨平台金库标准消除了一次性重复集成的辛疲,但我们也必须承认反面——标准化的利用攻击面现如今已跨生态系统而非单一领域。这还不包括金库策略在利用衍生品和流动性质押时,试图最大化收益所采用的本质上是激进的策略。
在追求alpha的过程中存在固有风险。因此无论标准与否,我们应当应用原理严格测试金库在敌对条件下的表现。确保用户寻求信誉良好的收益时,其委托的资产安全无恙。应学习在赋予抽象化带来深远能力的时候,准确把控为长期建立经济安全所需承担的重大责任。
因为新颖的组合性与无权限创新激励着我们开拓者,但我们对希望在加密寒冬中生存的用户的责任要求更严谨的推理。
管理feeOnTransfer代币:某些代币在转移时自动收取费用,通过从金额中扣除百分比来进行。当与这些代币交互时,金库必须确保在扣除费用后正确计算净代币频则于存入,并正确铸造期望的用户股份。如果在存款/提款时计算费用没有考虑周到,就可能导致会计失衡而损失用户资金。
适当使用小数:如果金库没有与基础代币拥有相同的小数位数,可能会因为在汇率转换时的舍入树发生精度损失。用户可能昔日收到更少的股份或提款时的资产。明确处理资产的小数一致性至关重要。
舍入考量:与小数相关,某些关键计算,如计算份额及资产的舍入方向会略微倾向于金库与用户之间不对称的利益。保持一致并记录舍入方向,防止小幅累计计算中发生不公平的倾斜。
预览功能:预览开发显示可为股份兑换的最大可赎回资产,而预览铸造则确保存款额所能获得的最小股份。不过,由于解释的混用,二者可能造成资金的意外损失。
覆盖核心功能:在不覆盖基本存款/提款方法的情况下,建议使用预设Hook来应用自定义逻辑。核心方法包含复杂的逻辑,负责同行重入、余额更新以及风险控制等机制。使用拐点减少威胁,也避免了破坏这些保护性的操作。
零份额状况:在涉及用户零份额的金库交互中,可能需要特别处理。应该明确划定在存取券时有关撤消转移以及费用转移的期望。
金库作为价格预言机:根据calculateShares计算的潜在操控汇率,执行外部合约定价让这些合同获得讹诈类似以致成薄弱。防御性编程假设恶意汇率发生。
实施特定问题:遵循统一标准接口并不保证每种实施安全性。应审计代码,在如重入攻击、控制访问边界与金库策略和会计逻辑中的信任假设尽可能严谨做出评估。
EOA滑点限制:如果允许EOA直接访问,金库可能通过价格上限或动态下限处理预览与实际交换汇率间的滑点损失。
金库扩展:尽管自定义扩展提高了灵活性,但在费用模型、定价逻辑和份额铸造条件等方面显著偏离标准的实现可能会突破集成假设,需要作详尽的逻辑分析及作用确认。
许多问题,例如小数处理、舍入原则和预览逻辑,可能在独立看来显得不重要。然而,它们在架构堆叠中的瀑布效应也能引发风险。只需一个金库在此微小呈现不当陷阱便可能对依附在其外部的合约造成严重影响,完全导致开发者失去控制。
我们当前享受的是主要聚焦于创新速度的建设者首选环境,但随着被锁资金上涨,寻求从复杂性中通过技术细节榨取商机的专业攻击者必然不断涌出。我们须以攻击者的存在为前提展开设计。
像ERC-4626这样的标准在快速普及中必然出现效率提升,没有稍减的工作负荷。但正式流程确保合规与安全的实施,却往往滞后了有机的增长。我们需要对担保代币合规性的明确认定,审计模式与阶段响应能力、卫生指导和责任透明性,从而与开放源代码的组合特性并行推动机构级的可信赖性。
在日益多链的未来中,桥接攻击、跨链威胁和国家政策的变更也潜藏着未建模的混沌风险。通过治理、保险和算法调整管理波动等机制为设立保障以局限于泻入方式并非单一域多向影响带来的影响,都变得必要。一个完整的生态面临的挑战不仅技术边界,而是更广泛、社会甚至政治的议题。
Rari Capital事件常常作为安全智能合约设计的重要案例,描述了在DeFi中的跨协议交互所伴随的风险。
背景
Rari Capital:一家提供多种收益生成解决方案的DeFi平台。
以太坊池:Rari Capital的产品之一,允许用户存入以太坊(ETH)以获取收益。
事件经过
日期:该黑客事件发生在2021年。
损失:大约价值1100万美元的代币,这相当于Rari Capital(以太坊池)的总资金的60%。
Rari Capital创建了多种收益生成产品,用户可在此存入以太坊(ETH)并为其资产赚取利息。
根本原因分析
这次事件的关键技术因素可追溯到Rari的Ethereum Pool与Alpha Finance的ibETH(反向绑定ETH)代币合约之间的集成。
作为收益生成策略,Rari的池将用户的ETH存入Alpha Finance发行的ibETH代币。为了追踪ETH的资产价值和用户的股份,Rari的智能合约引用了ibETH的两个关键功能——totalETH()和totalSupply()。
然而ibETH合约包含一个名为work()的功能,该功能出乎意料地可被利用。用户不仅能够透过重复调用Rari的存取机制改变基础ETH余额,在会计中同时通过执行支付的函数实现对total ETH的更新。
此攻击者在交替提款时,通过多参数调用Rari的存入和提取机制,以及在此间来动态操控报告的总ETH个比例,最终能够兑换到高于期许的价值。
每一步的过程安全漏洞的存在也体现出DeFi跨协议集成无约束的风险,以及在交互合约间状态更改时防止重入风险的缺乏保护。
教训总结
跨协议风险:此次事件突显了整合多个协议的风险,特别是当一个协议的功能会影响另一个协议的财务计算时。
智能合约安全性:对智能合约交互进行彻底审查和理解的必要性,尤其是在万象纷呈的DeFi生态中。
重入攻击:针对重入攻击的防范,不判别到了安全智能合约设计中的共同弱点。
为应对事故,Rari Capital增强了成本流程,包括对外部协议连接的审计,以确保后续间接集成的安全。
在生态系统层面,这种让人们愈加重视设置一致性——ERC-4626等标准的产生有助于为互操作DeFi合约赋予安全的动力和前提,随着实施去除未通验状态转变,也很大程度上减缓了对流动性池和基础收益金库的干扰。
Cream Finance事件常作为DeFi系统内的复杂性及所固有的风险,尤其是涉及预言机与代币供应机制的风险的案例分析被引用。- 事件发生日期: 攻击发生在 2021 年。
Cream Finance 在 DeFi 生态系统中提供了多种去中心化的借贷和交换服务。用户可以提供资产、申请贷款或使用各种集成协议兑换代币。
技术根本原因是对价格预言机的操纵和某些代币的无限铸造功能。这一漏洞涉及两个关键弱点 -
Cream 的 yUSD 保险库使用了基于外部 DeFi 协议利率(如 Yearn 和 Curve)的可操纵融资利率预言机。通过推动特定代币,攻击者影响了这个预言机。
Cream 对一些 ERC-20 代币没有限制供应。攻击者人为地铸造了大量这些代币。
通过大量 yCRV 代币发送到 yUSD 保险库,攻击者能够改变表面上的 yUSD 兑换率,并夸大其感知的美元价值。利用被破坏的预言机利率,攻击者借用了大量看似超过抵押要求的自由铸造的 ERC-20 代币。然后,他们提取了借来的资产,耗尽了 Cream 的流动性而没有足够的支持。
教训总结
预言机安全: 在 DeFi 平台中安全可靠的预言机的重要性。预言机是提供资产价格信息的外部服务,它们的操纵可能导致重大漏洞。
代币供应管理: 与无限制代币供应相关的风险以及在 DeFi 中正确代币经济学的重要性。
DeFi 系统的复杂性: 该事件突显了 DeFi 平台中涉及的复杂性,尤其是在整合多个协议和金融工具时。
事后,Cream 实施了一系列措施,如限制所有代币的供应、使用 Chainlink 预言机和在链上验证保险库利率,以恢复其完整性。这一漏洞揭示了 DeFi 架构中被忽视的风险 - 外部数据源的操纵和不受控制的代币发行。它强调了对输入的不变政策和协议整合的形式化验证的必要性,以保证在规模上的可靠性。
这些事件表明,尽管声称去中心化,但 DeFi 仍然存在中心化的点,形成瓶颈。控制的集中体现在以下因素上:
关键基础设施依赖(预言机),
特权角色(治理),以及
财务化激励。
标准在一定程度上解决了这个问题,但真正的抗脆弱性需要分布式的演变。
然而,这一领域的演变速度快于安全最佳实践的传播。每一项新的创新都成指数级扩展了攻击面,因为组合复杂性不断增加。形式化验证无法跟上规模中的新兴行为。尽管标准有所帮助,平衡创造力和限制仍然是一门艺术。
此外,先建者优先的生态系统优化了创新速度而非可持续性。但随着资本集中度的增加,对立激励显现出头角。商业利用的潜力将随着时间的推移吸引国家级资源。保护用户的对齐需要经济安全与技术安全相匹配 - 担保基金、协调治理和缓解计划。
就这样 - 一次全面的 ERC-4626 之旅和新兴的可互操作的代币化保险库领域。我们在这里涵盖了这一有前景的标准的动机、功能、架构、应用和相关风险。
正如你所看到的,尽管保险库抽象承诺了巨大的组合能力,我们必须保持警惕。这些事件揭示了在实现去中心化愿景中存在的系统性缺口,只通过标准无法完全解决。我们需要保证机制和治理演变以匹配创新的速度。
然而,实验的速度也创造了进步 - 每一次 breach 都导致逐步改进,随着经验的传播,逐渐增强生态系统。我们讨论的多样化保险库应用案例突显了这个设计空间在金融 假积木 中的潜在可能性。
那么,我们接下来该如何前进?
对于 建设者,这是一种责任 - 了解危险,宣传风险,并提前解决问题。
对于 用户,这是一种自我教育 - 不要盲目追逐收益;仔细审视你的风险敞口。
对于 监管机构,这是一种微妙的方式 - 不要将所有“DeFi”一概而论;谨慎区分。
参与的机会是无穷的,与利益一致的价值创造的可能性也是如此。
在 l2iterative.com 和 Twitter 上找到 L2IV @ l2iterative
- 原文链接: l2ivresearch.substack.co...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!