Cream Finance是DeFi领域的知名去中心化借贷协议。项目方在业内首先推出了白名单机制的Ion Bank借贷机制。这一创新一方面为DeFi借贷提供了更为便捷的工具,另一方面也为黑客攻击创造了条件。
在今年2月13日,Cream Finance就因为其Ion Bank被黑客利用并辅以闪电贷工具遭到攻击。时隔半年,在8月30日,Cream Finance再次遭到闪电贷攻击。
本次攻击是因为项目中的APM代币合约与借贷合约的cToken合约不适配造成重入漏洞,被黑客利用。
在本次攻击中,攻击者的地址为:0xce1f4b4f17224ec6df16eeb1e3e5321c54ff6ede。
攻击合约的地址为:0x38c40427efbAAe566407e4CdE2A91947dF0bD22B。
独家 | 比特币年化期现价差为6.85%,市场情绪指数为“乐观”:金色财经报道,据同伴客数据显示,9月19日(格林威治标准0时)比特币年化期现价差为6.85%,较前一日下跌0.24%,市场情绪指数为“乐观”。
指数参考:>20% 极度牛市;10%~20% 牛市;5%~10% 乐观;2%~5% 谨慎乐观;0~2% 谨慎;-5%~0 谨慎悲观;-10%~-5% 悲观;-20%~-10%熊市;
上面的代码所实现的逻辑是在转账完成之后,才修改借贷额度状态accountBorrows。
这是一个典型的竞态问题。
代码中的doTransferOut函数最终会调用标的代币(underling token)合约的transfer函数,在此之后再对与标的代币关联的cToken合约的状态进行修改。
独家 | 褚康:全球市场避险情绪严重 但BTC仍未被主流资金认可:针对加密货币市场大跌,犇睿资本创始人褚康在接受金色财经独家采访时表示,肺炎疫情在全球范围内蔓延;美国股民不认可美联储的降息使得美股持续大幅度下跌;欧佩克组织与俄罗斯并未就石油减产达成协议,欧佩克报复性提高原油产量,盘面上原油期货跌超20%。受此影响,全球避险情绪非常浓厚。虽然黄金跳高上涨,但黄金作为避险资产的共识非常强烈,比特币目前还未被主流资金认可为避险资产,仍属于高风险资产。
近日有些机构发布了相关研究报告,寄希望于各国央行降息和QE,叠加比特币减半周期来临,预判未来比特币会迎来长牛,我认为不一定正确。全球央行放水,资金也不一定会流入到比特币市场,比特币要受到更多资金的认可,还需要区块链技术的长久发展和落地应用来证实,同时也需要比特币来证明自身拥有更强的稳定性和价值存储的作用。短期内不能指望比特币减半的行情,主要还是受全球金融不确定性因素影响,场内没有大资金能拉的起来,也没有资金有意愿在这个时候去抬升比特币市值。同时,据我们多方统计调研,场外大资金短期内还并不认可比特币的减半逻辑。阵痛都会有,危机既是“危”也是“机”,应该静候疫情危机后的“机会”。稳健的投资者应该短期观望为主,做好加密资产的合理仓位配置。[2020/3/9]
通常cToken对应的标的代币合约都是标准的ERC-20代币合约,这类标准的ERC-20代币合约中的transfer函数中没有回调函数。但如果标的代币不是标准的ERC-20代币合约,其transfer函数带有回调函数,则会引发重入漏洞。
独家 | 张议云:USDT被做空导致比特币大涨 其地位暂时无法被撼动:针对今天USDT导致比特币大涨一事,金色财经特采访到极豆资本创始人张议云,张议云表示:USDT面临着其他稳定币的竞争,通过做空USDT,吸收足够筹码,提高市场占有率。今天比特币大涨很大原因是其他稳定币做空USDT,让很多投资者选择将持有的usdt置换为比特币,使其保证资产稳定,所以造成短时间内比特币需求量增多,价格大幅度上涨。 USDT作为较早的稳定币,锚定美元的价值一直存在,被各大主流交易所使用,短时间内的市场做空行为无法被撼动USDT的地位。[2018/10/15]
本次攻击恰恰就是因为cToken对应的标的代币(APM代币)不是标准的ERC-20代币。APM代币合约是个基于ERC-777标准的合约。这个合约中的transfer函数最后会调用_callPostTransferHooks()函数,在这个函数的最后会有一个回调函数IAmpTokensRecipient.tokensReceived。
下面是与此相关的代码片段:
在回调函数中,攻击者可以再次发起交易,而此时cToken还未修改用户借款的相关状态,攻击者却已经收到借款,可以利用这些借款进行后续的动作。
合约中与cToken修改借款状态的相关接口已经定义了防重入的锁 borrowInternal,使用户无法再次直接从初始的借款合约中借入资金。
borrowInternal的代码片段如下:
攻击者也注意到了这一点,于是选择从一个借贷池借来的cToken,去另一个借贷池借款,以绕开上述防重入锁的限制。
由于cToken被再次用于借款,因此超过了借款额度。如果攻击者直接还款则会因为超额借贷而导致第一次借贷交易失败。因此攻击者选择不还款,而是使用另一个地址清算了这个满足清算条件的cToken,从而完成全部攻击。
纵观整个攻击过程,导致本次攻击成功的原因有两个:
1 为AMP代币添加借贷池时,没有考虑到AMP代币与借贷合约的适配性
2 借贷生成的cToken存在竞态条件问题,代码的实现逻辑没有严格遵循状态修改要放在外部调用之前的默认规范。
在此,Fairyproof Tech提醒所有的项目方:编写Solidity合约代码时一定要遵循Solidity合约编写的安全规范,不能心存侥幸。
在此例中Cream.Finance的代码分叉复制于Compound,尽管后者已经经过考验,但依然不能认为其代码是万无一失的。
根据我们的经验,即便是利用一些成熟的、历经考验的项目代码,也不能认为它们是绝对安全的,依然要进行充分的审计。尤其是要弄清楚,这些代码适用的前提条件和安全假设,以及具体到自己的应用场景中,这些代码是否还满足这些前提和假设。
在Fairyproof Tech审计代码的过程中,对适用前提和安全假设都有严格的检验标准和审查流程,并不会因为项目代码分叉自知名项目而忽略对这些安全事项的检查。
关于Fairyproof Tech:
Fairyproof Tech科技有限公司是一家专注区块链生态安全的公司。Fairyproof Tech科技主要通过“代码风险检测+逻辑风险检测“的一体化综合方案服务了诸多新兴知名项目。公司成立于2021年01月,团队由一支拥有丰富智能合约编程经验及网络安全经验的团队创建。
团队成员参与发起并提交了以太坊领域的多项标准草案,包括ERC-1646、ERC-2569、ERC-2794,其中ERC-2569 被以太坊团队正式收入。
团队参与了多项以太坊项目的发起及构建,包括区块链平台、DAO组织、链上数据存储、去中心化交易所等项目, 并参与了多个项目的安全审计工作,在此基础上基于团队丰富的经验构建了完善的漏洞追踪及安全防范系统。
作者:
Fairyproof TechCEO 谭粤飞
美国弗吉尼亚理工大学(Virginia Tech, Blacksburg, VA, USA) 工业工程(Industrial Engineering) 硕士(Master)。曾任美国硅谷半导体公司 AIBT Inc(San Jose, CA, USA) 软件工程师,负责底层控制系统的开发、设备制程的程序实现、算法的设计,并负责与台积电的全面技术对接和交流。自2011至今,从事嵌入式,互联网及区块链技术的研究,深圳大学创业学院《区块链概论》课程教师,中山大学区块链与智能中心客座研究员,广东省金融创新研究会常务理事 。个人拥有4项区块链相关专利、3本出版著作。
标签:比特币TOKTOKETOKEN比特币最新走势图FishingTownGilTokenWarlord TokenDegen Token Finance
本文为 2021.8.31 NPC 邀请本社区资深链游玩家 - 修桑进行的一场关于链游的 AMA 实录,主持人是 NPC-橙子,全文约 7,000 字.
1900/1/1 0:00:00今年5月份,Twitter官方曾表示,希望让用户在互相关注、转发、点赞之外能够更好地互相支持,因此平台将引入TipJar功能——让用户能够互相发送和接收小费。现在,此事又有了最新的进展.
1900/1/1 0:00:002021年9月4日,距离2017年9·4监管已经四年。四年间,加密货币市场打破了2017年刺穿泡沫后的宁静,又在全球QE下创下新高。不过随着今年各国监管的加强,加密市场已经从最高点回落.
1900/1/1 0:00:00本文由“宜信区块链研究院”原创,授权“金色财经”首发,转载请注明出处。关于Metaverse,维基百科是这样定义的:Metaverse是一个集体虚拟共享空间,由虚拟增强的物理现实和物理持久的虚拟.
1900/1/1 0:00:00根据比特币分布的数据来看,资产负债表上有比特币的公司/机构现在总持有 1,660,473 枚比特币,几乎占比特币总供应量的 8%.
1900/1/1 0:00:00题记:谨慎的边界,在哪里?作为NFT观察者和法律服务商,我们在国内某二手交易平台发现有卖家售卖本系统或友商的NFT产品。经过与店主交流,有的店家回复:几天内交货;有的店家回复:180天后交货.
1900/1/1 0:00:00