值得信赖的区块链资讯!
连环作案|zkLend 被黑深度分析,关联 EraLend 事件
来源:慢雾科技
背景
根据慢雾安全团队情报,2025 年 2 月 12 日,Starknet 链上的头部借贷平台 zkLend 遭到攻击,损失了价值近千万美元的资产。慢雾安全团队对该事件展开分析并将结果分享如下:
(https://x.com/SlowMist_Team/status/1889659563517026772)
相关信息
攻击者地址:https://starkscan.co/contract/0x04d7191dc8eac499bac710dd368706e3ce76c9945da52535de770d06ce7d3b26
存在漏洞的市场合约地址:https://starkscan.co/contract/0x04c0a5193d58f74fbace4b74dcf65481e734ed1714121bdc571da345540efa05
攻击交易之一:https://starkscan.co/tx/0x0160a5841b3e99679691294d1f18904c557b28f7d5fe61577e75c8931f34a16f
根本原因
本次被黑事件的核心原因在于空市场中累加器的值可以通过闪电贷中的独特机制来操控放大,并且市场合约采用的 SafeMath 库在进行除法计算时使用直接相除的形式,导致攻击者可以利用放大后的累加器造成向下舍入漏洞来获利。
攻击步骤分析
攻击前置准备
1. 首先攻击者调用市场合约的 deposit 函数往合约中存入数量为 1 wei 的 wstETH 代币。
我们可以看到 wstETH 代币的市场是处于一个空市场的状态,市场合约中拥有的 wstETH 代币的数量与铸造的 zwstETH 的数量在该笔存款之前均为 0,这让攻击者可以用极低的成本进行下一步中的操纵。
此时 wstETH 市场中的 lending_accumulator 的值为 1e27。
交易哈希:https://voyager.online/tx/0x039b6587b9d545cfde7c0f6646085ab0c39cc34e15c665613c30f148b569687
2. 接着攻击者调用了市场合约的 flash_loan 函数进行闪电贷操作,借出了 1 wei 的 wstETH,而归还了数量为 1000 wei 的 wstETH。
可以看到,在闪电贷之后,wstETH 市场中的 lending_accumulator 的值为 8.51e29, 与之前的值相比,竟然放大了 851 倍。
交易哈希:
https://voyager.online/tx/0x039b6587b9d545cfde7c0f6646085ab0c39cc34e15c665613c30f148b569687c
那么是什么原因导致 lending_accumulator 的值能被操控放大这么多呢?让我们跟进到市场合约的 flash_loan 函数中:
可以看到在用户归还闪电贷之后,调用了一个名为 settle_extra_reserve_balance 的函数。
该函数的作用主要是将合约中多余的资金分配给存款人,而分配的方式是用合约中多余的资金计算出一个新的 lending_accumulator,并更新保存到对应资产代币的市场数据中。计算公式可以简化为如下:
(reserve_balance + totaldebt - amount_to_treasury) * 1e27 / ztoken_supply
由于市场在之前是处于一个空市场的状态,所以其中 reserve_balance 为用户还款的闪电贷的数量,即 1000 wei,totaldebt 为 0,amount_to_treasury 计算出来为 149 wei,zwstETH 的供应量为上一步先前存款操作时铸造的 1 wei,最终计算出来新更新的 lending_accumulator 为 8.51e29。
从历史交易记录中可以发现攻击者进行了多次相同的闪电贷操作,通过每次都还款更多代币的方法来迅速操控 wstETH 市场中 lending_accumulator 的值。
最终 lending_accumulator 被放大到了一个非常大的数值 4.069e45(4069297906051644020000000000000000000000000000):
正式攻击
交易哈希:https://voyager.online/tx/0x0160a5841b3e99679691294d1f18904c557b28f7d5fe61577e75c8931f34a16f
1. 当有其他用户往 wstETH 市场存款后,攻击者开始正式的攻击操作。首先攻击者调用了市场合约的 deposit 函数,向合约中存入约 4.069 枚 wstETH。
2. 接着调用 withdraw 函数,提取约 6.1039 枚 wstETH。
3. 通过重复上面两步操作,攻击者从市场中最终窃取了约 61 枚 wstETH。
那么为什么攻击者只存入了 4.069 枚 wstETH,却可以提款出 6.103 枚 wstETH 呢?
跟进到 deposit 函数中,当用户转入资产代币 wstETH 后,会外部调用 zToken 合约来为用户铸造对应数量的 zwstETH 代币。
用户实际获得的 zwstETH 数量是由传入的资产代币的数量与市场的 lending_accumulator 计算:
跟进到计算时用到的 safe_decimal_math 库中:
所以可以得出实际获得的 zwstETH 数量的计算公式为:
zToken_amount = amount * 1e27 / lending_accumulator
其中 amount 的值为:4069297906051644021,lending_accumulator 为攻击者操纵之后的值:4069297906051644020000000000000000000000000000。最终计算出来获得的 zwstETH 的数量为 1。
当用户调用 withdraw 函数提取 6.103 枚 wstETH 时,会调用 zToken 合约的 burn 函数来燃烧先前存款获得的 zwstETH。
在 zToken 合约的 burn 函数中,我们可以发现实际所需要燃烧的 zwstETH 数量的计算方式与铸造时一样:
其中 amount 传入的数量为 6103946859077466029,但是由于所使用的 safe_math 库中的 div 函数在进行除法时是直接相除的形式,所以会截断结果中的小数部分。并且因为 lending_accumulator 被攻击者在之前的操作中放大,最后计算出来实际应该燃烧的 zwstETH 代币的数量会因为向下舍入取整的问题也等于 1,刚好满足用户存款时实际获得的 zwstETH 数量。
6103946859077466029 * 1e27 / 4069297906051644020000000000000000000000000000 = 1
所以提款时燃烧 zwstETH 代币的逻辑可以正常通过,这也就是为什么攻击者可以只存入 4.069 枚 wstETH,却可以成功提款出 6.103 枚 wstETH 的根本原因。
而在正常的市场情况下,lending_accumulator 的值应该是精度为 1e27 的数,相除时由于分子远大于分母好几个数量级,所以并不会受到影响。
MistTrack 分析
据链上追踪工具 MistTrack 的分析,攻击者从 zkLend 盗取了约 950 万美元。随后将获利代币兑换为 ETH 后使用 LayerSwap, Orbiter Bridge, Rhino.fi, StarkGate ETH Bridge 等跨链桥跨链到各种网络,大部分资金被跨链到以下以太坊地址:
-
0xcd1c290198e12c4c1809271e683572fbf977bb63
-
0x0b7d061d91018aab823a755020e625ffe8b93074
-
0x645c77833833A6654F7EdaA977eBEaBc680a9109
其中,地址 0x645c77833833A6654F7EdaA977eBEaBc680a9109 有很多历史交易,首笔交易出现在 2024 年 6 月 22 日。
该地址在以太坊、BSC 和 Base 网络上都有与 Binance 交互的记录,也可能是嵌套 Binance 账号接口的第三方交易平台。该地址在以太坊网络上还存在与 ChangeNOW 和 Hitbtc 交互的痕迹。
进一步分析黑客在 Starknet 上的相关地址:0x04d7191dc8eac499bac710dd368706e3ce76c9945da52535de770d06ce7d3b26,发现该地址在攻击前与以下 L1 地址存在强关联:
-
0xd95b3c1e638ce3cdc070ad6d4f385c61e2ee8662
-
0x93920786e0fda8496248c4447e2e082da69b6c40
-
0x34e5dc779cb705200e951239b6a89aaf5c7dbfc1
根据 MistTrack 的扩展分析,地址 0x93920786e0fda8496248c4447e2e082da69b6c40 和
0x34e5dc779cb705200e951239b6a89aaf5c7dbfc1 都与 2023 年 7 月 25 日 EraLend 被黑事件的攻击者地址存在关联。此外,据慢雾 InMist Lab 威胁情报合作网络消息,0x93920786e0fda8496248c4447e2e082da69b6c40 是攻击者用于接收 EraLend 被盗资金的地址。
当时 EraLend 被盗约 276 万美金,攻击者也使用多个桥将被盗的资金分散到各个链上的多个钱包中。
综上,我们可以推断 zkLend 和 EraLend 攻击事件是同一攻击者所为。
总结
本次攻击的核心在于攻击者利用闪电贷中的特殊机制,操纵放大了空市场中累加器的值,从而在提款时可以利用舍入漏洞来获得超出预期的资产。慢雾安全团队建议项目方设计合理安全的闪电贷逻辑模型,将影响存款凭证代币的数量计算的情况考虑进去,并在数学运算中实现安全的舍入机制,以防止精度损失。此外,对于涉及存取款等核心的业务逻辑,应当加强审计与安全测试,从而避免类似情况的发生。
比推快讯
更多 >>- Bitcoin Policy Institute:呼吁修改将所有 BTC 支付视为资本利得的美国税收规则
- 某巨鲸出售 13739 枚 ETH,价值 2896 万美元
- 观点:油价冲击下比特币短期难成避险资产,若油价维持高位或跌至 5 万–5.8 万美元
- RootData 发布加密交易所透明度榜单(股票类),Binance Alpha、Gate、Bybit 领先
- 经济学家预测美联储年内将降息两次,沃什人选引发担忧
- FT:海湾产油国已损失约 151 亿美元能源收入,霍尔木兹海峡近乎停运
- 特朗普:未来一周将对伊朗予以迎头痛击
- 主流 Perp DEX 一览:各平台交易量变化较小,Hyperliquid 持仓量维持高位
- 分析:比特币在宏观压力环境下继续走强,波动性下降或为进一步上涨提供条件
- Strategy CEO 出售 2034 股 MSTR,约合 27.9 万美元
- 美、布两油短线下挫,WTI 原油现报 93.45 美元/桶
- Strategy CEO 出售 2034 股公司股票进行套现
- 伊朗驻联合国大使:不会关闭霍尔木兹海峡
- 中国国家网络安全通报中心发布 OpenClaw 安全风险预警
- Titan Builder 过去 24 小时收入为 3450 万美元,超过 Tether 排名第一
- 分析师:市场预期伊朗战争引发的油价上涨可能促使部分央行加息
- 数据:若 ETH 跌破 2,019 美元,主流 CEX 累计多单清算强度将达 12.6 亿美元
- 彭博社:Tether 正寻求将估值提升至 5000 亿美元,成为全球估值最高的私营公司之一
- 今日买入 220 万枚 TRUMP 的鲸鱼曾在 MELANIA 上巨亏 1461 万美元
- 巨鲸于美伊战争正式爆发当日做空 BTC,650 万规模空仓已亏达 180%
- 美股盘前加密概念股涨跌不一,Circle 上涨 1.24%
- CoinGlass:比特币杠杆正重新积累,未平仓合约量回升至 8.8 万枚
- 分析:比特币在 6.2 万至 7.2 万美元形成筹码积累区,有望形成新突破动能
- 美股盘前三大指数普跌,Meta (META) 跌 1.66%
- 美国 PCE 公布前巨鲸提前布空,以 1350 万美元押注通胀超预期打压纳指
- 分析:比特币在美元、油价与美债收益率走强背景下仍守住 7.1 万美元
- 分析师:自美伊冲突爆发以来,比特币是表现最佳的宏观资产之一
- 数据:GTC 24 小时跌超 20%,TRUMP 涨超 32%
- 特朗普在 G7 通话中称伊朗“即将投降”
- Pacifica 总交易量突破 1360 亿美元,已完成 1000 万周常态化积分发放
- TOKEN2049 迪拜峰会宣布将延期至 2027 年 4 月 21 日至 22 日举行
- Polymarket 首个上海天气预测事件:最高气温 13℃概率逼近 100%,日内涨 55%
- 币安将为 ATA、A2Z、FIO、GTC、NTRN、PHB、QI 和 RDNT 添加观察标签
- Binance 将为 ATA、GTC 等代币添加观察标签
- 某鲸鱼 7 小时前买入 86259 枚 HYPE,价值 327 万美元
- 麻吉开始止盈部分 ETH 多单,目前浮盈 41.6 万美元
- 若比特币突破 7.3 万美元,主流 CEX 累计空单清算强度将达 6.62 亿
- 分析:比特币或重新冲击 10 万美元,宏观指标再现看涨信号
- Polymarket“俄乌 3 月底前是否停火”交易量持续放大,YES 概率下跌至 2%
- 链上白银日内跌超 5.6%,白银最大空头千万规模空单浮盈扩大至 190 万美元
- 奥斯卡最佳男主角赔率逆转:Michael B.Jordan 升至 58%,甜茶 Timothée Chalamet 降至 32%
- 分析:中东冲突推升通胀预期,市场担忧美联储或难以降息
- 聚焦今晚 20:30 美国核心 PCE 物价指数年率发布
- Binance 将停止支持部分网络指定代币的充值、提现业务
- 数据:Circle 过去一周已增发 20 亿枚 USDC
- 离岸人民币兑美元跌破 6.9 关口
- 分析:比特币卖压降至周期低位,链上模型显示市场进入积累阶段
- 花旗:下周超级央行周或加剧债券市场波动
- 分析师:市场对美联储降息路径的担忧日益加剧,金价势将录得周线下跌
- 分析:国际油价维持高位,霍尔木兹海峡封锁仍是主要担忧
比推专栏
更多 >>- 懂王:那就大家一起難受吧|0313亞盤後
- 当黄金被「困」在迪拜,是时候旗帜鲜明「唱多」香港了
- 東大、波斯、阿拉伯【第七次/進展/能源變量】|0310東3.5
- 从 HSK 到 USDGO:香港两大持牌机构,开始「脱钩」
- There is no new boss YET
- New situation and new games|0305 Asian
- B52 Were on the way to Iran|0304 Middle East
- 开放独角兽门票:从 Robinhood 到 MSX,一场 Pre-IPO 的链上平权实验
- Big player's 『Trigger moment』|0227Europe
- 简街有没有「操纵」BTC?拆解 AP 制度,读懂 ETF 申赎机制背后的定价权博弈
观点
比推热门文章
- 某巨鲸出售 13739 枚 ETH,价值 2896 万美元
- 观点:油价冲击下比特币短期难成避险资产,若油价维持高位或跌至 5 万–5.8 万美元
- RootData 发布加密交易所透明度榜单(股票类),Binance Alpha、Gate、Bybit 领先
- 经济学家预测美联储年内将降息两次,沃什人选引发担忧
- FT:海湾产油国已损失约 151 亿美元能源收入,霍尔木兹海峡近乎停运
- 从OpenSea到OpenRouter:一个连续创业者的“聚合”生意经
- 一个00后的亏钱日记:当暴富幻想撞上市场铁律
- 特朗普:未来一周将对伊朗予以迎头痛击
- 主流 Perp DEX 一览:各平台交易量变化较小,Hyperliquid 持仓量维持高位
- 分析:比特币在宏观压力环境下继续走强,波动性下降或为进一步上涨提供条件
比推 APP



