预言机 NEST 挖矿调研分析

Hotbit · 2020年05月22日 · 最后由 NestFans 回复于 2020年05月22日 · 108 次阅读
本帖已被设为精华帖!

近期,NEST预言机及相关的挖矿概念受到了各方社区的广泛关注,本人作为Hotbit项目研究员也对其中的报价挖矿概念颇感兴趣,在进行一番研究后,迫不及待写下本文,希望与社区的各位朋友共同学习交流。

在看了NEST白皮书和一些辅助材料后,对于NEST大致可以总结出以下几个和挖矿相关的重要逻辑:

  1. NEST的总量为100亿,永不增发,会通过报价挖矿的方式释放,每一次释放都会按照矿工80%,开发者5%以及守护者节点15%的比例进行分配。
  2. 随着区块的产生,每个区块的奖励会按照阶梯10%的大小递减。起始区块高度为6236588,一开始的区块奖励是400 NEST,每产生2400000个区块,区块奖励下降10%。第一个奖励区间区块高度范围是6236588到8636588,当前区块高度是10108643,此时单个区块的总奖励已经下降到了360 NEST
  3. 挖矿方式为报价挖矿,报价者(或者叫矿工)需要通过将资产转移到报价合约中进行报价,报价最小单位为10ETH。当前合约只支持一个报价对,即USDT/ETH。如果矿工想要通过该报价对进行报价,而当前ETH市场公允价格为150USDT/ETH,则矿工最少需要往合约中转入1500个USDT和10.1个ETH(两种资产都必须转,且必须支付1%的ETH作为报价的手续费,关于手续费和挖矿收益,下面会继续介绍)
  4. 有矿工报价挂单,就会有验证者吃单。如果矿工报价等于或者极其接近市场公允价格 ,则验证者不会吃单(因为没有套利机会,与其在这个合约里吃单,还不如直接去二级市场交易)。相反,如果矿工报价偏离了市场公允价格(或者说让验证者看到了可观的套利机会),则会发生吃单,吃单的验证者必须支付0.2%的ETH作为手续费,且在吃单后要强制报价,报价的单量是吃单单量的两倍,同时,因为吃单而导致的报价不参与报价挖矿。
  5. 区块的最终价格是由矿工一次次的报价根据一定的算法决定的。根据NEST的设计逻辑,有资格组成区块价格的报价必须是没有或者只有部分被吃单的报价组成的,因为如果报价符合市场公允价格,则不会诱发验证者套利吃单,所以逻辑上,正确有效的报价是不应该被吃单的,至少不会被吃完。
  6. 区块的最终价可以给DeFi产品设计提供很好的参考,如果DeFi调用了该价格,则需要支付一定的ETH,这部分的ETH有80%会进入分红池,20%会发放给矿工作为额外奖励。
  7. 矿工报价只要坚持过了验证期,即25个块而没有或者没有被全部吃掉,矿工就可以取回报价所用的资产或者剩余资产。这里需要分情况说,假如说一个矿工向报价合约中转入10.1个ETH(手续费为1%,所以0.1个ETH为手续费)和1500USDT(报价为150USDT/ETH),验证期过后,该报价没有被吃单,则矿工除了可以收回10个ETH和1500USDT,还会获得挖矿收益和其他附加收益(6中提到的那个20%的额外奖励);如果矿工被吃单了,假设全被吃了,则到期后矿工只收回3000个USDT(验证者认为ETH价格很便宜,所以直接转入。1500USDT,同时拿走报价者的10个ETH)或者20个ETH(验证者认为ETH价格较高,所以转入10个ETH,同时拿走报价者的1500USDT)。假设单子只被吃了一部分(例如矿工抵押20个ETH和3000USDT),验证期后矿工取回剩余资产(例如10个ETH和4500USDT)并获得挖矿收益和额外奖励。
  8. 矿工(报价者)挖矿收益计算遵循下面的公式: N=(e/E)(M/C) M=K区块奖励 其中,C表示该区块中所包含的报价交易对类型,当前为1(当前只有一个报价对,即USDT/ETH);e和E分别代表当前报价所支付的手续费以及当前区块上同一交易对报价的所有手续费总和;M为打包报价交易的区块中包含的 NEST 挖矿奖励数量;K为该打包报价交易区块距离上一个含有报价交易的区块的高度差;最后,N表示单笔报价的 NEST 挖矿数量。

    其实从上面的信息我们不难看出,NEST报价挖矿的本质就是做市,矿工就是做市者,如果做市价格符合市场公允价值,则做市单不会被套利者(这里称为验证者)吃单,进而做市者获得做市(挖矿)收益,这就好像做市商获得了做市费用。否则验证者完成套利成交,强制性的以更多ETH报出新的价格,矿工只能收回剩余资产并获得挖矿收益。

    那么对于矿工而言,当前挖矿究竟值不值得呢?我们不妨根据现有的信息大胆的做一下猜想。首先,根据8中的公式,C代表报价对的个数,当前只有一个,所以C=1,M其实是累计区块奖励,单个区块奖励我们知道当前是360,我们不妨先认为之前所有区块的奖励都被矿工领取了,即不存在累计奖励,此时K=1,相应的M=360*80%=288。所以单次报价挖矿的收益公式就被简化为了N=(e/E)*(360*80%/1)=(e/E)*288。至于e和E,我们再将挖矿情况理想化,让e/E=1,即报价区块只有一个矿工报价,这个矿工独占所有的288个NEST的挖矿收益。现在我们再来看成本,成本由两部分组成,一是1%的报价手续费,二是将报价资产从合约中赎回的时候要支付的手续费。之前本人进行报价挖矿的时候,从合约中赎回10ETH和对应的USDT资产的时候需要花费大约0.06ETH的手续费,结合1%的报价手续费,如果我们以10ETH的报价单位报价,且报价最终得到NEST收益的总成本约为10*1%+0.06=0.16ETH,平摊到每个NEST上就是0.16/288=0.000555555ETH。已知当前ETH在火币交易所上的实时价格是207.19USDT,那么每个NEST平均挖矿成本则是0.000555555*207.19=0.1151USDT。放眼二级市场(例如MXC和Hotbit),NEST当前的USDT的价格约为0.016。

    二级市场上NEST的USDT价格和每个区块奖励的NEST成本相差了约7.2倍,这就可以让我们很自然的得出一个结论。如果一个矿工(做市者)每个区块都进行报价,每次都获得NEST奖励,那么他挖矿时间越长,亏损越多!但现实是依然有矿工在报价,这就说明挖矿收益是可以抵消掉成本的,我们上面的不存在累计收益的假设(K=1)是不合理的。所以我们可以自然而然的推出,如果存在累计收益,且其他假设条件不变的情况下,如果当前ETH的价格水平不变,K至少要等于8才能覆盖挖矿者的成本。根据官方文档说25个块大约5分钟来计算,链上收益至少要累计1.6分钟才能让一个矿工获得足够的NEST抵消成本。所以在理想情况下(没有其他矿工报价,且报价不会被吃单),NEST挖矿报价的频率应该在1.6分钟左右。这又牵扯出一些更微妙的问题,例如,具体何时报价才能获得至少足以覆盖成本的收益?怎么确保其他矿工不会过多参与进而拉低收益?

    上面说的还都是理想状况,真实情况是25个块需要更多的时间才能产出(笔者之前几次挖矿,25个块实际会花7-8分钟),报价的矿工不太可能只有一个,从合约提取资产的手续费也可能更贵,所以真正的挖矿收益个人感觉现阶段不会太好。另外,根据NEST预言机的收益分配逻辑,参与报价的矿工除了有挖矿收益之外,还能得到 20% 的 NEST 预言机被调用的收益,当前这一收益似乎体现不太明显,如果将来NEST预言机被更广泛的认同,价格调用的次数上升,理论上对矿工的收益是会产生正面影响的。

    不过我们纵观全局,NEST预言机最终想要打造的是一个有丰富DAPP的金融生态系统,就目前而言,矿工和验证者之间的报价和吃单的逻辑会很好的约束最终的实际区块价格,如果有人想要搞破坏,则需要付出巨大代价,换言之,预言机的功能维持的很好。整个NEST系统在将来的发展总体而言还是值得期待的。

    以上便是本人根据目前收集到的信息发表的观点,时间仓促,个人水平所限,相关结论难免有所疏漏,欢迎社区的各位朋友考究和指正!

    也欢迎各位来Hotbit体验NEST交易!

共收到 3 条回复
molingye 将本帖设为了精华贴 05月22日 10:37
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册