@UniLend_Finance是一个去中心化的无许可货币市场协议,通过智能合约为用户提供借贷服务。
在UniLend平台上,用户可以将其加密货币作为质押物投入网络,借用其他加密资产。为了确保借贷安全,借贷者通过支付利息来获得资金,而借出者则根据每个区块的复合年化收益率(APY)赚取利息。
UniLend协议V2主要通过以下三个技术功能来运作:
1、双资产池模型
UniLend为每个ERC20/ERC20兼容的资产对设置了独立的双资产池。这样一来,一个资产的波动不会影响到其他资产,从而增加了安全性和稳定性。用户可以在多个区块链上创建和管理不同的借贷池,涵盖多种资产。
2、供应与借款机制
3、 利率模型
UniLend采用动态利率模型,通过使用率(U)来设定利率,公式如下:
Ux=借款x借款x+现金x
借款利率:
借款利率x=10%+(Ux×30%)
当使用率越高时,利率就会相应上升,以平衡供需。
供给利率x=借款利率x×Ux×(1−S)
这样一来,供应商可以确保获得持续的回报,同时平台也能保持盈利。
这三大功能共同运作,打造出一个安全、高效且可扩展的去中心化货币市场。
2025年1月12日,UniLend协议的一个安全漏洞被攻击者利用,导致UniLend池中约20万美元的资金被盗。攻击者通过操控抵押物的计算,错误评估了用户的健康因子,从而使得攻击者能够在没有足够抵押的情况下提取60个stETH代币。
被盗的资产包括60个stETH代币,攻击者利用协议对用户代币余额的错误计算来实现这一操作。
攻击者通过闪电贷启动了攻击,向UniLend池存入了大量的USDC。具体来说,他们存入了6000万USDC,从而大幅增加了他们在池中的抵押物。
闪电贷是一种无需抵押物的借贷方式,借款人在同一笔交易内必须归还借款。通过这一机制,攻击者无需事先拥有资金,就能获得所需的USDC,从而在人为膨胀的抵押物基础上发起攻击。
在存入USDC后,攻击者开始借入stETH代币。协议会根据池中用户的代币余额来计算抵押物的价值。然而,由于实现上的漏洞,协议错误地使用池合约中的当前代币余额来进行计算,而非基于健康因子检查时实际转移的代币数量。结果,用户的代币余额被高估,尤其是在流动性较大的池中。
这一操控的根本原因在于userBalanceOfToken函数。在流动性较大的池中,即使实际的借出份额较少,该函数仍可能返回较高的借出余额。这种高估使得攻击者获得了比实际拥有更多的抵押物,从而能够借出超过其实际抵押物的stETH代币。
利用膨胀后的抵押物价值,攻击者继续赎回他们的USDC和stETH。攻击者调用了redeemUnderlying函数,销毁了与其存款相关的LP代币。然而,由于健康因子检查发生在代币转移之前,系统错误地认为攻击者拥有足够的抵押物,允许其提取超出实际应得的代币。这一漏洞使得攻击者能够在没有足够抵押物的情况下提取60个stETH代币,实际上是免费获得了这些代币。
为了避免类似的攻击,UniLend 应该调整 redeemUnderlying函数中的操作顺序。具体来说,应该在把代币转给用户后再进行健康因子检查。这样,协议可以确保用户的实际代币余额准确反映他们的抵押物情况。
区块链安全至关重要,不能忽视。选择 Three Sigma 来保护您的智能合约和 DeFi 协议,Three Sigma 是区块链审计、智能合约漏洞评估和 Web3 安全领域的可靠合作伙伴。
点击此处, 立即审核您的智能合约。
UniLend 这次漏洞攻击造成了约 20 万美元的财务损失,影响了 UniLend 池的资金储备,降低了平台的流动性,可能会影响其他用户的借贷活动。
在攻击发生后,UniLend 迅速采取了措施修复漏洞,并安抚用户情绪。
他们宣布,将向负责任的人员提供 20% 的奖励,以安全归还资金。
相关地址
攻击交易地址:
攻击者地址:
UnilendV2 核心地址:
@UniLend_Finance是一个去中心化的无许可货币市场协议,通过智能合约为用户提供借贷服务。
在UniLend平台上,用户可以将其加密货币作为质押物投入网络,借用其他加密资产。为了确保借贷安全,借贷者通过支付利息来获得资金,而借出者则根据每个区块的复合年化收益率(APY)赚取利息。
UniLend协议V2主要通过以下三个技术功能来运作:
1、双资产池模型
UniLend为每个ERC20/ERC20兼容的资产对设置了独立的双资产池。这样一来,一个资产的波动不会影响到其他资产,从而增加了安全性和稳定性。用户可以在多个区块链上创建和管理不同的借贷池,涵盖多种资产。
2、供应与借款机制
3、 利率模型
UniLend采用动态利率模型,通过使用率(U)来设定利率,公式如下:
Ux=借款x借款x+现金x
借款利率:
借款利率x=10%+(Ux×30%)
当使用率越高时,利率就会相应上升,以平衡供需。
供给利率x=借款利率x×Ux×(1−S)
这样一来,供应商可以确保获得持续的回报,同时平台也能保持盈利。
这三大功能共同运作,打造出一个安全、高效且可扩展的去中心化货币市场。
2025年1月12日,UniLend协议的一个安全漏洞被攻击者利用,导致UniLend池中约20万美元的资金被盗。攻击者通过操控抵押物的计算,错误评估了用户的健康因子,从而使得攻击者能够在没有足够抵押的情况下提取60个stETH代币。
被盗的资产包括60个stETH代币,攻击者利用协议对用户代币余额的错误计算来实现这一操作。
攻击者通过闪电贷启动了攻击,向UniLend池存入了大量的USDC。具体来说,他们存入了6000万USDC,从而大幅增加了他们在池中的抵押物。
闪电贷是一种无需抵押物的借贷方式,借款人在同一笔交易内必须归还借款。通过这一机制,攻击者无需事先拥有资金,就能获得所需的USDC,从而在人为膨胀的抵押物基础上发起攻击。
在存入USDC后,攻击者开始借入stETH代币。协议会根据池中用户的代币余额来计算抵押物的价值。然而,由于实现上的漏洞,协议错误地使用池合约中的当前代币余额来进行计算,而非基于健康因子检查时实际转移的代币数量。结果,用户的代币余额被高估,尤其是在流动性较大的池中。
这一操控的根本原因在于userBalanceOfToken函数。在流动性较大的池中,即使实际的借出份额较少,该函数仍可能返回较高的借出余额。这种高估使得攻击者获得了比实际拥有更多的抵押物,从而能够借出超过其实际抵押物的stETH代币。
利用膨胀后的抵押物价值,攻击者继续赎回他们的USDC和stETH。攻击者调用了redeemUnderlying函数,销毁了与其存款相关的LP代币。然而,由于健康因子检查发生在代币转移之前,系统错误地认为攻击者拥有足够的抵押物,允许其提取超出实际应得的代币。这一漏洞使得攻击者能够在没有足够抵押物的情况下提取60个stETH代币,实际上是免费获得了这些代币。
为了避免类似的攻击,UniLend 应该调整 redeemUnderlying函数中的操作顺序。具体来说,应该在把代币转给用户后再进行健康因子检查。这样,协议可以确保用户的实际代币余额准确反映他们的抵押物情况。
区块链安全至关重要,不能忽视。选择 Three Sigma 来保护您的智能合约和 DeFi 协议,Three Sigma 是区块链审计、智能合约漏洞评估和 Web3 安全领域的可靠合作伙伴。
点击此处, 立即审核您的智能合约。
UniLend 这次漏洞攻击造成了约 20 万美元的财务损失,影响了 UniLend 池的资金储备,降低了平台的流动性,可能会影响其他用户的借贷活动。
在攻击发生后,UniLend 迅速采取了措施修复漏洞,并安抚用户情绪。
他们宣布,将向负责任的人员提供 20% 的奖励,以安全归还资金。
相关地址
攻击交易地址:
攻击者地址:
UnilendV2 核心地址: