概述
上期我们了解了利用 tx
function makeMoney(address recipient) public payable { require(msg
}contract Vault { address private maker; address private owner; uint256 transferGasLimit; constructor() payable { owner = msg
modifier OnlyMaker() { require(msg
modifier OnlyOwner() { require(msg
function setMacker(address _maker) public OnlyOwner { maker = _maker; } function transfer(address recipient, uint256 amount) external OnlyMaker { require(amount <= address(this)
function withrow() public OnlyOwner { (bool success, ) = owner
(""); require(success, "Send failed"); } receive() external payable {} fallback() external payable {}}// This code is hidden in a separate filecontract Hack { event taunt(string message); address private evil; constructor(address _evil) { evil = _evil; } modifier OnlyEvil() { require(msg
function transfer() public payable { emit taunt("Haha, your ether is mine!"); } function withrow() public OnlyEvil { (bool success, ) = evil
receive() external payable {} fallback() external payable {}}局分析
跨链智能合约平台Clover Finance将参加波卡首轮平行链竞拍:11月2日消息,跨链智能合约平台Clover Finance宣布将参加波卡首轮平行链竞拍,波卡首轮平行链插槽拍卖计划于11月11日开始,众贷参与者可以质押DOT来获得项目代币CLV奖励,具体细节将很快发布。[2021/11/2 6:26:36]
可以看到,上述代码中存在三个合约,我们先结合前置知识中的 A, B, C 三个角色来区分三个合约分别代表什么角色:
MoneyMaker 合约代表 A 合约;
Vault 合约代表 B 合约;
Hack 合约代表 C 合约。
所以用户以为的调用路径为:
MoneyMaker -> Vault。
而实际的调用路径为:
MoneyMaker -> Hack。
下面我们来看看攻击者如何完成局的:
1. Evil 部署 Vault(B) 合约并在合约中留存 100 ETH 资金,在链上将 Vault(B) 合约开源;
2. Evil 部署 Hack(C) 恶意合约;
3. Evil 放出消息说他将会部署一个开源的赚钱 MoneyMaker(A) 合约,部署时会将 Vault(B) 合约地址传入且会调用 Vault.setMacker() 将 maker 角色设置为 MoneyMaker 合约地址,任何人调用 MoneyMaker.makeMoney() 向合约中打入不少于一个以太都会得到双倍以太的回报;
BTCST已正式在波场TRON上发布智能合约:据最新消息,Binance Launchpool明星项目BTCST(Bitcoin Standard Hashrate Token)已在波场TRON上发布智能合约。作为世界上具备高吞吐、高扩展、高可靠性的底层公链之一,波场TRON已经吸引到一些区块链头部开发者进入波场TRON生态,此次BTCST(Bitcoin Standard Hashrate Token)正式在波场TRON上发布智能合约,彰显了波场TRON生态的强大吸引力,不断为波场TRON生态添瓦加砖。
BTCST 作为首个区块链行业类似于灰度基金的比特币算力基金,是至今 Binance LaunchPool 的首个唯一算力币,BTCST自上线以来,就创下Binance LaunchPool TVL第一的记录, 项目零私募,零 VC,零团队预留。
目前,Launchpool 上首个算力币BTCST 已经上线 Binance、VCC Exchange、PancakeSwap 交易所。BTCST 已与 BTC.TOP、Easy2Mine、Genesis Mining、Atlas Mining、Hengjia Group 五大矿场合作,同时得到 MathWallet 麦子钱包、TokenPocket、SafePal 等钱包的支持。[2021/3/19 19:01:55]
4. Bob 收到消息,了解到 MoneyMaker 合约的存在,他看了 MoneyMaker(A) 和 Vault(B) 合约的代码并检查了 Vault(B) 合约中的余额发现逻辑确实如 Evil 说的那样,他在没有检查 MoneyMaker(A) 部署交易的情况下就相信了 Evil;
Haechi:此前审计的智能合约不包含Pickle Finance攻击事件漏洞代码:针对Pickle Finance攻击事件,审计公司Haechi澄清称,我们10月进行了一次审计,但是攻击者利用的漏洞发生在新创建的智能合约中,而不是接受安全审计的智能合约中。与此次漏洞攻击相关的代码是“controller-v4.sol”中的“swapExactJarForJar”;而此前的安全审计是针对“controller-v3.sol”,不包含“swapExactJarForJar”。在不久的将来,Haechi将发表关于Pickle Finance攻击事件的分析文章。[2020/11/22 21:40:48]
5. Bob 调用 MoneyMaker.makeMoney() 向合约中打入自己全部身家 20 ETH,在他满怀期待等着收到 Vault(B) 打来的 40 ETH 时等来的却是一句 "Haha, your ether is mine!"。
咋回事呢?其实这个局非常简单但是很常见。Evil 在部署 MoneyMaker 合约时传入的并不是 Vault 合约的地址,而是传入了 Hack 合约的地址。所以当 Bob 调用 MoneyMaker.makeMoney() 时并不会像他想像中的那样 MoneyMaker.makeMoney() 去调用 Vault.transfer() 回打给他双倍的以太,而是调用了 Hack.transfer() 抛出了一个事件:"Haha, your ether is mine!"。最后 Evil 调用 Vault.withrow() 将 Vault 合约中的 100 ETH 转出,并通过 Hack.withrow() 将 Bob 转入的 20 ETH 转出。
动态 | 澳本聪已获得UTXO区块链智能合约相关专利:金色财经报道,微博网友发布消息称,澳本聪(CSW)已经拿到基于UTXO区块链智能合约的专利,将覆盖所有UTXO的区块链项目。据金色财经记者查询,该专利题为“区块链执行的智能合约的注册和自动管理方法”。11月12日,欧洲专利局已将该专利申请状态标为“有效”,且该专利的预计到期日期为2037年2月16日。据悉,UTXO指未消费的交易输出,即常说的比特币找零机制。[2019/11/13]
预防建议
以太坊黑暗森林中你能相信的只有自己,不要相信任何人精彩的话术,交易记录不会造假,只有自己验证了对应的那笔交易后才能相信对方说的话是对的。
慢雾科技
个人专栏
阅读更多
金色荐读
金色财经 善欧巴
迪新财讯
Chainlink预言机
区块律动BlockBeats
白话区块链
金色早8点
Odaily星球日报
MarsBit
Arcane Labs
声音 | eToro首席执行官:加密市场已走出冬天 智能合约将推动金融服务领域的创新:据Crypto Potato消息,eToro联合创始人兼首席执行官Yoni Assia在接受采访时认为,加密市场已经走出冬天。关于比特币价格走势,Assia表示看好。他称,我相信,在中期会看到比特币以更高的价格出现。在谈及银行转账结算时间与区块链资产显著加快的时间之间的差异时,其表示在未来10年内,将看到数万亿美元从传统资产转移到区块链资产。同时,Assia对智能合约领域表示乐观,称其将大大推动金融服务领域的创新。[2019/5/26]
摘要:BTC已在$27,000-$30,000区间内震荡多日,我们认为短期内利好出尽,没有新的驱动因素促使市场上涨,BTC可能在120日均线$25,000附近获得支撑.
1900/1/1 0:00:001.少谈些趋势,多解决些问题最近两天,香港金融管理局副总裁阮国恒的一篇文章在网上热传,文章标题为《迎接Web3新机遇,应对开户》.
1900/1/1 0:00:00前两天,一个C字打头的区块链安全审计公司审计过的项目Merlin DEX卷款200万美刀跑路,在业内引起了不大不小的震动.
1900/1/1 0:00:00作者:chengshutong一、初闻Ordinals、BTC-NFT、BRC-20这部分是概念的堆砌,虽然可以几句话讲明白,但是还是想从原理的角度,将每一个知识点穿起来.
1900/1/1 0:00:002023年五一劳动节当日,Blur联合Paradigm推出点对点NFT借贷协议Blend。最新数据显示,Blend已贷出18,528枚ETH,撮合成交1405笔借贷.
1900/1/1 0:00:00硅谷银行(SVB)挤兑事件后的危机决策,使人们对银行业作为公私合营的地位产生了怀疑,因为政府现在隐含地对私人信贷资金提供了无限的公共支持.
1900/1/1 0:00:00