详解去中心化资产管理协议BlackHoleDAO
Posted 蜻蜓资讯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解去中心化资产管理协议BlackHoleDAO相关的知识,希望对你有一定的参考价值。
BlackHoleDAO 是一个基于 DAO 治理的去中心化资产管理协议。在 DeFi 3.0 基础之上构建了一套全新的标准化模型,被称之为「BlackHole DAO Protocol(BHDP)」,BHDP 销毁机制借鉴传统股票市场拆分与合并原理解决了市场高通胀与通缩之间的不平衡问题。推出鉴于 DAOs 信用借贷服务。
简单的理解成一个资产管理公司服务协议,在这个协议里面包含拆分和合并功能,基于协议本身又做了无抵押信用贷服务。
1.0 协议组成部分
协议的重要组成部分:
BHDP:BlackHole DAO Protocol(黑洞资产自治管理协议)
BHDP 极致通缩公式:X-【X/(Y*H)】=Z
VC Pool:拥有一切优质 Token 资产的资金池
Donation Pool:一种由投资机构,DAOs 和个人投资能获取高额回报的资产池。
DAOs:是指各种不同的 DAO 社区
Transaction Fee Pool:交易税累计资产池
Black Hole Reactor:到达一定数量 BUSD,反应堆会被打开
1.1BHDP 设计亮点
BHDP 是 BlackHole DAO Protocol 协议的全名称,从上述图可以看出,协议是由一个国库来支撑,其中智能合约衔接了 VC Pool 和 Donation Pool,VC Pool 支持多资产凭证来投资,其中一部分用于销毁流动性池中的 BHO,另外一部分用于 DAOs 投资成功之后的信用贷,而 Donation Pool 接受投资机构、DAOs 团队即个人 BUSD 直接投资,最终按 BUSD 进行回报,其中 Transaction tax pool 支撑了 Donation Pool、DAOs 社区、Black Hole Reactor 等运作。
协议中通缩的 3 种方式:
· Transaction tax 的 60%BHO 直接销毁,这个销毁方式很常见,但是 BlackHole DAO Protocol 销毁的比例在 DeFi 领域已经非常高。
· VC Pool 中 50% 也用于销毁流动性池中的 BHO,意味着 Swap 池里面的 BHO 随着 VC Pool 进的越多,销毁的就越多,币价也会快速的提升。
· 协议极致通缩机制,意味出现极致通胀情况下会触发:
当市场中的股票 (BHO) 到达某一数量时出现支撑率等于 0 情况,此时会触发通缩机制,Stake 的利息会逐渐按照一定比例减少。通过 Bond 购买股票 (BHO) 的比例也会逐渐减少,其次,通过 VC Pool 铸造的股票 (BHO) 也会逐渐减少,如果出现支撑率小于 0,此时 Stake 会停止产生了利息,Bond 和 VC Pool 会停止铸造新币,同时通缩机制会被触发,开始按照时间和相应的比例进行销毁存量流通量,销毁之直至支撑率大于 0。
X-[X/(Y*H)]=Z
x:触发销毁机制时的数量
y:销毁比例
h:时间 (天)
z:销毁止支撑率大于 0 时的数量
整体来看,协议设计整个围绕的经济模型在走,商业模型很有特色,在 DeFi 行业具有通用性代表的一套模型,业务之间关联性很强,其中在通缩机制方面做了 3 种调节机制,防止因为早期流通量太大对产品造成恶性影响,这也是这个 DeFi 领域一直以来存在问题,所以机制本身可圈可点,然而这一切还有待市场验证,值得期待。
2.0 巧妙的运用了 Olympus 中的 stake 和 bond 原理
stake 挖矿在 DeFi 行业一直存在,但是也因次一直存在高通胀问题,自从 Olympus 引用了高 APY 复利机制开始,几乎很多产品在效仿该机制,虽然在获取用户有了显著的效果,同样没能避免产品进入死亡螺旋,然而却加快了死亡速度。
2.1 进化了 stake 和 bond
OlympusDAO 质押之后,利息是根据铸造出来的总流通量进行计算的,随着质押数量的增多,每天的质押利息也在飞速增长,涌入了大量质押投机者,难免会出现获利出逃这种行为;而 BlackHole DAO Stake 是通过质押总量比例来动态调节的铸造的,意味着当市场处于通胀情况下,质押利息会逐渐降低,当市场处于紧缩状态下,质押利息会逐渐上升。但始终不会超过总质押量。动态调节的好处就是,他是市场自由交易行为,避免出现集体性获利出逃行为。
质押收益计算公式:
利息是按照复利进行计算的,具体是通过 APY 来呈现的,APY 代表年收益率。它通过考虑复利的影响来衡量您本金的实际回报率。您质押的 BHO 代表您的本金,并且由于 rebase 机制,在每个时期(大约 8 小时)定期添加复利。
rebase 每天发生 3 次,一年有 365 天,这将给出 365 * 3 = 1095 的 rebase 频率。
BlackHole DAO Bond 看起来和 Olympusdao 是一样的,都是为了储备国库资产来支撑市场流通而设计,也是为了补充流动性池的一种有效方式,这种机制在 Defi3.0 里面几乎已经很常见了,包括 Ve(3 3)、Tokenmak 都采用了该机制,也因此该机制在这个领域已成了标配。
Bond 实质就是用户在通过 BUSD 或者协议中支持的 Token 购买证券,购买成功之后,协议会将 BUSD 组成 LP 添加到流动性池,LP 直接进入国库,同时铸造相应的 BHO 给到用户和 DAO 池。但是需要锁仓 5 天时间才能全部获取。
但是,BlackHole DAO 基于原本的债券机制,做了一些改进,这些改进其实和 Stake 一样,具有一定的创新,对这个领域的发展非常强的可参考价值。
改进点:
· Olympusdao 是可以一直铸造 Token 的,但是 BlackHole DAO 是根据通胀率来动态调节铸造 Token 的比例,当通胀率比较高的情况下,Bond 铸造的 BHO 的比例会逐渐减小,当支撑率等于 0 的情况下,Bond 会停止铸币。
· 通过 Olympusdao 购买 Token 是有折扣价,但是通过 BlackHole DAO 购买 Token 是和市场价一样,但可以节省 15% 的交易税。
其实这两点,最有吸引力或者价值点的是当市场流通价值等于国库价值时,Bond 不再是之前的高溢价铸币了,而是停止铸币了,说明市场在进入通胀之前,铸币的通道铸造的比例会逐渐减少直至停止铸币,防止通胀中资产进一步缩水。
比如:美联储发行的美元已经通胀了,本质上不会继续发行美元了,按照之前 Olympusdao 的逻辑,用户是可以从美联储获得新发行美元,只是获得的成本会比较高,倘若数额巨大,流入市场就会对现有持有美元的用户造成进一步缩水,所以高溢价铸币造成的结果就是资产持续缩水。
综上来看,BlackHole DAO Stake 和 Bond 的改进是具有创新和标志性。
2.1 拥有一切凭证的 VC 池
从官方文档透露出 VC 池的性质和理念其实已经很清晰,就是将它定义成了一个「拥有凭证的 VC 池」,当然文档是这样描述的:[任何的项目 Token 进入 VC 池都会经过 DAOs 严格的审核和筛选才会被允许,防止恶意的行为对潜在的资产造成长尾流失效应,以致股票 (BHO) 出现缩水和通胀,也发挥不出对进入 VC 池 Token 项目本身的锁定作用,最终若呈现不出像 BTC 这样长曲线增长趋势,这样会违背我们成立 VC 池的初衷想法,所以能进入到 VC 池的任何凭证都必须具备长曲线增长趋势。]
从内容中我们可以看出,VC 池就是资管业务,或许有可能终将会成为拥有最多种类的数字资产管理社区组织,并且依托自治社区成员的专业能力,去发现和推荐优秀的、全新的数字资产品类进入资产池,这种方式一旦建立在协议中,其可想象空间很大,倘若进入 VC 池的凭证很多,其价值也随着增长,其最终的股票就体现在 VC 池的内在价值上,可以想象美股如果包含的高质量股票非常多,美股股指也会随着表现的很出色,但与美股有点不一样的是在其运作上,BlackHole DAO 这一切都是 DAOs 社区行为。
进入 VC 池的凭证可以是非 Stablecoin、NFT、流动性 LP 等有价值凭证,并且当这些凭证在 VC 池达到一定数量资产之后会进行组 LP,并且会提供流动性和 LP 借贷服务给第三方,获取的收益将全部进入 VC 池,以支撑股票 (BHO) 的流通价值。其次,VC 池的一个潜在价值就是做信用借贷池,与 DAOs 社区做了绑定,利用 DAOs 社区协议来积攒信用值,最终根据信用值进行无抵押贷款。
除此之外,VC 池对整个协议也有调控作用
· 当股票 (BHO) 处于紧缩状态下,通过 VC 池铸造股票 (BHO) 的比例会逐渐增大
· 当股票 (BHO) 处于通胀情况下,通过 VC 池铸造股票 (BHO) 的比例会逐渐减小
· 通过 VC 池铸造股票 (BHO) 进入 VC 池的资产 50% 会进行销毁流动性池中的 BHO。另外 50% 将保留在池子中用于 DAOs 社区信用借贷
3 利益均沾,3.0 确保分配更加合理
BlackHoleDAO 交易税用是为了防止鲸鱼对盘面造成恶意行为和为整个项目的运作提供资金支持,用于社区和不同 DAO 社区。为最终的 Black Hole Reactor 和销毁提供保障。
交易税:买入 15%(BHO),卖出 25%(BUSD),总税将进入交易税池,由多签地址共同来保证资金安全,每周结算。交易税会随着流动性增长,比例会逐渐减少,直至取消,当然这一切都是为了项目本身能有更好的发展。
交易税池的分配方式:
· 总交易税 60% 中的 BUSD 直接进入 Black Hole Reactor,BHO 直接进行销毁
· (BUSD+BHO)10% 给与捐赠池投资机构回报
· (BUSD+BHO)10% 进入营销钱包
· (BUSD+BHO)10% 开发团队
· (BUSD+BHO)5%DAOs 社区排名奖励
· (BUSD+BHO)3%DAOs 社区投资者
· (BUSD+BHO)2% 个人投资者
4.0 逆向投资, 适应不同人群
针对所有用户推出了稳定型投资方式,分为三种不同的投资方式:
投资机构
投资额度 10000BUSD 起,可以获得交易税中 (BUSD+BHO)10% 的翻倍回报,回报期结束后,收益将停止。投资成功之后将会在展示区进行展示,投资机构可以编辑自己的名称和 logo,此数据将全部保存到链上。
DAOs 社区
投资额度 1000BUSD 起,可以获得交易税中 (BUSD+BHO)3% 的翻倍回报,回报期结束后,收益将停止。投资成功之后将会默认成为一名相当于 DAOs 社区倡导者,会授权相应的邀请连接。通过链接分享可以去组建属于自己的 DAO 社区,DAOs 社区会获得 DAO 池的 10%+交易税的 5% 分成,同时该社区部落的名称和 logo 将会出现在官方的展示区。DAOs 社区可以根据自己最终的信用值获得 VC 池的无抵押信用贷款。DAOs 社区投资人可以编辑自己的名称和 logo,此数据将全部保存到链上
个人
投资额度 100BUSD 起,可以获得交易税中 (BUSD+BHO)2% 的翻倍回报,回报期结束后,收益将停止。投资成功之后将会在展示区进行展示。
5.0 黑洞反应堆 (Black Hole Reactor)
黑洞反应堆本质有点像项目在不同时期设定的奖池,到了某个条件,该奖池会被打开,资金主要来源于税收的 60%,默认情况下,当市场流通到达 100 亿 BHO 且反应堆金额到达 1 亿 BUSD 时,反应堆会被打开,当然可能会有很多阶段的不同金额反应堆,或许第二期反应堆金额会在 10 亿 BUSD。
基于特殊原因,其反应堆也设定几个额外打开的规则
· 当市场流通触发黑洞协议机制最终通缩至 100 亿 BHO 且反应堆金额到达 1 亿 BUSD 时,反应堆会被打开
· 无论结果如何,3 年期满后,将打开黑洞反应堆
· 铸造过程中,黑洞反应堆满 1 亿 BUSD 将被打开,并停止铸造
6.0 总结
整体来看,BlackHoleDAO 协议设计其实是通过不同业务模块之间的经济体系来链接,协议中像 VC 池,黑洞反应堆等设计理念很出众,其中最重要的是基于协议而创新出的极致通缩模型,以及 Stake 和 Bond 通缩模型,这在整个 DeFi 领域非常具有前沿代表通用性,解决了行业一直以来出现的高通胀、流动性不足、用户流失问题。最终能不能在这个领域发展起来,还需要市场的验证。
注:以上纯属个人观点,不提供投资建议。
Compound学习 测试存入和取回资产
Compound 是 DeFi 的明星项目之一,定位于去中心化的借贷协议。可以称之为“去中心化的算法银行”。Compound 协议是为了开放金融系统而为开发者构建的开源协议,基于 Compound 协议可以开发一系列新的金融应用程序。
在上一章,我们进行了Compound的简单部署,现在我们来进行简单测试(测试用户提供和取回资产/ERC20代币)。
我们这次的测试工具仍然先使用MyEtherWallet,在主界面选择 MEW CX ,选择接受Terms,然后点击访问我的钱包,就地连接到METAMASk。此时点击左边Contract栏目下的interact with Contract
,在右边的界面里输入合约地址和ABI,点击continue,就可以调用该合约啦。
注:请把网络切换至Kovan网络,切换如果显示不正确刷新一次。
一、添加市场
用户向某个市场(CToken)提供资产的前提条件是平台必须有这个市场,在第二章我们部署了cUSDT,我们就以这个市场为例进行测试。注意:我们的钱包账号必须为Unitroller合约的管理员,也就是上次部署合约的账号。
-
我们打开
Comptroller.sol
,找到_supportMarket
函数,从注释中可以看到,该函数用来添加一个CToken(市场)。这里要专门提及的是Compound没有采用常用的不符合预期就重置交易的方式让交易失败,而是返回一个错误代码。因此必须检查这个返回值,由于我们是外部账号调用,无法获取返回值,所以我们等会可采用事件MarketListed
是否触发的方式来判断市场是否添加进去。 -
注意:在前面两章我们提过,Comptroller采用的是代理委托方式,代理合约为Unitroller,实现合约(相当于一个逻辑库)为Comptroller。因此在MyEtherWallet的合约交互设置界面时,合约地址输入Unitroller的地址,也就是
0xeF960E96a4D15f4a7c09cE4dB70019F9E27D7Ad8
,而ABI却要输入Comptroller合约的ABI。 -
输入地址和ABI后,我们点击continue,进行函数选择界面,我们在右边
Select an item
按钮那选择_supportMarket
,在下面的CToken参数栏输入我们上次部署的cUSDT地址:0x83f7A6B8D106f0440ab58744A98E65b43aD843F3
。点击Write
按钮,会自动弹出钱包进行交易,点击钱包上的确定即可。 -
等待几秒后,点击右上角红点提示的铃铛按钮,会弹出本次交易的概览,我们点击
Transaction (Success)
,再点击下面的交易哈希,会自动链接到Kovan浏览器查看交易详情。https://kovan.etherscan.io/tx/0xccda1041c4fbf975b83808f392cc50af893eb4981d70e6fb6441d4e5ceea43b8 -
我们点击详情中的日志界面,可以看到的确触发了一个日志,数据就是我们刚才输入的cUSDT地址,对照一下就是要触发的事件了。
-
我们接着在函数栏目里选择
getAllMarkets
函数,它会返回一个地址数组,可以看到,只有一个元素,就是我们刚才添加的cUSDT地址,证明我们添加成功了。 -
我们再添加一个cDAI,地址为:“0x991b142B309F201435c40E2b183A8d1f3fa41f70”,相同的操作,添加成功后我们再次查看
getAllMarkets
函数,这下尴尬😓😓😓😓了,仍然只有一个元素了。那刚才添加cDAI到底成功了没有?查看交易详情是没有问题的,https://kovan.etherscan.io/tx/0xea657d4b3bfbcf7f3cfabad62618a844f210eb6bd82bd0f96a4b23f4ad26ea9f 点击其中的交易日志就可以看到。 -
那好吧,既然只有一个元素,我们继续添加cDAI,交易结束后然后再打开交易详情查看日志,(https://kovan.etherscan.io/tx/0x86f1cc3c4d570cc2090097d3074311a2493e59e1458f9539be26569c5800ce6d),哎呀,出现的日志是Failure,😈😈😈😈去
ErrorReporter.sol
中查一下错误信息代码10对应的信息,刚好是MARKET_ALREADY_LISTED
,这与_supportMarket
函数中的代码是相符的,说明我们先前一次交易是添加成功了,这次重复添加所以给出提示信息(不报错重置交易而是给出提示信息,这个其实也是双刃剑)。 -
那看来是MyEtherWallet的问题了,没办法,总得验证现在有两个市场了。使用Remix还得把所有源码复制过去,编译完成后才能给定地址调用合约,而Unitroller虽然通过了浏览器开源验证,但是调用的是是委托合约Comptroller中的函数,所以直接在浏览器调用也是不可用的。因此我们需要写一个简单的脚本来做这件事。
-
在项目
test
目录下(注意不是Compound自带的tests
目录)新建一个getAllMarket.js
文件,内容如下:const {ethers} = require("ethers") const abi = [ "function getAllMarkets() view returns(address[])" ] const address = "0xeF960E96a4D15f4a7c09cE4dB70019F9E27D7Ad8" const provider = new ethers.providers.InfuraProvider("kovan","your_infura_key") const unitroller = new ethers.Contract(address,abi,provider) unitroller.getAllMarkets().then(resp => console.log(resp))
然后打开vscode的终端,先运行
yarn add ethers
安装所需要的库,然后自己去https://infura.io/网站申请一个project_key,替换上面的your_infura_key
。最后在项目根目录运行该文件,终于得到我们所期望的结果了✨ ✨ ✨ ✨ ✨ :➜ compound-protocol git:(master) ✗ node test/getAllMarkets.js [ '0x83f7A6B8D106f0440ab58744A98E65b43aD843F3', '0x991b142B309F201435c40E2b183A8d1f3fa41f70' ] ➜ compound-protocol git:(master) ✗
这个笔者在第一章的时候都提过,myEtherWallet虽然好用,但有时候也会有问题,remix太麻烦,因为要源码编译(或者我未掌握用法,因为用的较少),只有自己写脚本才是最后解决问题终极办法(使用python或者node.js都可以)。
二、存入资产
-
授权cUSDT合约。因为我们存入的其实是
underlying
,在cUSDT合约中,我们存入的是USDT,因为是间接合约交易而不是直接转账,所以需要授权。这个我们之前将USDT合约通过浏览器验证了,这下就简单多了。 -
在kovan浏览器里输入我们以前部署的USDT地址
0xee095890Fef04aD2b53C4AdE71cD1B74429990C6
,点击合约,再点击编写合约,如下图:
点击连接Web3,选择MetaMask,然后点击mint
函数,先给自己发一点USDT(例如10亿枚吧)。然后等待交易完成,再点击approve
函数,在下面出现的spender
里输入cUSDT的地址:0x83f7A6B8D106f0440ab58744A98E65b43aD843F3
,amount
里输入100000000000000000000000000,然后点击write
。等待交易完成。
ps:打开MetaMask,在资产项目里添加代币,输入USDT和cUSDT地址,把两种代币都加上,就能实时看到你的自定义的代币数量了。
-
存入资产,终于到最后一步存入资产了,因为CToken合约都通过了浏览器验证,所以我们直接在浏览器中操作,不需要出错的MyEtherWallet了。直接在浏览器地址栏里将USDT地址
0xee095890Fef04aD2b53C4AdE71cD1B74429990C6
替换为cUSDT地址:0x83f7A6B8D106f0440ab58744A98E65b43aD843F3
然后回车,我们就跳到了cUSDT的合约接口啦。 -
点击Connect to Web3,连接钱包,找到并点击
mint
函数(对应的源吗为CErc20.sol
中的mint
函数)。数量我们输入10000000000000000000(10后面18个0,代表10个USDT),然后点击write发起交易。 -
耐心等待点击完成,然后点击
view your transaction
,可以在Kovan浏览器上查看本次交易详情:https://kovan.etherscan.io/tx/0x377213d217a3a2cd99181fa077df3f39e85ca231d1b62e2a8e32cd8f283b5f7e 如下图所示:可以看到我们存入了10个USDT,给了我们10个cUSDT作为凭证。
三、取回资产
我们来测试取回资产,接着刚才的操作,我们在cUSDT的浏览器界面点击redeem
函数,对应的源码为CErc20.sol
中的redeem
函数。数量我们仍然输入前面存入的全部数量10000000000000000000,然后点击write。交易成功后仍然点击查看交易按钮,如下图所示:
可以看到,我们把10个cUSDT换回了10个USDT。
到此,我们今天的测试就结束了。因为没有涉及到借款和还款,因此也就不会涉及利息,也不会使用到预言机,我们仅只测试了最简单的存款和取款的操作。下一章计划学习最基本的借款操作。
自己也是边学边写,欢迎读者留言指正错误或者提出改进建议。
以上是关于详解去中心化资产管理协议BlackHoleDAO的主要内容,如果未能解决你的问题,请参考以下文章