宇宙链 宇宙链
Ctrl+D收藏宇宙链

走过最长的路,竟是自己的套路 —— Alchemix 事件分析

作者:

时间:1900/1/1 0:00:00

By:慢雾安全团队

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

太长不看系列

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

核心分析——Round1

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

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

余烬:a16z转移8000余枚MKR,后续或分批转入Coinbase:7月21日消息,链上分析师余烬发推称,a16z转出至0xd52地址的7504枚MKR以每天1500枚转入Coinbase,现在还剩1500。于是a16z相关地址在3小时前再次转移:a16z地址转出6900枚MKR(价值约714万美元)至0x127地址;0x618地址转出1150枚MKR(价值约119万美元)至0x6E4地址。余烬猜测可能会继续分批转入Coinbase。[2023/7/21 11:08:40]

"4308144937764982868765"和"4308144937764982866415"这两个值。

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

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

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

这里我们可以将这个adapter理解为一个策略池,用于管理用户的资金和收益。然后我们回到用户一开始的AlchemistEth合约中的harvest函数,发现返回的"4308144937764982868765"和

韩国检方称其对Do Kwon的引渡要求早于美国,与黑山当局说法不一:3月30日消息,韩国首尔南部地方检察厅相关人士驳斥了关于黑山司法部所说的“美国对Terraform Labs首席执行官Do Kwon的引渡要求早于韩国”,该人士表示:“我们法务部是是3月24日向黑山提出了罪犯引渡请求,而美国是25日提出的。Do Kwon于3月23日被捕后的第二天,法务部就通过电子邮件和国际快递提出了引渡要求。”

今日早些时候消息,黑山司法部部长Marko Kovac表示,美国对Do Kwon的引渡要求早于韩国,但尚无法判断哪方优先。[2023/3/30 13:35:28]

"4308144937764982866415"这两个值其实对应的就是vault库合约的harvest函数计算出的需要提现的代币数量和从adapter(策略池)中取回的代币的数量。由于这个adapter对应的收益代币是WETH,精度为18位,那么"4308144937764982866415"这个数值换算过来就是"4308.144937764982866415"个WETH。

也就是说,本次harvest操作,收益了超过4300个ETH的收益,然后这个收益在下一步中通过_distributeToTransmuter函数给到了transmuter合约进行分发,我们看下分发过程中的逻辑是怎样的:

_distributeToTransmuter函数的逻辑只有简单的3行,我们主要关注的是最后的外部调用——lowerHashMinted函数。该函数所对应的xtoken在这里指的是alETH本身。因为alETH本身是用户通过借贷借出来的,所以lowerHashMinted这里的操作其实是使用harvest的收益将alETH总的贷出数量减少了,从而减少了每个用户的贷款。总结来说就是用harvest4300ETH的收益偿还用户的alETH贷款。

USD Coin市值跌破400亿美元 跌至0.938美元:金色财经报道,据Coingecko最新数据显示,美元稳定币USD Coin(USDC)市值已跌破400亿美元,本文撰写时为38,675,180,011美元。此外,USDC仍处于脱锚状态,当前跌至0.938306美元,过去24小时下降6.3%。[2023/3/11 12:56:23]

打个小总结

这里先总结下这个流程,就是AlchemistEth合约通过harvest函数,得到了4300ETH的收益,并将这个收益分发出去了,用于偿还用户的alETH贷款,导致了我们看到的情况——已经贷出alETH的用户在不需要还款的情况下就可以拿回他们质押的ETH。那究竟是为什么,会有这4300ETH的收益呢?这多出来的4300ETH的收益是怎么来的?针对这个问题,我们开始下一轮的分析。

核心分析——Round2

要了解为什么会多出来4300ETH,就必须了解AlchemistEth的资金存储过程。在AlchemistEth合约中,合约总的充值情况是使用Vaultlibrary库的Data结构体进行记录的,然后通过flushActiveVault函数更新对应的充值数量(totalDeposit)。

然后depositAll函数会将充值的代币金额打到对应的adapter(策略池)中,那么在下一次harvest的时候,通过adapter(策略池)获取的totalValue,就会是用户的本金加上策略池的收益。为了计算收益过程中的本金部分,我们对官方给出的交易进行debug,发现本金仅为9000ETH,从adapter获取的收益加上本金共有13000ETH,也就是说9000ETH的本金产生了4300ETH的收益。

dForce攻击者总收益约为365万美元:2月10日消息,据派盾监测,dForce在Arbitrum和Optimism上的一系列交易中被攻击,攻击者总收益约为365万美元。[2023/2/10 11:58:42]

但是,按照上面分析的逻辑,用户的本金是不会产生那么大的收益的,问题肯定是出在了adapter获取的totalValue。也就是说adapter不止只有AlchemistEth充值代币,还存在其他的收益渠道。为了验证我们的想法,慢雾安全团队分析了adapter的所有代币收入,果然发现了一笔异常的转入行为,并且金额也能刚好对上多出的4300ETH的收益。也就是说,问题就在这里了。

通过查看交易数据,发现这是一笔调用harvest操作的交易,调用的合约是transmuter合约:

也就是说,是这个harvest函数出问题了,harvest函数的逻辑如下:

同样是调用了vault的harvest函数,熟悉的配方,熟悉的味道。我们再次进行debug,发现一个惊人的事实——在进行收益的时候,vault的totalDeposit竟然为0,导致4300ETH的收益直接分发给了adapter,导致了adapter获取的totalValue错误了,多了4300个ETH,原因就是在这里。

到了这里,我们已经很接近真相了,剩下要解决的就是为什么totalDeposit会为0?我们查询了transmuter合约中能改变totalDeposit的地方,发现只有_plantOrRecallExcessFunds函数可以改变这个值,而这个函数上层调用的又是distribute函数。而transmuter合约的distribute函数是AlchemistEth合约在收益的时候进行调用的。也就是说本身的流程应该是:

加密反诈安全初创公司SEON完成9400万美元B轮融资,IVP领投:8月8日消息,加密反诈安全初创公司 SEON 宣布完成 9400 万美元 B 轮融资,IVP 领投,现有投资方 Creandum 和 PortfoLion 参投。

SEON 公司两位联合创始人 Tamas Kadar 和 Bence Jendruszak 对加密货币有浓厚兴趣,并曾合作构建过一个加密货币交易平台,由于其在加密货币交易平台方面的经验了解到欺诈预防策略对企业发展的重要性。该公司主要帮助 Revolut、NuBank 等涉及加密业务的金融科技公司提供线上防欺诈解决方案,其客户也包括 Patreon、AirFrance、KLM 等传统企业。(finsmes)[2022/8/8 12:10:33]

1.AlchemistEth合约调用harvest进行收益

2.AlchemistEth合约调用transmuter合约的distribute函数记录收益情况,并把收益部分给adapter

3.adapter收到了transmuter的收益,根据收益偿还用户的alETH的贷款

但是问题就出在了_plantOrRecallExcessFunds函数中。由于在记录充值信息的时候,用的是_vaults.last()来获取最新的vault,所以其实充值信息叠加在了最后一个元素上。但是项目方调用了三次setActiveVault函数,所以其实充值信息是叠加到了_vaults数组的3号元素,也就是index为2的vault元素上。但是在transmuter合约在harvest的时候传入的_vaultId却是0,0号元素是没有任何充值记录的,所以transmuter合约就误将所有的收益都给了adapter了。导致了悲剧的发生。

总结

到这里,整个事情已经变得很清晰了,Alchemix项目方由于某种原因,通过transmuter添加了3次vault,导致收益信息记录在了一个错误的元素上,而在调用transmuter的harvest函数时也没有传入正确的index值,导致通过错误的元素获取了错误的收益,错误收益被发送到adapter合约,造成收益增多,导致了悲剧。

慢雾安全团队在此提醒,DeFi是一个复杂的系统,在进行DeFi操作的时候,要记得检查好业务逻辑中的每一个流程,防止意外的发生,在必要的时候可以联系专业的安全团队进行专业的安全审计,防止事故的发生。

__

官方事故分析报告:

___https://forum.alchemix.fi/public/d/137-incident-report-06162021_

收益计算错误交易:https://etherscan.io/tx/0x3cc071f9f40294bb250fc7b9aa6b2d7e6ca5707ce4d6d222157d7a0feef618b3

__

往期回顾

HPOOL入驻慢雾区,发布「安全漏洞与威胁情报赏金计划」

重磅!慢雾的安全审计结果已集成到CoinMarketCap

Tokenlon入驻慢雾区,发布「安全漏洞与威胁情报赏金计划」我竟了我自己?——BurgerSwap被黑分析

代币闪崩,差点归零-PancakeBunny被黑简析

慢雾导航

慢雾科技官网

https://www.slowmist.com/

慢雾区官网

https://slowmist.io/

慢雾GitHub

https://github.com/slowmist

Telegram

https://t.me/slowmistteam

Twitter

https://twitter.com/@slowmist_team

Medium

https://medium.com/@slowmist

币乎

https://bihu.com/people/586104

知识星球

https://t.zsxq.com/Q3zNvvF

火星号

http://t.cn/AiRkv4Gz

链闻号

https://www.chainnews.com/u/958260692213.htm

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

慢雾科技

现已在非小号资讯平台发布68篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/10084665.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

SendingLabs完成1250万美元种子轮融资,以构建「Web3通信堆栈」

标签:ETHTERVESTARVethw币最新消息Water Rabbit TokenGolden Regent InvestmentLARVA

火币网下载官方app热门资讯
IPFS分布式存储,FIL不仅是虚拟货币更是引领网络的进度!

IPFS隐私保护,在技术上IPFS把存储的文件拆分成许多部分,然后把加密后的文件保存在不同的节点。所以,存储者无法知道存储的是什么东西,可以有效地保护我们的隐私,防止Facebook5000万用户的资料泄露.

1900/1/1 0:00:00
对话 imToken 商务发展总监:非托管式资产管理与 L2 方案结合的新机遇

来源:EDCON大咖说 编辑:南风 自以太坊PoS信标链启动以来,参与信标链质押(staking)的用户数量和ETH质押量一直呈现稳步增长的趋势.

1900/1/1 0:00:00
Solana 上唯一拥有纯自动做市商功能的 DEX 平台

在SBF的力推下,Solana公链正在向以太坊发起猛烈攻势,越来越多生态项目蓬勃发展,其中涌现出不少颇具创新性的优质项目,例如DEX项目Orca.

1900/1/1 0:00:00
CHZ正式登陆AEX安银,瓜分20000GAT

>","0:"#3378ff"|16:"https://www.aex.cool/page/news/notice/2021/0324/ch_2137.html"|27:"12"|31:2"],,,,,,,,,,,,,,,,,

1900/1/1 0:00:00
Bibox将于2021年6月17日上线 Alchemix(ALCX)

尊敬的Bibox用户: Bibox创新区将于2021年6月17日(UTC8)上线Alchemix(ALCX).

1900/1/1 0:00:00
中国银行原副行长王永利:可以持有比特币但不要靠它赚钱

据凤凰网财经消息,中国银行原副行长王永利在谈到比特币时表示,货币问题非常复杂,当前人们对货币的认知已经完全混乱,正因为这样,比特币才会出现“信仰”。“一个投资品你愿意投,投的人越多它的价值就能涨.

1900/1/1 0:00:00