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 是一个很新的项目,采用了三币模型。
Moonpay与二维码及NFC技术公司Flowcode达成合作并推出联合产品:金色财经报道,加密支付服务提供商Moonpay宣布与二维码及NFC技术公司Flowcode达成合作,旨在将实体支付体验连接到MoonPay的Web3基础设施上,帮助客户以实时、隐私合规的方式进行线上和线下支付,据悉Flowcode的产品套件和MoonPay的产品套件将会被整合到双方共同推出的联合产品中。(prnewswire)[2023/6/18 21:44:17]
Basis 有三个币:BAC(Basis Cash)、BAS(Basis Share)、BAB(Basis Bond),三者相当于货币,股票和债券。可以将 Basis 理解为一个央行,BAC 是央行发行的货币;BAS 是央行的股东持有的股票,需要承担系统风险,也获取系统的收益;BAB 是债券,相当于央行的债券。这 3 个都是 erc20 token,BAB 目前没有日期限制,只要在合适的价格就可以兑付。
区块链开发公司EvaCodes完成50万美元融资:7月27日消息,区块链开发公司EvaCodes完成50万美元融资,hypra fund等参投。(Globe News Wire)[2022/7/27 2:41:18]
BAC 价格调节机制就是一个市场供需的调节机制。
当 BAC 价格少于 1 美元,需要减少 BAC 流通,让 BAC 的价格自然上升到 1 美元
BAC 价格少于 1 美元,用户可以用申购债券 BAB,方式是销毁 BAC,得到 BAB
BAB 价格 = BAC 价格的平方,因为 BAC 价格小于 1,所以平方后的 BAB 的价格会更低
未来可以用一个 BAB 换回一个 BAC
Wien Energie和RIDDLE&CODE合作加速全球脱碳:12月15日消息,欧洲区块链接口公司RIDDLE&CODE子公司RIDDLE&CODE能源解决方案公司今天宣布与奥地利能源供应商Wien Energie建立合资伙伴关系。该协议于12月9日签署,其目标是加速全球脱碳努力,并面向世界各地的客户提供其解决方案。根据该协议,Wien Energie和RIDDLE&CODE将共享资金和技术资源,提供尖端服务,并继续塑造未来的能源市场。两家合作多年的公司的合资企业将利用Wien Energie在能源领域的技术、商业和法律专业知识,并触及超过200万客户,以及RIDDLE&CODE在资产代币化方面的专业知识。(Business Wire)[2021/12/15 7:41:38]
当 BAC 价格超过 1 美元,需要增加 BAC 流通,让 BAC 的价格自然下降到 1 美元
目前的阈值是当 BAC > 1.05 时,可以触发系统增发 BAC
CodeBank与Basis Yolo达成独家战略合作:2月8日消息,金色财经旗下钱包CodeBank与Basis Yolo正式达成战略合作。
此次双方合作,金色财经旗下钱包CodeBank作为Basis Yolo的唯一官方指定合作钱包,为用户提供流动性挖矿入口,双方将通过资源共享,实现互利共赢,共同助力火币生态链的发展。
据了解,CodeBank是一款去中心化钱包应用,旨在让用户简单管理数字资产,目前支持火币生态链HECO(ETH、DOT等公链陆续引入中),内置DAPP等。
Basis Yolo是一个受Walltreetbets启发,由社区发起,基于Yolo(You Only Live Once)文化的算法稳定币,致力于打造一个去中心化的投资者社区。
Basis Yolo 将于2021年2月9日,20点开启头矿,该项目无私募,无预挖,团队无预留。[2021/2/8 19:13:41]
增发的 BAC 会发给持有 BAB 和 BAS 的用户
区块链创业公司Bloq首席执行官重启Segwit2x Code工作:此前曾宣布SegWit2x已经失败的区块链创业公司Bloq首席执行官Jeff Garzik又回来了,据悉他正在重新启动Segwit2x Code工作,但是他承认自己也不确定这项工作是否会取得成功。[2018/1/5]
优先还债,所以先给持有 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%会进入到 Community Development Fund(社区发展基金)
uint256 fundReserve = seigniorage.mul(fundAllocationRate).div(100);
IERC20(cash).safeApprove(fund, fundReserve);
发给债券持有人
uint256 treasuryReserve = ...;
accumulatedSeigniorage = accumulatedSeigniorage.add(treasuryReserve);
给股票持有人(BAS),也就是给 boardroom
IBoardroom(boardroom).allocateSeigniorage(boardroomReserve);Boardroom.solBoardroom 相当于董事会,是 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[block.number][tx.origin] = true;_status[block.number][msg.sender] = true;总结Basis 的代码很巧妙,化繁为简,也很整洁,通过 3 种 token 的互相转化,保持价格稳定。AMPL 的供应量是自动调整的,而 Basis 的 token 供应调整是通过激励用户的投机行为,让用户主动参与的。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。