okx

Soda项目智能合约安全分析

时间:2023-08-22|浏览:146

判断一个人的资产阶级归属,只需看他的负债率。简而言之,借的钱越多,代表他的还款能力越强,也代表他越有钱。

因此,借贷可以说是富人的游戏。通过借贷手段来合理分配资产,从而获得收益,这也是理财的核心。

大家都会好奇,银行拿我们存的钱去做什么呢?

从某种意义上来说,银行是最大的借债方。如果银行的系统被攻破,强制要求银行“还款”,那么储蓄者账户中本来应该还给他们的钱就会被攻击者拿走,储蓄者和银行都将成为最大的受害者。

北京时间9月21日,CertiK安全研究团队发现soda区块链项目中存在智能合约安全漏洞。通过该漏洞,任意外部调用者可以通过调用智能合约函数,无视受害用户债务中的代币数量,强行清算用户的债务,并将清算所得的收益转入自己的收款地址。

soda项目官方已经提交修复补丁来修复这个安全漏洞。但由于soda项目使用了TimeLock来延迟所有操作48小时,修复补丁将在延迟时间之后生效。截止发稿时,该漏洞已被修复。

漏洞技术分析:

soda项目中的WETHCalculator.sol智能合约存在逻辑实现错误,导致安全漏洞。在第193行,计算公式错误地使用了amount196行的require判断条件loanTotal>=maximumLoan可以转换为:

loanInfo[_loanId].amount+interest>=loanInfo[_loanId].amount*maximumLTV/LTV_BASE

由于maximumLTV/LTV_BASE的值在0.15-0.95之间变动,且interest>=0,所以196行的require判断条件总是为真。

失去了该require判断的保护,任意外部调用者都可以通过调用SodaBank.sol中的collectDebt函数来清空任意贷款ID的贷款。在执行该函数过程中,图一中的collectDebt函数会在图二中被执行,并通过代码将用户在soda中的一部分WETH转移到调用者的地址。

官方修复细节:

soda官方为修复该漏洞,设计了新的智能合约WETHCalculatorFixed.sol来替换WETHCalculator.sol。

通过分析可以看到,在WETHCalculatorFixed.sol的第979行,计算公式被正确地计算为loanInfo[_loanId].lockedAmount*maximumLTV/LTV_BASE。因此,第982行的require判断的检测条件变成了:

loanInfo[_loanId].amount+interest>=loanInfo[_loanId].lockedAmount*maximumLTV/LTV_BASE

该公式与soda项目的逻辑设计相符合,该公式的真假与用户的借贷债务数目和被锁定的本金数目有关。漏洞已经被修复。

关于该等式的逻辑设计细节可以在链接(https://medium.com/soda-finance/the-soda-revolution-9185fdb99fc1)中了解。

事件分析总结:

该漏洞是由于逻辑设计与代码实现不符而导致的。目前常用的单元测试和自动化测试工具无法有效检测到与逻辑相关的漏洞。

因此,CertiK安全团队提出以下安全建议:

1. 安全是区块链项目的基础,上线前应请专业第三方安全审计团队对项目代码进行安全审计。 2. 当前区块链检测工具无法检测到逻辑上的漏洞,并且其结果缺乏可信的数学证明。采用基于形式化验证方法的区块链检测工具来验证项目中的安全漏洞,应成为每个项目上链前的必要步骤。

参考链接: - 图一:https://github.com/soda-finance/soda-contracts/blob/master/contracts/calculators/WETHCalculator.sol#L189 - 图二:https://github.com/soda-finance/soda-contracts/blob/master/contracts/components/SodaBank.sol#L104 - 图三:https://github.com/soda-finance/soda-contracts/blob/master/contracts/calculators/WETHCalculatorFixed.sol#L275

热点:智能合约 项目

« 上一条| 下一条 »
区块链交流群
数藏交流群

合作伙伴

元宇宙Web 百科书库 金色币圈 宠物丫 培训资讯网 百悦米 美白没斑啦 聚币网 借春秋 黄金行情 币圈ICO官网 佩佩蛙官网 數字黃金 玩合约 兼职信息网 秒懂域名 爱网站 币圈交流群 妈妈知道 旅游资讯网 今日黄金 玩票票财经 二手域名 代特币圈 宝宝起名 数字财经 非小号行情 趣开心资讯 谈股票 周公解梦 天天财富 币圈官网 茶百科 免费电影 趣玩币 起名取名网 币爸爸 去玩呗SPA 皮卡丘资讯 借春秋财经 谷歌留痕 币圈论坛 装修装饰网 减肥瘦身吧
在区块链世界中,智能合约不仅是代码的信任,更是商业的革命。通过了解其在供应链、版权保护等领域的应用,您将真正体验到智能合约的无限可能性
区块链世界GxPiKaQiu.com ©2020-2024版权所有 桂ICP备16002597号-2