2021年1月6日晚上9点,我们组织大家一起review了算法稳定币中的Basis,视频回顾在这里:https://www.bilibili.com/video/BV1bK4y157aR/,非常感谢菠菜的分享。
目前的稳定币一共分为三种:
锚定法币,比如USDT和USDC,也包括交易所发行的稳定币,例如BUSD、HUSD等。
链上资产抵押型,比如MakerDAO的DAI和Synthetix的sUSD。
算法稳定币,比如AMPL、ESD、Frax,还有今天要说的Basis。
算法稳定币经历了几个阶段,basis是一个很新的项目,采用了三币模型。
BitMart 与 HKVAC 建立战略合作伙伴关系:金色财经报道,数字资产交易平台 BitMart 宣布与香港虚拟资产联盟 (HKVAC) 建立战略合作伙伴关系。
HKVAC 由专业评级机构和虚拟资产行业的利益相关者(包括数据公司、交易所和机构投资者)与香港持牌评级机构共同创立,旨在促进以行业为主导的安全风险管理的重要性。[2023/6/17 21:43:14]
Basis机制
Basis有三个币:BAC、BAS、BAB,三者相当于货币,股票和债券。可以将Basis理解为一个央行,BAC是央行发行的货币;BAS是央行的股东持有的股票,需要承担系统风险,也获取系统的收益;BAB是债券,相当于央行的债券。这3个都是erc20token,BAB目前没有日期限制,只要在合适的价格就可以兑付。
美国法官拒绝SBF要求检察官审查FTX债务人的请求:金色财经报道,隶属于纽约南区的联邦法官LewisKaplan在周四的听证会上对FTX创始人的辩护团队关于驳回银行欺诈、电信欺诈和竞选财务指控的动议提出了几个问题,同时对辩方驳回银行和电汇欺诈指控的努力持怀疑态度。法官还驳回了辩护方提出的与程序有关的多项动议,包括要求美国司法部审查FTX文件和材料的努力。[2023/6/16 21:40:38]
BAC价格调节机制就是一个市场供需的调节机制。
当BAC价格少于1美元,需要减少BAC流通,让BAC的价格自然上升到1美元
BAC价格少于1美元,用户可以用申购债券BAB,方式是销毁BAC,得到BAB
BAB价格=BAC价格的平方,因为BAC价格小于1,所以平方后的BAB的价格会更低
以太坊开发人员正在计划下一个硬分叉“Dencun”:金色财经报道,在周四的以太坊开发电话会议上,开发人员讨论了下一个硬分叉“Dencun”,该名称源自以太坊区块链的两个主要层上同时发生的两个升级的组合词,所有协议规则所在的执行层将进行“Cancun”升级,而在确保块得到验证的共识层被称为“Deneb”。Dencun的核心是EIP4844,也被称为“proto-danksharding”,该提案旨在通过增加数据“blob”的空间来扩展区块链,预计这些变化还将降低第2层rollups的费用。预计Dencun还将包括一些其他技术升级,包括EIP6780、6475和1153。开发人员在本次会议上没有讨论Dencun升级的时间,尽管他们过去曾表示,目标是在2023年下半年推出。Dencun的全貌预计将在接下来的几周内确定。[2023/5/12 14:58:14]
未来可以用一个BAB换回一个BAC
现场 | Code Chain商务拓展:资产通证化的最大优点是节约交易费用:Code Chain商务拓展(Business Development)朴载媛(音)在由金色财经和cointime主办的金色沙龙韩国站第四期现场进行演讲时表示,资产通证化的最大优点是节约交易费用,增强交易的信任感,同时她也对资产通证化技术适用的法律进行了说明。她指出,按照韩国的标准,资产通证化技术适用的法律包括:商法、与资本市场和金融投资行业相关的法律、和个人信息相关的法律、和非法集资监管相关的法律、刑法及特定的经济法、与纳税相关的法律以及外汇交易法等。[2019/4/25]
当BAC价格超过1美元,需要增加BAC流通,让BAC的价格自然下降到1美元
目前的阈值是当BAC>1.05时,可以触发系统增发BAC
增发的BAC会发给持有BAB和BAS的用户
美国6月非农就业人数增加37.2万人,失业率为3.6%:7月8日消息,美国6月非农就业人数增加37.2万人,预估为26.8万人,前值为39万人。美国6月失业率为3.6%,预期3.6%,前值3.6%。(金十)[2022/7/8 2:01:06]
优先还债,所以先给持有BAB的用户,方式是销毁BAB,得到BAC
剩下的BAC给BAS持有人,如果没有剩余,则不给BAS持有人分配
BAS相当于股东,只有锁定到boardroom合约的BAS才能获得这部分收益
代码解读
源码:https://github.com/Basis-Cash/basiscash-protocol
treasury.sol
合约中主要的方法包括:
setFund:修改社区发展基金接收地址?
setFundAllocationRate:修改社区发展基金从BAC增发中接收的比率?
getBondOraclePrice:通过预言机获取Uniswap上BAB的价格?
getSeigniorageOraclePrice:通过预言机获取Uniswap上BAC的价格
bugBonds:购买债券,targetPrice参数是给前端进行校验的,只有当BAC小于1美元才能执行
redeemBonds:赎回债券,BAC价格要大于1.05美元才能执行
allocateSeigniorage:分配系统收入
价格小于1.05不执行,大于1.05才计算发多少钱
需要在一个epoch开始后才能执行,代码中的checkEpoch是1个modifier,用来检查这个条件
计算增发量,并增发
uint256?seigniorage?=?cashSupply.mul(percentage).div(1e18);?
IBasisAsset(cash).mint(address(this),?seigniorage);
每次增发的总量的2%会进入到CommunityDevelopmentFund
uint256?fundReserve?=?seigniorage.mul(fundAllocationRate).div(100);
IERC20(cash).safeApprove(fund,?fundReserve);
ISimpleERCFund(fund).deposit(...)
发给债券持有人
uint256?treasuryReserve?=?...;
accumulatedSeigniorage?=?accumulatedSeigniorage.add(treasuryReserve);
emit?TreasuryFunded(now,?treasuryReserve);
给股票持有人,也就是给boardroom
IBoardroom(boardroom).allocateSeigniorage(boardroomReserve);
Boardroom.sol
Boardroom相当于董事会,是Basis股份的持有者。合约的主要方法有:
allocateSeigniorage:计算可以分配多少钱?
claimReward:取钱操作
Timelock.sol
时间锁是治理体系不可或缺的一部分,通过Timelock限制超级用户对系统参数的修改,使普通用户有足够的时间进行决策,这里的Timelock,参数需要等待至少2天才能生效。
uint256?public?constant?MINIMUM_DELAY?=?2?days;uint256?public?constant?GRACE_PERIOD?=?14?days;uint256?public?constant?MAXIMUM_DELAY?=?30?days;
还有个巧妙的onlyOneBlock,限制1个块中只能有1个操作者,防止多次调用。
_status?=?true;_status?=?true;
总结
Basis的代码很巧妙,化繁为简,也很整洁,通过3种token的互相转化,保持价格稳定。AMPL的供应量是自动调整的,而Basis的token供应调整是通过激励用户的投机行为,让用户主动参与的。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。