区块见闻 区块见闻
Ctrl+D收藏区块见闻

Code Review 回顾:算法稳定币 Basis

作者:

时间:

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 是一个很新的项目,采用了三币模型。

Basis 有三个币:BAC(Basis Cash)、BAS(Basis Share)、BAB(Basis Bond),三者相当于货币,股票和债券。可以将 Basis 理解为一个央行,BAC 是央行发行的货币;BAS 是央行的股东持有的股票,需要承担系统风险,也获取系统的收益;BAB 是债券,相当于央行的债券。这 3 个都是 erc20 token,BAB 目前没有日期限制,只要在合适的价格就可以兑付。

BAC 价格调节机制就是一个市场供需的调节机制。

当 BAC 价格少于 1 美元,需要减少 BAC 流通,让 BAC 的价格自然上升到 1 美元

BAC 价格少于 1 美元,用户可以用申购债券 BAB,方式是销毁 BAC,得到 BAB

日本经济产业省成立Web3政策办公室:7月26日消息,日本经济产业省(METI)在大臣秘书处开设自己的Web3政策办公室。新办公室致力于将负责产业金融、税务、公司制度的部门以及处理媒体和内容、体育、时尚和其他娱乐行业的部门聚集在一起,加强审查与Web3相关的商业环境问题的框架。“鉴于一些从事Web3相关业务的企业家正在离开日本前往海外寻找机会,因此需要加快在日本发展商业环境的步伐。”

根据新闻稿,为Web3发展商业环境还将包括制定政策。因此,“Web3政策办公室”可能不仅仅是一个咨询机构。(Cointelegraph)[2022/7/26 2:38:45]

BAB 价格 = BAC 价格的平方,因为 BAC 价格小于 1,所以平方后的 BAB 的价格会更低

未来可以用一个 BAB 换回一个 BAC

当 BAC 价格超过 1 美元,需要增加 BAC 流通,让 BAC 的价格自然下降到 1 美元

目前的阈值是当 BAC > 1.05 时,可以触发系统增发 BAC

增发的 BAC 会发给持有 BAB 和 BAS 的用户

优先还债,所以先给持有 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 供应调整是通过激励用户的投机行为,让用户主动参与的。

标签:BACBASPAYASIDOGEBACKcoinbase网页版Altpay FinanceASIA

币安app官网下载热门资讯
金色前哨丨Ripple法律顾问:SEC承认XRP可作跨境支付燃料

金色财经 区块链1月9日讯  据Ripple总法律顾问斯图尔特·阿尔德罗蒂(Stuart Alderoty)透露,美国证券交易委员会(SEC)已经承认瑞波币(XRP)可以作为跨境支付的燃料。

比特币巅峰狂舞迷情:详解马斯克、高盛等23家国际巨头进场节奏

截至北京时间1月12日10点05分,比特币价格为34374.65美元,24小时内下滑6.58%。 近段时间以来,比特币“上蹿下跳”的行情里上冲,这些进场的机构与资金来自哪里?他们的进出如何?引发了投资界极大的兴趣。 尽管伴随着跌跌涨涨,比特币如今也算“身居高位“,其距离各大机构预测终值尚有一番距离。

2021年BTC和ETH会发生什么?

最近几周,加密世界一直在关注一个话题:比特币的价格。在比特币在12月16日已经能够摆脱其之前的历史高点之后,流行的加密货币的价格正在不断上涨。但不仅比特币是投资者关注的焦点,以太坊、波卡、莱特币和许多小型项目都可能在过去几周强劲盈利。 在强劲反弹的过程中,比特币再次创下了3.47万美元的历史新高。

HyperPay推出商家支付系统HPay 让支付更为安全便捷

日前,HyperPay已推出数字货币支付服务系统HPay,HPay是一款为数字货币领域打造的整套支付结算系统,系统适用于各种支付场景,能轻松满足商户不同结算要求,支持基于互联网模式下的数字货币开放接口,应用于线上电商、 微商以及O2O模式下的酒店、餐饮等门店支付场景。

金色百科 | 算法稳定币:不稳定的稳定币

算法稳定币投资怪圈:我看好你,是因为你是稳定币,但我投你却是因为你不稳定。 稳定币作为区块链去中心化金融(DeFi)的运行基础,一直是大家关注的赛道,顾名思义就是价值稳定的币,比如最熟知的USDT。然而,最近有一类稳定币非常火热,那就是算法稳定币,它的出现备受人们关注,也存在许多争议。

比特币为何疯狂上涨?

2021年1月3日9:20,据OKEx,比特币突破32500 USDT,报32515.2 USDT,24小时涨幅为11.32%。 Coingecko行情显示,当前全球加密货币总市值超过8506.87亿美元。比特币总市值突破6000亿美元,约占总市值的70.9%,与知名公司股票市值相比,排名升至第9位,已超越台积电,逼近阿里巴巴市值。