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相關的任何投資建議。
喜歡
收藏
評論