NEST 去中心化价格预言机

第一章:NEST Protocol 是什么?

NEST Protocol 是一个去中心化的价格预言机网络,通过去中心化激励方案解决价格上链的问题。NEST 预言机采用市场博弈理论,通过矿工报价的方式将链下市场的价格信息同步产生于链上,并结合 NEST 挖矿机制,对报价矿工进行激励,使其成为一套逻辑闭环的分布式报价系统。

网站:https://nestprotocol.org/

白皮书:https://nestprotocol.org/doc/zhnestwhitepaper.pdf

GitHub:https://github.com/NEST-Protocol

Telegram(社区):https://t.me/nest_chat

Telegram(开发者):https://t.me/nestdevs

第二章:如何在 NEST Protocol 上面开通一个价格预言机?

1. NEST Protocol 支持哪些加密资产的价格预言机?

NEST Protocol 是运行在以太坊网络上的去中心化开发协议,目前只支持 ERC20 类型的 token 资产。

2. 在 NEST Protocol 上面开通一个价格预言机需要付出什么成本?

NEST Protocol 是运行在以太坊网络上的去中心化开发协议,任何人都可以自由的发起对某个 ERC20 Token 资产价格预言机的开通操作,成本是:向 NEST DAO 系统支付 1 万枚 NEST Token。

3. 如何开通一个加密资产的价格预言机?

相关代码:https://github.com/NEST-Protocol/NEST-Oracle-V3.5/blob/main/contracts/NTokenController.sol#L171

方法说明:https://github.com/NEST-Protocol/NEST-Oracle-V3.5/blob/main/docs/func_perm-cn.md#ntokencontroller--%E5%90%88%E7%BA%A6%E5%87%BD%E6%95%B0%E8%B0%83%E7%94%A8%E6%9D%83%E9%99%90

第三章:矿工如何通过预言机报价获取 QP Token(报价凭证)?

1. 报价机制

核心是:报价挖矿(激励)、验证周期、价格链、beta系数。 以ETH/USDT价格预言机为例:

1)任意参与者可以将自己认可的价格传入到报价合约,比如 1 ETH = 1000 USDT,然后将这两种资产按照价格比例,同时打入到报价合约里,报价规模为 30 ETH,并收取 ETH 规模的 0.3% 作为手续费,进行挖矿,获得 NEST 激励。

2)打进资产后,等待 T0 时间( T0 = 25 个区块,约 5 分钟),这个周期内任何人可以用报价者的价格买走 ETH 或者 USDT,如果 T0 内没有人成交,则该报价数据会被系统录用;如果被人完全成交则该价格无效,部分成交则部分无效。T0 时间之后,报价资产即可取回。

3)如果有人愿意与报价者成交,那么他成交的同时,也要按照上述标准报一个新的价格进去,这样就在初始报价 P0 后面形成 P1、P2 … 价格链。

4)成交者的报价规模,是他成交规模的 beta 倍,其中 beta > 1(目前 beta = 2),这意味着价格链一定会随着规模的扩大而最终终止(停机),并且作恶者的成本几何级增长,从而对抗攻击行为。

2. 挖矿算法

假设每个区块的 QP Token 挖矿奖励为 N;在同一报价轨道中,假设本次报价距离上一笔报价的区块间隔是 H。那么,矿工的本次报价可以挖到的 QP Token 数量为 M,

M = N * H

这意味着,如果在一段时间内如果没有报价单出现,那么新出现的第一笔报价会获取之前未挖出的所有区块累计的 QP Token 奖励。通过这种方式,可以有效激励矿工进行持续报价挖矿,维持 NEST 预言机网络的稳定与安全。

如果同时有 X 位矿工进行报价,并且在同一个区块报价成功,那么每位矿工可以挖到的 QP Token 数量为 M,

M = N * H / X

即每位矿工平均分配这次报价的挖矿奖励。

3. 报价挖矿 NEST Token

1)对哪些价格预言机进行报价可以挖到 NEST Token?

需要同时对 ETH/USDT 和 NEST/ETH 两个价格对进行双轨报价,才能挖到 NEST Token。

2)矿工需要准备多少报价资金?

目前报价基础规模为 30 ETH,需要准备的报价资产为:30 ETH + 价值 30 ETH 的 USDT 资产 + 30 ETH + 价值 30 ETH 的 NEST 资产,一共需要价值 120 ETH 的加密资产。

3)矿工需要准备多少 NEST 抵押资金?

目前,每个预言机报价轨道,需要抵押 10 万 NEST Token,双轨报价需要抵押 20 万 NEST Token。所以,矿工需要准备 20 万 NEST Token 抵押资产。

4)每次报价的成本都有哪些?

报价成本:基础 ETH 报价规模 * 报价手续费费率 + 2 笔交易的 gas 费(报价交易+取回资产交易)。

目前是:30ETH * 0.33% + 2 笔交易的 gas 费,也就是 0.099 ETH + 2 笔交易的 gas 费。

5)每次报价可以挖出来多少枚 NEST Token?

目前每个区块奖励 256 枚 NEST Token,假设本次报价距离上一笔报价的区块间隔是 H,那么本次报价可以挖到:256 * H 枚 NEST Token。

6)NEST Token 挖矿奖励的分配机制

目前是:矿工 80%,NestNode群体 15%,NEST DAO 5% 。

7)报价挖矿交互工具

方式1:手动报价挖矿,可以打开:https://nestdapp.io/

方式2:脚本报价挖矿,可以参考开源脚本:https://github.com/NEST-Protocol/NEST-Oracle-Miner

4. 报价挖矿其他 QP Token

1)QP Token 是什么?

QP Token 的全称为 Quote Pool token,中文译为「报价凭证」,即各个预言机报价轨道所对应的挖矿凭证。 比如:ETH/USDT 价格预言机的报价凭证为 NEST Token,YFI/ETH 价格预言机的报价凭证为 nYFI,HBTC/ETH 价格预言机的报价凭证为 nHBTC 等。 无论是 NEST Token 还是 nYFI Token,都是 NEST Protocol 网络上的报价凭证,就像以太坊网络上发行的各种各样的 ERC20 Token 一样。

2)挖其他 QP Token,矿工需要准备多少报价资金?

情况1:当 QP Token 的流通量 < 500 万枚时,矿工可以选择单轨道报价。

在 3.5 版本中,所有预言机轨道的报价基础规模都统一为 30 ETH,对于某个 token/ETH 预言机的报价,需要准备的报价资产为:30 ETH + 价值 30 ETH 的 token 资产,一共需要价值 60 ETH 的加密资产。

情况2:当 QP Token 的流通量 > 500 万枚时,矿工必须进行双轨道报价。

在 3.5 版本中,所有预言机轨道的报价基础规模都统一为 30 ETH,对于某个 token/ETH 预言机的报价,需要准备的报价资产为:30 ETH + 价值 30 ETH 的 token 资产 + 30 ETH + 价值 30 ETH 的 nToken 资产,一共需要价值 120 ETH 的加密资产。

3)矿工需要准备多少 NEST 抵押资金?

情况1:当 QP Token 的流通量 < 500 万枚时,矿工可以选择单轨道报价,需要抵押 10 万 NEST Token 。

情况2:当 QP Token 的流通量 > 500 万枚时,矿工可以必须进行双轨道报价,需要抵押 20 万 NEST Token 。

4)每次报价的成本都有哪些?

报价成本:基础 ETH 报价规模 * 报价手续费费率 + 2 笔交易的 gas 费(报价交易+取回资产交易)。

目前是:30ETH * 0.33% + 2 笔交易的 gas 费,也就是 0.099 ETH + 2 笔交易的 gas 费。

5)每次报价可以挖出来多少枚QP Token?

目前每个区块奖励 4 枚 QP Token,假设本次报价距离上一笔报价的区块间隔是 H,那么本次报价可以挖到:4* H 枚 QP Token。

6)其他 QP Token 挖矿奖励的分配机制

NEST 3.5 版本之前开通的预言机:矿工 95%,预言机轨道中标者 5%;

NEST 3.5 版本之后开通的预言机:矿工 100%。

7)报价挖矿交互工具

方式1:手动报价挖矿,可以打开:https://nestdapp.io/

方式2:脚本报价挖矿,可以参考开源脚本:https://github.com/NEST-Protocol/NEST-Oracle-Miner

第四章:验证者如何对每一单报价进行有效验证?

1. NEST 预言机价格验证机制

报价矿工在往报价合约中转入双边报价资产成功之后,该报价单会在链上生效 25 个区块时间(约 5 分钟);在这一段时间内,任何人(验证者)都可以按照该矿工的报价数据进行成交,同时发起一笔新的报价进行价格修正,并且报价规模为成交规模的 2 倍。

如果有报价矿工报出了一个偏离市场价格的报价单出来,此时验证者可以进行成交套利。为了方便大家理解,这里进行举例说明,以 ETH/USDT 价格预言机为例:

假设,此时 ETH 市场价格为: 1 ETH = 1000 USDT;

该矿工的报价单价格为 900 USDT,报价资金为:30 ETH + 27000 USDT

900 USDT 的报价相对于市场价格是有偏差的,此时验证者可以进行验证成交。

验证者操作

验证者可以往报价合约中转入 27000 USDT,兑换走 30 ETH;然后在市场上出售掉 30 ETH 换回来 30000 USDT,利润为:3000 USDT。

验证者在成交的同时,需要发起一笔新的报价,由于成交规模为 30 ETH,所以新的报价规模为:60 ETH + XXX USDT(按照新的价格进行报价)。

这就意味着,如果矿工的报价与市场真实价格偏离较大,那么就给验证者提供了一个套利机会,任何人都可以成为验证者参与套利;通过这种套利惩罚机制促使报价矿工按照市场公允价格进行报价,进而向 NEST Protocol 网络输送真正有效的价格信息,并在链上生成。

NEST 上的每一单报价都会经过全市场验证者的验证,成功度过验证周期存活下来的报价数据,才会参与 NEST 预言机链上区块价格的生成。所以,NEST 是最符合区块链共识机制的预言机方案,其每一个生效的区块价格数据都是经过全市场共识过的。是先验证,再生效!这也是 NEST 预言机与其他预言机的本质区别。

验证规则

1)基础报价规模为 30 ETH 的情况下,验证者的成交规模至少为 X * 30 ETH,X 是一个整数;

2)验证者每一次参与验证,进行修正报价时,除了报价规模 X2 之外,还需要抵押 NEST 资产 X2;以 ETH/USDT 价格预言机轨道为例,进行解释说明。

假设报价矿工的报价是:30 ETH + 15000 USDT,抵押 10 万枚 NEST;

验证者 V1 在进行验证时需要进行新报价,则其报价是:60 ETH + XXX USDT,抵押 20 万枚 NEST;

如果验证者 V1 的新报价仍旧有问题,验证者 V2 对 V1 的报价进行验证,在验证过程中有 2 种成交情况。

情况1:验证者 V2 选择全部成交 V1 的报价资产,新报价为 120 ETH + XXX USDT,需要抵押 40 万枚 NEST;

情况2:如果验证者 V2 选择成交 V1 报价资金中的 30 ETH,则其新报价为 60 ETH + XXX USDT,并且需要抵押 20 万枚 NEST;即新报价 ETH 规模为具体吃单规模的 2 倍;而新报价需要抵押的 NEST 数量为:(新报价规模/30 ETH)* 10 万 NEST。

依次进行下去...

如果一个价格链持续产生 4 次验证,后续其报价规模不再 X2,但是抵押的 NEST 资产会持续 X2,并且无上限。也就是说,480 ETH 是最大的报价规模。

3)验证者发起的新报价没有报价手续费,同时也不参与 QP Token 的挖矿;

4)任何人都可以成为验证者,无需审查。

2. 验证者需要准备的基础资金

1)一部分 NEST Token 作为验证报价时的抵押资产;

2)一部分 ETH 资金用于验证、支付gas费等;

3)如果是参与 A token/ETH 价格预言机的验证,需要准备一部分 A token 资产用于验证操作。

3. 验证者吃单套利的交互工具

方式1:手动验证,可以打开:https://nestdapp.io/

方式2:脚本验证,可以参考开源脚本:https://github.com/NEST-Protocol/NEST-Oracle-Verifier

第五章:QP Token 的经济模型和释放机制

1. NEST Token

2. 其他 QP Token

第六章:持有 QP Token 有什么用途?

1. NEST Token

1)NEST Token 是什么?

NEST Token 是去中心化协议 NEST Protocol 基于以太坊网络发行的 ERC20 Token。

NEST Token 总量上限:100 亿枚,目前已挖出来 20% 左右,根据算法,需要 70 年才能全部释放。

释放机制:全部通过 ETH/USDT 和 NEST/ETH 这两个价格预言机的报价挖矿进行释放。

NEST Token 合约地址:0x04abeda201850ac0124161f037efd70c74ddc74c

2)NEST Token 有什么用?

收益权:ETH/USDT 和 NEST/ETH 这两个价格预言机的系统收益会用来分配给 NEST Token 持有人,分配形式有直接分红和回购两种方式。

NEST 系统收益来源和分配机制介绍

A. 报价手续费的 80% 用于分红,20% 进入 NEST DAO 系统用于回购;(分红机制在 3.5 版本中仍旧存在,原计划不变,社区热论的取消分红将在 3.6 版本中实施。)

B. 其他预言机轨道贡献的 20% 报价手续费,直接进入 NEST DAO 系统用于回购;

C. ETH/USDT 和 NEST/ETH 价格预言机产生的调用收入全部进入 NEST DAO 系统用于回购。

投票权:NEST Token 持有人可以参与 NEST Protocol 网络的治理, 1 NEST Token = 1 票。

使用权:发起开通某个 token/ETH 价格预言机时需要向系统支付一定数量的 NEST Token(目前是 1 万枚)。

2. 其他 QP Token

1)其他 QP Token 是什么?

其他 QP Token 是指除了 NEST Token 外其他的报价凭证。比如:HBTC/ETH 价格预言机的报价凭证为 nHBTC,YFI/ETH 价格预言机的报价凭证为 nYFI。

释放机制:全部通过 token/ETH 价格预言机的报价挖矿进行释放。

QP Token 的总量:总量无上限,根据挖矿算法,最近 5 年的释放量最多为 3200 万枚,20 年的释放量最多为 5200 万枚,逐年衰减的经济模型。

QP Token 合约地址:每个 QP Token 都有自己的 token 合约地址,可以通过区块浏览器进行查询。

2)QP Token 有什么用?

收益权:每个 QP Token 所对应的价格预言机的系统收益会用来分配给 QP Token 持有人,分配形式有直接分红和回购两种方式。

各 QP Token 对应的系统收益来源和分配机制介绍:

A. 各自预言机轨道的报价手续费的 60% 用于分红,20% 进入各自的 DAO 系统用于回购,20% 进入 NEST DAO 系统;(分红机制在 3.5 版本中仍旧存在,原计划不变,社区热论的取消分红将在 3.6 版本中实施。)

B. 每个 QP Token 所对应的价格预言机产生的调用收入全部进入各自的 DAO 系统用于回购。

第七章:QP Token Staking 机制

1. QP Token Staking 机制

由原来的每周五进行一次收益分配调整为当前的 Staking 模型。所有 QP Token(包括 NEST Token) 可随时存入/取回,收益值按照存入数量和存入时间进行分配,收益自动累计,QP Token 持有人可主动取回收益。

2. QP Token Staking 交互工具:

1)NEST DAPP 移动端

NEST DAPP Android 版下载地址:https://nestdapp.io/download/nest.html

NEST DAPP iOS TestFlight 版下载地址:https://testflight.apple.com/join/xjJCIXwN

2)NEST DAPP web 端

网站:https://nestdapp.io/

第八章:各价格预言机系统收益 DAO

1. 系统收益 DAO 是什么?

系统收益 DAO 是指各 token/ETH 价格预言机系统的收益合约,专门用来进行系统收益分配。

2. 系统收益 DAO 资金构成

1)NEST Token 对应的系统收益 DAO,资金由 NEST Token 和 ETH 资产构成,归 NEST Token 持有人共有。

2)其他 QP Token 所对应的各自的系统收益 DAO,资金由 QP Token 自身和 ETH 资产构成,归该 QP Token 持有人共有。

3. 系统收益 DAO 中的回购机制

有关回购机制的具体描述,GitHub 链接:https://github.com/NEST-Protocol/Nest-Improvement-Proposals/issues/16

第九章:NEST Protocol 治理机制

将在接下来的 NEST Protocol v3.6 版本中上线,去除 NEST 开发者所拥有的私钥,将协议升级权限下放给 NEST Token 持有人,开启去中心化治理。

第十章:开发者如何调用 NEST Protocol 链上数据?

开发者参考文档1:https://github.com/NEST-Protocol/NEST-Oracle-V3.5/blob/main/docs/nestquery_bd_conditions-cn.md

开发者参考文档2:https://github.com/NEST-Protocol/NEST-Oracle-V3.5/blob/main/docs/nestquery_interface-cn.md