织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

技术详解 DeFi 借贷协议 Alchemix 中 alETH 合约漏洞事件

时间:2021-07-13 10:27来源:未知 作者:admin 点击:
原文标题:《走过最长的路,竟是自己的套路 —— Alchemix 事件分析》 撰文:yudan,就职于慢雾安全团队 据慢雾区消息, 2021 年 06 月 16 日,以太坊 DeFi 项目 Alchemix 的 alETH 合约疑似出现

原文标题:《走过最长的路,竟是自己的套路 —— Alchemix 事件分析》
撰文:yudan,就职于慢雾安全团队

据慢雾区消息,2021 年 06 月 16 日,以太坊 DeFi 项目 Alchemix 的 alETH 合约疑似出现安全问题。17 日,Alchemix 发布了事故分析报告,慢雾安全团队迅速介入分析,并在官方分析报告的基础上梳理了本次事件的整个脉络和核心关键点,供大家参考。

慢雾:技术详解 DeFi 借贷协议 Alchemix 中 alETH 合约漏洞事件

太长不看系列

本次分析文章很长。这里先说结论,方便大家有个大概的理解。本次事故的主要原因在于 Alchemix 通过 transmuter 添加了 3 次 vault,导致收益信息记录在了一个错误的元素上,而在调用 transmuter 的 harvest 函数时也没有传入正确的 index 值,导致通过错误的元素获取了错误的收益,将错误的 4300 ETH 的收益发送到 adapter 合约,帮助用户偿还了 alETH 的贷款,造成收益增多的问题,导致了悲剧。

核心分析——Round 1

慢雾:技术详解 DeFi 借贷协议 Alchemix 中 alETH 合约漏洞事件

根据官方发布的事故分析报告,本次事故的原因是官方的 alETH 的部署脚本意外地创建了额外的 vaults,导致 Alchemix 使用了 vaults 数组中错误的索引并计算出了错误的奖励,导致 transmuter 把所有的奖励用于偿还了用户的所有负债。我知道单单是这句简短的分析让人有点云里雾里,摸不着头脑,所以我们只能把目标放在官方给出的交易中,看看能不能找到真相。

根据官方给出的交易,通过 ethtx.info 分析工具进行分析,我们不难发现,这笔交易调用了 AlchemistEth 合约的 harvest 函数,并且传入了 _vaultId=0 这个参数,最后返回了
「4308144937764982868765」和「4308144937764982866415」这两个值。

慢雾:技术详解 DeFi 借贷协议 Alchemix 中 alETH 合约漏洞事件

为了更加了解 harvest 函数的作用,我们需要对整个函数进行分析:

慢雾:技术详解 DeFi 借贷协议 Alchemix 中 alETH 合约漏洞事件

不难发现,harvest 函数其实包含两个重要的操作,分别是收获奖励和将奖励分发给 transmuter 合约。其中 vault 是一个 library 库合约,其中的 harvest 逻辑实现如下:

慢雾:技术详解 DeFi 借贷协议 Alchemix 中 alETH 合约漏洞事件

通过代码分析不难发现,vault 库合约的 harvest 函数其实是检查了外部的 adapter 的总的资金量,然后根据 adapter 中的资金量减去用户的充值数量计算出收益的部分。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容