这两天XEN特别火,看了看代码,相对比较简单。这篇文章就来结合文档来解读一下合约代码,仅做学习交流用。对于玩法还不熟悉的朋友可以先看看我昨天发的推文。
整个玩法分成两部分,我这里将其区别为:
时间挖矿,也就是在参与时指定时间,时间到期后即可领取对应的XEN,唯一付出的成本就是gas费用和等待的时间stake挖矿,通过质押XEN来挖矿时间挖矿
先来看第一部分,时间挖矿。用户通过调用?claimRank(uint256term)?来参与,term?代表用户想要挖矿的天数,在这个时间到期之后才能领取XEN奖励。
其中全局变量?globalRank?代表的是全局参与的总人数,只增不减。activeMinters?代表正在参与挖矿的人数,当用户参与时间挖矿时增加?1,到期领取奖励后减少?1。userMints?代表用户的挖矿参数。我们看到,这里最短需要参与一天,最多参与的天数是通过?_calculateMaxTerm()?实时计算出来的。
加密交易所Bithumb将上线INJ:金色财经报道,韩国加密货币交易所Bithumb将上线Cosmos生态智能合约平台Injective代币INJ,支持KRW市场交易对,存款将于当地时间11:00开始,计划14:00开始交易。[2023/4/4 13:43:20]
首先如果全部参与人数没有超过5000,那么最多只能挖100天。如果达到了5000,通过对参与人数进行对数运算,计算出对应的最大天数。对应于文档中的:
最大参与时间计算公式
代码中的?fromUInt()?和?log_2()?都来自于?ABDKMath64x64?库。其中?fromUInt()?的代码:
入参x有限制,这个最大值转换为10进制是?9223372036854775807,全部参与人数不可能超过这个数,所有可以安全使用。
美国立法者就SBF被捕的时间和流程向SEC主席提出质疑:金色财经报道,美国众议院金融服务委员会主席 Patrick McHenry 和众议员 Bill Huizenga(监督和调查小组委员会主席)周五表示,FTX 创始人Sam Bankman-Fried 在巴哈马群岛被指控和被捕的时间点引发了“对美国证券交易委员会(SEC)的程序以及与司法部合作流程的“严重质疑”。
两位立法者呼吁 Gensler 提供SEC执法部门、他的办公室以及该机构与司法部在 11 月 2 日至 2 月 9 日期间对 SBF 的指控有关的记录和通信。McHenry 和 Huizenga 要求 Gensler 不晚于 2 月 23 日回复信息。[2023/2/11 12:00:14]
在构造的挖矿系数?mintInfo?中,_calculateRewardAmplifier()?和?_calculateEAARate()?也是实时计算的。
可以看到,越早参与,可以获得到的?AMP?就越多,最开始一天是?3000,每过一天会减少?1,最终超过3000天就会恒定为?1。
意大利立法者批准对加密货币征收26%的资本利得税:金色财经报道,加密货币交易者将从2023年开始缴纳意大利26%的资本利得税。意大利总理Giorgia Meloni的2023年扩张性预算在年底前敲定,其中包括210亿欧元(223亿美元)的税收减免,以帮助企业和家庭应对持续的能源危机。这份387页的预算通过将加密资产定义为“一种价值或权利的数字表示形式,可以使用分布式账本技术或类似技术以电子方式传输和存储,从而使加密资产合法化”。法案规定,如果每个纳税期交易加密资产超过2000欧元,则26%的税率适用于加密交易的收益。新法案还为投资者设定了截至2023年1月1日持有资产价值的14%(而不是购买成本或价值)的“替代所得税”。[2022/12/31 22:17:31]
对应于文档中?AMP?的计算方式:
AMP计算公式
美官员下令Paxos冻结与FTX相关的1900万美元加密货币:11月14日消息,Paxos周六表示,美国联邦执法部门已下令Paxos冻结与FTX相关的价值1900万美元的加密货币,Paxos随后冻结了FTX平台上的11184.38个PAXG代币。(CoinDesk)[2022/11/15 13:05:19]
EAA计算公式
由于Solidity中没有小数,因此在代码中将其放大了?1000?倍,后面在?getGrossReward?方法中会再缩小?1000?倍。
到这里,我们可以看到,在用户参与时间挖矿时,已经确定的数据有
用户在全局中的位置参与时长,由用户在参与时指定AMP,越早参与越大EAA,越早参与越大接下来我们来看用户领取奖励时的方法?claimMintReward():
校验限制后,计算可得奖励数量,然后?_mint?给用户,计算奖励数量的主要计算逻辑在?_calculateMintReward()?中:
印度政府将发布与加密货币相关的税收指南:金色财经报道,印度政府计划在对虚拟数字资产 (VDA) 的范围和定义进行一些修改后,在 7 月 1 日之前发布一套指导方针,以对虚拟数字资产 (VDA) 进行有效的税收管理。媒体报道称,已要求中央直接税委员会 (CBDT) 准备该指南。据消息人士称,政府不太可能减少适用于几乎所有数字资产转让的 1% 的源头税收减免 (TDS)。它认为 TDS 将有助于追踪和追踪加密货币交易中可能获利但不愿在所得税申报中显示的人。
包括 CoinSwtich Kuber 首席执行官 Sumit Gupta 在内的一些行业代表已要求?政府将 TDS 降低到 0.01% 至 0.05% 的范围内。通过 2022-23 年联盟预算对包括 NFT 在内的加密交易利润征收的 30% 的资本利得税也不太可能减少。除了一些可能包括使用区块链技术的医院的例外情况外,财政部不打算提供豁免。[2022/6/6 4:04:37]
这里我们先忽略?penalty?这一块,其他部分的计算正好对应于文档中的:
时间挖矿奖励数量计算公式
在计算最终奖励数量的时候,自己参与的位置越靠前,后面的人越多,那么
cRG-cRu
就会越大,同样说明越早参与越好。
我们再来看?penalty?这部分,这块其实就是系统限制用户必须在到期后一定时间内领取走,如果没有领取则会随着时间越来越少,最终归零。
对应于文档中的扣除比例:
扣除比例时间关系
文档中显示超过七天就全部不能领取,但是代码中显示最多只会扣除?99%。
到这里,我们就介绍完了时间挖矿的代码部分,接下来我们来看看stake挖矿的部分。
stake挖矿
这里的stake其实比常见的挖矿计算逻辑要简单。常见的挖矿?APY?是根据用户质押数量占比以及参与时间来计算的,属于随挖随走类型的。而这里的stake挖矿的?APY?在参与时就已经固定了,且需要在参与时就指定参与时间,在时间到期后才能领取奖励,如果没有到期就领取,只能取回本金,没有任何的奖励。
用户可以在前面时间挖矿到期时调用?claimMintRewardAndStake?同时领取奖励并进行stake,或者单独调用?stake(uint256amount,uint256term)?进行stake挖矿:
整体的逻辑也比较简单,参与的时候需要指定时间?term。有一个小细节是在?stake?的时候直接?burn?掉了用户的token,而不是通过转账的方法,这样可以少一步授权操作。由于合约本身既包含了挖矿操作,同时也是ERC20,因此可以实现这个逻辑。
接下来我们看看计算APY的方法?_calculateAPY():
基本逻辑也是类似于上面计算?EAA?的方法,一次函数递减,参与的时间越早,相对应的?APY?就越大。初始值为?20,每过?90?天,减少?1。最终在?1620?天后,恒定为?2。对应于文档:
APY时间关系
最终在?stake?到期后,可以调用?withdraw()?取出本金和奖励:
对应于文档中的:
stake奖励计算公式
对于stake挖矿而言,没有领取的限制,奖励数量不会变化。
总结
到这里我们就看完了主要的逻辑代码。这个玩法有意思的地方在于越早参与获得的奖励越多,相当于普通的挖头矿,但是同时也取决于总体的参与人数,如果后面没有人参与,那么也没啥意义。必须是参与的早且后面还有更多人参与的情况下,奖励才会更多。目前时刻总参与人数已经快达到50万了,热度确实很高。
同时,前面的时间挖矿和后面的stake挖矿也存在博弈关系,如果前面选择的时间越长,获得的奖励就越多,但是来到后面的stake挖矿的APY就会降低,需要大家自行抉择。
合约本身代码没啥难度,但是整体机制比较有趣,值得花点时间了解。
责任编辑:MK
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。