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

波卡周报:PolkadotDecoded开放社区投票,QuarksLab发布XCMv2审计报告:4月4日消息,根据PolkaWorld发布的波卡周报,PolkadotDecoded已经开放社区的投票。

4月1日凌晨2:00左右,Polkadot网络第13次平行链插槽Auction结束。Phala以锁定610,759 DOT赢得Polkadot第13次平行链插槽Auction,并立马接入Polkadot中继链,以启动其主网。

预计第14次插槽Auction将在4月6日凌晨3:27启动。目前活跃的Crowdloan有Unique Network。尽管Unique Network的Crowdloan目前收集的DOT最多,但他们竞拍的是8-15租期,而不是当前7-14租期。

QuarksLab发布了一份XCMv2审计报告,对XCM、VM和XCM工作原理做了很好的概述。

Polkadot的56号公投正在进行中,该议案旨在通过paras.forceSetCurrentCode解除Composable平行链,目前正在一致通过中。

Polkadot理事会投票通过Motion 179,该议案旨在通过国库资助波卡生态研究院的运营。

Turing Network赢得Kusama第30次插槽Auction。

Kusama理事会投票通过Motion 449,该议案旨在通过NFT奖励来激励社区参与网络治理。[2022/4/4 14:02:39]

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

Developer DAO计划于12月推出治理Token CODE:11月25日消息,Developer DAO创始人Nader Dabit表示,该DAO组织正在为新的治理Token制定合约,计划在12月中旬至1月初之间正式将其推出,Token名称暂定为CODE,相关提案将在未来几天提交,并进行最终投票。

据悉,Developer Dao最近新增Cooper Turley为顾问,并将于近期吸纳Preethi Kasireddy为新顾问。同时,该组织将在未来启动赞助及招募计划,并完善DAO组织结构,并于未来推出包括孵化器、NFT在内的项目。[2021/11/25 7:10:14]

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

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

Coda Protocol启动节点运营商指导计划:金色财经报道,轻量级区块链协议CodaCodaProtocol宣布启动节点运营商指导计划,以通过教会用户如何免费运行节点来扩展用户基础。

注,Coda是一个使用ZK-SNARKs零知识证明来将区块链封装在一个单一的、可验证的、轻量级的证明协议中,可将区块链的大小从几百GB压缩到只有几条推文的大小。Coda此前启动千人Genesis资助计划,发放6.6万Coda代币,锁定期为四年。[2020/8/27]

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

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

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

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

Parity开发者Wei Tang:ETC开发者Cody Burns是导致MultiGeth等客户端脱离ETC的一部分原因:8月13日,Parity开发者Wei Tang发推称,在过去的一年中,ETC社区确实充满了性,以及一直在玩责备游戏、且社区管理不善。不确定Cody Burns(ETC开发者)是否意识到,如果ETC失败,他是一部分原因,同时他也是MultiGeth和OpenEthereum两大客户端被迫离开生态系统一部分原因。与此同时,Wei Tang还表示,虽然觉得ETC Labs也有很多问题,但至少此次他们决策是有依据的。而不像Cody Burns。Cody Burns推特听起来总是很吓人,即“如果不按照我的方式去做,让财政政策运作起来,那么我就会离开。”财政政策到底是好是坏还有待决定,但如果在讨论之前就是这种态度,那对话可能就结束了。[2020/8/13]

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

动态 | R3就“Coda区块链”名称起诉竞争对手:据The Block消息,10月24日,区块链巨头R3在特拉华州联邦法院提起商标诉讼。R3表示,另一家区块链公司的“Coda商标”与Corda商标令人混淆。[2019/10/27]

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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

币赢COIN:10天涨10倍 算法稳定币还能玩吗?

美国法院命令SEC在10天内对Coinbase的指控做出回应:金色财经报道,美国证券交易委员会(SEC)已被一家美国法院勒令对Coinbase关于如何将证券法适用于数字资产的投诉作出回应.

[0:0ms0-1:127ms