# 12岁深圳小学生RandomDAO突变事件及其分析 **Published by:** [afawo](https://paragraph.com/@meata12/) **Published on:** 2022-05-06 **URL:** https://paragraph.com/@meata12/12-randomdao ## Content 原文发布在 https://github.com/33357/smartcontract-apps 这是一个面向中文社区,分析市面上智能合约应用的架构与实现的仓库。欢迎关注开源知识项目! RandomDAO事件及其分析事件概要 2022年2月4日,12岁中国深圳小学生黄振(网传名)在 B站 和 twitter 上发布了自己的solidity教学视频,发布了自己的教学项目 RandomDAO。随着一些大V的转发,这个项目引起了币民们的注意。直到2022年2月8日,已经有超过47000个地址领取了他发布的空投代币 RND,并曾达到ETH消耗gas费排行第二。事件分析 由于这是一个偏向技术的社群,因此我一般只关注技术方面的特点。黄振同学(暂且先这么称呼着)发布的 Random 合约只是一个普通的 ERC20 合约加一个空投逻辑,本来是不值得开篇文章说的。但是区块链网络上出现了一个随之而生的突变:https://github.com/33357/airdrop_multi_claim 这个合约实现了对 Random 合约空投的批量获取,并借此获取了大量收益 https://etherscan.io/tx/0xfc1d5688c18244764fe3678020b4821a8c215c7a7f42685814b3cf49557967ff(保守估计30多个ETH), 这就非常值得我来好好研究一下它的实现逻辑了。合约分析—操作原理 我们看到 https://etherscan.io/address/0x1c7E83f8C581a967940DBfa7984744646AE46b29#code 上的获取空投函数是这样写的function claim() external{ if( (uint32(block.timestamp)-release_time) <= 360 days && is_claim[msg.sender] == false ){ is_claim[msg.sender] = true; yet_claim_people.push(msg.sender); _mint(msg.sender,return_claim_number()); } } 这里要求对职能的检查只有两个: (uint32(blocktimestamp)-release) <=60天,领空投稿的时间需要在发布合同的360之3_time。 is_claim[ms_.ender]=可以使用claim[获取ms_的地址的再地址。基础。 众筹创建签名领取奖牌 multi_claim_with_selfdestruct.txt 在multi_claim_with_selfdestruct.txt文件中,可以看到主方法调用的实现 公共函数调用(uint256 次){ for(uint i=0;i 0,'哦不'); airdrop(contra).transfer(receiver, balance); 在uint256 balanceairdrop(contra).balanceOf(selfAdd)中,selfAdd是预测出来的这个正确的合同地址,所以这里获取的平衡。claimer可以移除selfdestruct函数。 疑问 在 README.md 中,说 multi_claim 自我实现了高效启动(一次交易能力希望理解)没有这种实现 EOA 机构的我是完整的,特别是做地址预测的目标和文件结构的使用,有很大的意识大佬们告诉一下,好填完这个坑。 文章来源:微信公众号 作者:我是33357 ## Publication Information - [afawo](https://paragraph.com/@meata12/): Publication homepage - [All Posts](https://paragraph.com/@meata12/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@meata12): Subscribe to updates