SafeMoon:月涨幅 6000% 项目背后的原理摘要: safemoon项目是对 ERC20 代币的一种发展,其独特的奖惩机制是亮眼之处,虽然在交易过程中会收取发送者部分手续费,但是依旧不妨碍其吸引投资者的注意力,成为最近如火如荼的项目之一。
SafeMoon 是一个社区项目,凭借独特的奖惩机制引起了社区的轰动,其增长速度可与当下风靡一时的狗狗币旗鼓相当。知道创宇区块链安全实验室 就 SafeMoon 代码原理分析其受人追捧的原因。
SafeMoon 协议是一种去中心化金融( DeFi )代币。根据 SafeMoon 网站的说法,SafeMoon 在每次交易中都具有三种功能:反射、LP 采集和刻录。它是基于公平推出的 DeFi 代币,并且是 RFI 静态奖励和流动性生成协议的组合。这个组合会让持币者在他人的交易后余额增加,原因是该机制会利用静态反射从而增加持币者的被动收益。
SafeMoon 本质上也是一种基于 ERC20 协议实现的代币,其代币发行总量为 1,000,000,000,000,000 枚,代币可以通过销毁来增加价值,且其增加了一些奖惩措施及流动性挖矿机制,在短时间内快速走红,以下就其三个特点进行分析。
SafeMoon 的第一个特点,是会惩罚尝试进行交易的人,并奖励给其他持币人。合约重写了 transfer 函数,使其在进行交易时会扣除一定手续费,用于惩罚交易发起人,源代码截图如下:
调用 reflectFee 函数销毁其中的代币数量 tFee 加入 tFeeTotal 变量中,tFeeTotal 变量用于记录已经销毁的所有代币数量,reflectFee 函数源代码如下所示。
SafeMoon 的第二个特点,就是会去 Uniswap 中添加流动性以保证自身代币的活跃性。根据第一个特点,每次转账将会收取转账的 5% 的流动性手续费转入合约地址中,当手续费累加起来超过一定数额(由变量 numTokensSellToAddToLiquidity 定义,其值为 50w*10^6),将会调用 Uniswap 对应的 router 接口进行添加流动性,具体代码如下:
该函数将 5% 的流动性手续费平分,将其中一半(也就是 2.5% )的 safeMoon 代币转换为 WETH 代币,然后用换得的 WETH 与剩下的另外一半 safeMoon (2.5%)去 Uniswap 中添加流动性获得 lp 代币。SafeMoon 的第三个特点,就是持有者的代币余额会越来越多。合约查询余额的 balanceof 代码如下:
当用户调用该函数查询余额时,大部分情况由于非排除地址,将调用 tokenFromReflection 函数查询用户的代币余额,而这个函数将会根据合约代币数量比率来计算用户的余额,具体公式转换如下:
tOwned[account] = rOwned[account] / GetRate =>
tOwned[account] = rOwned[account] / rSupply * tSupply
又因为随着用户交易的发送,导致 rSupply 因为手续费在不断减少,所以对应表达式的分母会不断变小,用户的代币余额相应增多。换一句话说,随着交易的增加,持币用户的余额会越来越多。
总结一下 safemoon 项目的三个特点:
交易会惩罚发送人的发送量 10% 的代币项目会结合 Uniswap 进行流动性挖矿以保证自身活跃性持币人随着交易增加余额也会不断增加
总的来说,该项目是对 ERC20 代币的一种发展,其独特的奖惩机制是亮眼之处,虽然在交易过程中会收取发送者部分手续费,但是依旧不妨碍其吸引投资者的注意力,成为最近如火如荼的项目之一。
作者:创宇区块链安全实验室;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请发送至邮箱:linggeqi@chaindd.com