宇宙链 宇宙链
Ctrl+D收藏宇宙链

Code Review 回顾:算法稳定币 Basis

作者:

时间:1900/1/1 0:00:00

2021年1月6日晚上9点,我们组织大家一起review了算法稳定币中的Basis,视频回顾在这里:https://www.bilibili.com/video/BV1bK4y157aR/,非常感谢菠菜的分享。

目前的稳定币一共分为三种:

锚定法币,比如USDT和USDC,也包括交易所发行的稳定币,例如BUSD、HUSD等。

链上资产抵押型,比如MakerDAO的DAI和Synthetix的sUSD。

算法稳定币,比如AMPL、ESD、Frax,还有今天要说的Basis。

zkSync在Code4rena平台启动漏洞赏金计划:10月29日消息,以太坊Layer2扩容解决方案zkSync宣布在Code4rena平台启动漏洞赏金计划,总奖金池达165,000美元。活动将于北京时间10月29日4时开启,至11月10日4时结束,本次活动旨在提高网络安全性,使zkSync2.0成为更多开发人员的选择。[2022/10/29 11:55:24]

算法稳定币经历了几个阶段,basis是一个很新的项目,采用了三币模型。

Basis机制

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

Pieter Wuille离开Blockstream加入Chaincode Labs:金色财经报道,Bitcoin Core长期开发者、Blockstream联合创始人Pieter Wuille周一宣布,他已加入加密货币研发公司Chaincode Labs,将继续致力于比特币协议的改进。[2020/9/2]

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

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

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

RIDDLE&CODE与S1Seven达成战略合作:欧洲区块链接口解决方案提供商RIDDLE&CODE与S1Seven宣布达成战略合作伙伴关系,将RIDDLE&CODE的区块链接口解决方案与S1Seven的产品相结合,旨在解决金属行业的可追溯性问题。

RIDDLE&CODE与S1Seven正在构建基于区块链的金属证书公证服务,为产品提供数字、防篡改的身份,并跟踪产品从原材料到最终应用的每一步。该服务允许制造商用不可变存储的数字记录替换硬拷贝文档。(Businesswire)[2020/7/13]

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

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

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

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

Coda公共测试网将于6月8日发布:5月30日,区块链扩容项目Coda官方推特宣布,其测试网将于6月8日发布。[2020/5/31]

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

优先还债,所以先给持有BAB的用户,方式是销毁BAB,得到BAC

剩下的BAC给BAS持有人,如果没有剩余,则不给BAS持有人分配

BAS相当于股东,只有锁定到boardroom合约的BAS才能获得这部分收益

代码解读

源码:https://github.com/Basis-Cash/basiscash-protocol

treasury.sol

合约中主要的方法包括:

setFund:修改社区发展基金接收地址?

Kocodo成功测试第一个可扩展的原子交换解决方案:Kocodo(KMD)是Zcash的一个分支,宣布它已经成功测试了第一个可扩展原子交换解决方案。原子交换或原子交叉链交易是将一种加密货币交换为另一种加密货币,而不需要信任第三方。原子交叉链交易正在改变用户之间的交易方式。

Kocodo专注于授权两类用户:区块链企业家和平均加密货币投资者。提供了与比特币网络一样强大的独特而创新的安全形式。它建立在现有最先进的区块链安全形式-工作证明技术(PoW)上。[2018/2/12]

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供应调整是通过激励用户的投机行为,让用户主动参与的。

标签:BACBASCODASIETHBACK价格worldtradebaseCOD价格BASI币

以太坊交易热门资讯
V神发文简析各种二层扩容方案 Optimistic rollup vs. ZK rollup?

原文标题:Vitalik:Rollups不完全指南Rollups解决方案在以太坊社区中正风靡一时,并有望在将来成为以太坊的关键扩容解决方案.

1900/1/1 0:00:00
比特币能走向茅台线么?

比特币能否走向茅台线? 为什么会提出这个问题呢?因为茅台是A股信仰,而比特币也是币圈信仰,一样是信仰,当然要参考一下.

1900/1/1 0:00:00
Layer2:2021年加密领域最重要趋势

原标题:基于Layer2的路印DEX以太坊的拥堵已经严重影响了它更广泛的采用,这是众所周知的事情,只要体验一下DeFi就知道它的费用有多高,速度有多慢。以太坊的区块空间正在日益成为零和博弈的场所.

1900/1/1 0:00:00
全面盘点!有哪些华尔街传统金融机构持仓了比特币?

2021年1月4日,当比特币价格跃过3.4万美元之后,《金融时报》表示「cryptocurrenciesarebecomingmoreintegratedintothefinancialsystem」。这是里程碑式的一天.

1900/1/1 0:00:00
晚间必读5篇 | 王永利:数字人民币不应定位于M0

晚间必读5篇|王永利:数字人民币不应定位于M0 金色荐读 刚刚 金色晚报 | 7月7日晚间重要动态一览:12:00-21:00关键词:牙买加央行、西班牙国会、香港金管局、星展银行 1.牙买加央行将于8月推出CBDC试点项目; 2.

1900/1/1 0:00:00
关于比特币的基本常识 你都了解吗?

很多朋友最近询问比特币的问题,正好在此一并回答,增进大家对比特币网络的认知。1、比特币出块时间是十分钟吗?理论上是10min,实际上一个小时不出块也正常.

1900/1/1 0:00:00