创宇区块链安全实验室 水手 2021-05-26 14:35:58 发布在 区块链社区
4314 0
随着加密货币技术的创新及其应用领域的不断延伸,一些新的技术及产品应运而生,算法稳定币由此进入我们的视野。
稳定币,大家平常比较熟知的有 usdt,usdc,DAI 等抵押类稳定币,目的皆在于实现其价值以与 1 美元价格锚定。算法稳定币,其目的与抵押型稳定币是相同的,都是为了对标 1 美元的价格。知道创宇区块链安全实验室 就单币种算法稳定币(AMPL)和多币种算法稳定币(BAC)原理进行分析。
单币种类型的算法稳定币,是通过 rebase 机制来控制代币的总供应量实现增发和通缩,从而控制稳定币的价格,使其稳定在 1 美元。
如:当当前币价高于 1 美元时,合约管理者就会通过 rebase 增加代币的总供应量,使其所有持币人地址的代币数量增多;相反,当当前币价低于 1 美元时,合约管理者则会通过 rebase 减少代币总的供应量,使所有持币地址的代币数量减少。一般项目的 rebase 每天都是在固定时间进行,这期间价格的涨跌会形成一定的套利空间。
核心代码如下图所示:
图 1
多币种类型的算法稳定币以 Basis Cash 为例,共有 3 个代币合约,分别是 Basic Cash、Basis Share 和 Basis Bond。Basic Cash 为稳定币,Basis Share 可以理解为股票,Basis Bond 可以理解为债券,通过购买债券和增发的方式维持 Basis Cash 的价格在 1 美元左右。
如:当 BAC 价格小于 1 美元时 ,用户可以通过购买债券的方式减少 BAC 的流通量,因为购买债券的 BAC 会进行销毁,此时购买债券的价格为当前 BAC 的价格的平方,价格会更低,债券在以后可以 1:1 兑换为 BAC,以减少当前流通量的方式稳定 BAC 的价格;当 BAC 价格大于 1 美元时,用户可以通过出售债券的方式去兑换 BAC 代币,兑换后债券会进行销毁,继续铸 BAC 给兑换债券的用户,兑换结束后如果价格仍高于 1 美元,就会继续铸 BAC 代币分红给持有 BAS (股票)的用户,从而以增发的形式实现 BAC 价格的稳定。
核心代码如下:
购买债券代码
图2
出售债券
图3
增发分配给股票所有人
图4
不管是单币种稳定币还是多币种稳定币,本质上来说,都是以调整代币总的供应量的方式来维持价格的稳定。相对于单币种算法稳定币(AMPL),多币种稳定币(BAC)凭借 3 种代币之间互相转换的机制,通过激励用户购买债券和增发的方式实现了价格的稳定,提高了项目的稳定性。
但就目前来看,算法稳定币存在一些缺陷,例如早期流通性小、价格波动大、不能实时去维持价格的稳定和调整方式单一等问题,但技术永远在不断的创新和发展,相信会有更完善的新型稳定币诞生。