Alkimiya 黑客分析

本文为机器翻译
展示原文

Alkimiya是一个将区块链区块空间资源(如交易费用)转化为可交易资产的协议。它使用智能合约创建点对点市场,帮助稳定费用、改善价格发现并优化跨区块链的资源使用。

在2025年3月28日,Alkimiya遭受攻击,损失约95.5K美元。根本原因是用户存入抵押品时,铸币计算中存在不安全的整数转换。

感谢阅读!免费订阅以接收新帖子并支持我的工作。

概述

分析

图1:攻击交易

攻击从Morpho借出10个WBTC的闪电贷开始(第5行)。攻击者随后尝试使用SilicaPools.collateralizedMint()铸造恰好2^128 + 1份额,提供约1.7个WBTC作为抵押品(绿色框)。

图2:攻击的根本原因

SilicaPools使用完整的256位shares参数为攻击者铸造了恰好2^128 + 1份额。然而,由于第837行存在不安全的转换,仅记录了1份额。这一缺陷是攻击的根本原因。

参考图1,攻击者将2^128 - 1份额转移到另一个地址(黄色框),在合约中仅保留2份额。最后,他们调用SilicaPools.redeemShort()提取抵押品。

图3:redeemShort()的实现

由于sState.sharesMinted被错误地设置为1,而攻击者的合约持有2份额,SilicaPools错误地返回了约3.4个WBTC,是原始存款的两倍。

结论

优化gas效率是有益的,但前提是代码保持正确。在这种情况下,节省的gas与该bug造成的损失相比微不足道。尽管经过多次审计,这一缺陷仍未被发现,最终导致实际攻击。为了防止此类问题,我们强烈建议从一开始就实施严格的安全措施,并在项目生命周期中始终如此。定期审计、代码审查和漏洞评估应成为标准做法,以识别和缓解可能被利用的风险。

感谢阅读!免费订阅以接收新帖子并支持我的工作。

来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论