By:小白
背景概述
上期我们了解了利用tx
functionmakeMoney(addressrecipient)publicpayable{require(msg
}contractVault{addressprivatemaker;addressprivateowner;uint256transferGasLimit;constructor()payable{owner=msg
modifierOnlyMaker(){require(msg
modifierOnlyOwner(){require(msg
functionsetMacker(address_maker)publicOnlyOwner{maker=_maker;}functiontransfer(addressrecipient,uint256amount)externalOnlyMaker{require(amount<=address(this)
functionwithrow()publicOnlyOwner{(boolsuccess,)=owner
receive()externalpayable{}fallback()externalpayable{}}//ThiscodeishiddeninaseparatefilecontractHack{eventtaunt(stringmessage);addressprivateevil;constructor(address_evil){evil=_evil;}modifierOnlyEvil(){require(msg
functiontransfer()publicpayable{emittaunt("Haha,youretherismine!");}functionwithrow()publicOnlyEvil{(boolsuccess,)=evil
receive()externalpayable{}fallback()externalpayable{}}
加密金融服务公司Menai Financial Group将关闭在东京和伦敦的做市业务:金色财经报道,加密货币金融服务公司 Menai Financial Group 将关闭在东京和伦敦的做市业务。据一位知情人士透露,重新调整集团重点的过程仍在进行中,业务仍可能被出售,内部员工也可能会重新分配。目前尚不清楚有多少人会受到关闭的影响。该公司表示,它将继续投资和发展其资产管理业务,并且仍然坚信“区块链技术的颠覆性承诺,尤其是当它与金融和现实世界资产的代币化相关时。[2023/4/6 13:46:59]
局分析
可以看到,上述代码中存在三个合约,我们先结合前置知识中的A,B,C三个角色来区分三个合约分别代表什么角色:
MoneyMaker合约代表A合约;
Vault合约代表B合约;
Hack合约代表C合约。
所以用户以为的调用路径为:
MoneyMaker->Vault。
Bitfinex将上线Onomy Protocol(NOM):据官方公告,Bitfinex将上线创新型DeFi协议Onomy Protocol代币NOM。Bitfinex将于3月13日开放NOM充值,NOM交易将从3月15日开放,支持NOM/USD和NOM/USDT交易对。[2023/3/10 12:54:03]
而实际的调用路径为:
MoneyMaker->Hack。
下面我们来看看攻击者如何完成局的:
1.?Evil部署Vault(B)合约并在合约中留存100ETH资金,在链上将Vault(B)合约开源;
2.?Evil部署Hack(C)恶意合约;
3.?Evil放出消息说他将会部署一个开源的赚钱MoneyMaker(A)合约,部署时会将Vault(B)合约地址传入且会调用Vault.setMacker()将maker角色设置为MoneyMaker合约地址,任何人调用MoneyMaker.makeMoney()向合约中打入不少于一个以太都会得到双倍以太的回报;
加拿大第三大养老基金Teachers或在FTX事件中面临大额投资损失:金色财经报道,加拿大第三大养老基金Teachers在2021年10月份参与了FTX以250亿美元估值完成的4.2亿美元融资,且在融资公告中被列为第一名,目前该基金拒绝透露投资规模,但指出FTX未被列入其2021年年度报告中超过2亿美元的投资清单中。
据悉这并非加拿大养老基金的第一次失误,加拿大另一家最大的养老金管理公司之一CDPQ此前已注销其对破产的加密借贷平台Celsius Network的1.5亿美元投资。(环球邮报)[2022/11/9 12:38:12]
4.?Bob收到消息,了解到MoneyMaker合约的存在,他看了MoneyMaker(A)和Vault(B)合约的代码并检查了Vault(B)合约中的余额发现逻辑确实如Evil说的那样,他在没有检查MoneyMaker(A)部署交易的情况下就相信了Evil;
5.?Bob调用MoneyMaker.makeMoney()向合约中打入自己全部身家20ETH,在他满怀期待等着收到Vault(B)打来的40ETH时等来的却是一句"Haha,youretherismine!"。
NFT流行收藏家:加密货币的大部分启动资金来自美国:金色财经报道,拥有超36万粉丝的NFT流行收藏家punk6529发推称,美国允许你向认可的投资者出售未注册的证券,实际上没有任何限制。因此,大多数初创企业,对建立自己的业务感到兴奋,而不是浏览美国证券交易委员会的一堆法规,将走快速通道,去找认可的投资者。谁是典型的投资于初创企业的认可投资者?1.天使投资。2.家族办公室。3.VC。风险投资公司通常能以更高的估值进行更大的投资。你有什么选择?在大多数情况下,所有这些对初创企业来说都比较困难。
在加密货币公司的启动资金方面,目前,加密货币的大部分启动资金来自美国。那么谁是加密初创公司的重要资助者。一个不详尽的清单:a16z、USV、Pantera、DCG、Paradigm、Polychain 等等。[2022/5/29 3:48:05]
咋回事呢?其实这个局非常简单但是很常见。Evil在部署MoneyMaker合约时传入的并不是Vault合约的地址,而是传入了Hack合约的地址。所以当Bob调用MoneyMaker.makeMoney()时并不会像他想像中的那样MoneyMaker.makeMoney()去调用Vault.transfer()回打给他双倍的以太,而是调用了Hack.transfer()抛出了一个事件:"Haha,youretherismine!"。最后Evil调用Vault.withrow()将Vault合约中的100ETH转出,并通过Hack.withrow()将Bob转入的20ETH转出。
预防建议
以太坊黑暗森林中你能相信的只有自己,不要相信任何人精彩的话术,交易记录不会造假,只有自己验证了对应的那笔交易后才能相信对方说的话是对的。
注:本文参考自《SoliditybyExample》https://solidity-by-example.org/hacks/randomness
标签:MAKEMakerMONONERainmaker Gamesmakerdao创始人Cryptographic Ultra Moneyone币局
2022年NFT市场2020年-2022年NFT交易量及市值情况2020到2022年,NFT行业在短短2年内经历了许多变化.
1900/1/1 0:00:002022年年末以“加密市场进入寒冬”的共识收尾。这一年的一级市场资金流向中,投资机构更专注于基建Infra及应用类,新公链是重点关注方向.
1900/1/1 0:00:00我想把这篇文章的重点放在技术、初创公司、web3和气候的宏观大环境上,因为这就是我现在的想法。我相信,在2023年上半年的某个时候,随着通胀持续放缓和经济继续降温,世界各国央行将开始退出他们一直.
1900/1/1 0:00:00回到2020年的DeFi夏季——很久以前的Web3时代——就出现了「Degens」这个词。这个Meme?一般用来描述那些在高收益率和高风险的项目上进行投机的Web3爱好者.
1900/1/1 0:00:00注:本文来自@thedefiedge推特,MarsBit整理如下:锁定代币是不值得的ve风格的锁定机制在DeFi中流行起来你把你的代币锁定一段时间,作为交换.
1900/1/1 0:00:00注:本文来自TheBlockResearch推文,简述过去一年加密货币市场发展态势。对加密货币行业来说,2022年必将是载入史册的一年,在世界各地的分析师团队的帮助下,我们很自豪地发布了《202.
1900/1/1 0:00:00