Neo Live 2020|全新治理与经济模型,学到了!

Neo Live 2020|全新治理与经济模型,学到了!

本期 Neo Live ,感谢 NGD 高级工程师金桥来到社区,与大家分享 Neo3 Preview4 的全新治理与经济模型。

关于如何参与治理,GAS 的流通量,以及 Neo3 技术路线图等问题,金桥都做了详细的介绍与阐述。

欢迎扫描下方二维码,回顾昨天的 Neo Live。

Neo Live 2020|全新治理与经济模型,学到了!

同时,恭喜以下五位小伙伴获得本次 NFT 空投活动。没获得 NFT 的小伙伴们别难过,密切关注我们的 Neo Live,更多 NFT 活动等你参加!

NFT 兑换规则

目前一个 NFT 可兑换一件 Neo 的周边 T 恤。也可以选择积攒更多 NFT,解锁更多 Neo 周边以及意外惊喜。️

Neo Live 2020|全新治理与经济模型,学到了!

以下是全场活动的文字版内容实录:

Preview4 新增的主要功能点

大家好,我是金桥,本期想跟大家分享下 Neo Preview4 带来的新功能。

Neo Live 2020|全新治理与经济模型,学到了!

相较于 Preview3,此次 Preview4 新增功能:新的治理和经济模型,供链上合约获取外部信息的预言机(Oracle),NEP-17,以及其他功能点和改进。

治理机制

Neo Live 2020|全新治理与经济模型,学到了!

Neo3 在 Neo2 的基础上引入了新的治理机制。

新的治理机制包含三部分:候选人,委员会以及共识节点。其中,委员会负责主网参数调整,维护链上环境;共识节点负责打包交易和出块,保持主网的正常运行。两者均需要从候选人中,通过选票量选出。

目前委员会成员最多 21 位,共识节点 7 个,候选者没有限制,三者逻辑关系如图所示:候选人包含委员会,委员会包含共识节点。

候选人

关于候选人,候选人本身并无职能。但委员会成员以及共识节点从候选人中,根据选票数量排序选出。

通过注册可以成为候选人,也可以通过注销解除候选人资格。只有自己才能对自己执行注册/注销操作。候选人票数为所有投票给它的地址的 NEO 余额之和。通过票数将候选人排序,排在最前面的一定数量的候选人将被选为委员会成员和共识节点。

由于账户 NEO 余额会随交易而不断变化,而且投票和注册的候选人也在不断变化,因此会不断根据以上变化更新候选人及相应投票数量。

举个例子,在高度为 20 时,账户 A 被注册为候选人,并且有三个账户 B,C,D 给 A 投票。B,C,D 的账户上 NEO 余额分别为 10,25 和 50,则高度 20 时,账户 A 的票数为 10+25+50=85。高度 21 时,B 给其他账户投票,而另外有一个账户 E 给 A 投票,E 的NEO 余额为 20,因此高度 21 时,A 的票数为 25+50+20=95。高度 22 时,账户 C 给 B 转账 NEO15,C 的 NEO 余额变为 10,则高度 22 时,A 的票数为 10+50+20=80。

委员会

委员会的选举方法为,将候选人根据票数多少排序,取最前面的一定数量候选人(默认 21 个)作为委员会。委员会名单每 21 个区块进行更新一次。

委员会之间,通过一半以上的投票,完成对 Neo 网络的一些参数进行修改,目前包括以下内容:

-设置区块的最大大小

-设置区块的最大交易量

-设置区块的最大系统费

-设置交易的每字节网络费

-设置每字节存储价格

-设置合约执行费用倍率

-冻结/解冻账户

对一些角色节点的指认,包括:

– Oracle 节点

– StateRoot 的 Validator 节点

– NeoFS 的内环节点

共识节点

共识节点具有发起新块提案和提案投票的权限。

和委员会类似,共识节点的选举方法为,将候选人根据票数多少排序,取最前面的一定数量候选人(默认 7 个)作为共识节点。同样的,共识节点名单每 21 个区块根据最新投票更新。

如果对共识的详细流程感兴趣,请参考 Neo3 白皮书。

经济模型

Neo Live 2020|全新治理与经济模型,学到了!

该模型继承 Neo2,继续使用 NEO 和 GAS 双通证机制,其中 NEO 用于治理,GAS 用于流通。

NEO 总额 1 亿,最小单位为 1,即不可分割。NEO 持有者是 Neo 网络的所有者和管理者。通过在 Neo 网络上构造投票交易来行使管理权,如选举共识节点,共识策略调整,计价模型调整等,以及根据 NEO 的持有量,可提取相应份额的 GAS。

GAS 最小单位为10^-8。GAS 代表着 Neo 网络的使用权,可通过投票、持有 NEO 提取或者购买获取。在使用 Neo 网络时,需要支付一定数量的 GAS 作为费用,如用户转账,注册资产,发布资产,DApp 应用等。

另外,每个区块均会产生一定数量的(初始值为 5)GAS,按照一定的规则进行分配。具体分配规则如下:

全部 GAS 收益的 10% 按比例分配给 NEO 持有者,10% 分配给委员会成员,余下 80% 分配给那些投票给委员会成员的投票者。

此外,议长将获得当前块所包含交易的网络费。

与 Neo2 不同的是,Neo3 的 GAS 并没有发行上限,而且交易的系统费将被燃烧掉。

分配规则

关于分配给 NEO 持有者的份额:

该部分收益占总收益的 10%。和 Neo2 一样,该部分收益不会主动分配,需要 NEO 持有者进行转账,或参与投票后,才会根据 NEO 持有时段分配相应 GAS 激励。

例如,一个账户在高度 30 获得 10NEO,并在高度 40 转出,则该账户获得的该部分激励为 5 * 0.1 * (40 – 30) * 10 / 100000000 = 5 * 10^-7 GAS。

类似地,如果该账户在高度 40 没有转帐,而是进行了投票,则该账户获得的该部分激励同样为 5 * 10^-7 GAS。

关于分配给委员会成员的份额:

该部分收益占总收益的 10%。

Neo3 的委员会成员的数量为 21 个。规定每 21 个区块高度为一个 Epoch,每轮 Epoch 会根据投票重新计算委员会成员。每轮 Epoch 内轮流分配委员会成员的激励份额,因此每个委员会成员将收到数量为 5 * 0.1 = 0.5 GAS 的激励。

例如,账户 A 在始于高度 21 的 Epoch 成为第 14 个委员会成员,则 A 将在高度 34 时获得该部分收益 0.5GAS。

由于委员会运行节点,参与治理需要消耗一定的成本,而对委员会成员的激励,是对委员会成员参与规则维护的报酬。此外,这份激励通过利益捆绑,约束委员会决策的一种手段。

关于投票者的份额:

该部分收益占总收益的 80%。

只有那些投票给委员会成员的投票者才能获得该部分激励。注意这里有两个条件:

– 该账户参与了投票

–该账户投票的对象成为了本轮的委员会成员

该部分激励的分配将在每个 Epoch 的第一个块进行。该部分收益被等分为 28 份,分配给所有投票给本轮委员会成员的投票者,其中,对于每个共识节点,其所有投票者分享两份,即该部分收益的 2/28,对于每个非共识节点,其所有投票者分享一份,即该部分收益的 1/28。对于任一委员会成员的各个投票者的奖励,将会根据投票者们的 NEO 持有量,占该委员会成员的票数比例,进行进一步细分。

例如,某个投票者 A 投给了本轮的某个共识节点,A 持有 10 个 NEO,而该共识节点的票数为 10000000 个 NEO,则 A 在本轮 Epoch 中获得的投票者收益为 5 * 0.8 * 21 / 28 * 2 * 10 / 10000000 = 6 * 10^-6 GAS。

注意,这里计算每个投票的 NEO 收益的时候如果出现 GAS 数量超出精确度的情况,则舍去超出最小精确度的部分。如,某个投票者 A 投给了本轮的某个共识节点,A 持有 10 个 NEO,而该共识节点的票数为 9000000 个 NEO,由于计算每个投票的 NEO 的收益为 5 * 0.8 * 21 / 28 * 2 / 9000000 除不尽,舍去超出最小精确度的部分后为 6.6 * 10^-7 GAS,因此 A 在本轮 Epoch 中获得的投票者收益为 6.6 * 10^-7 * 10= 6.6 * 10^-6 GAS。

类似的,该部分收益不会主动分配,需要 NEO 持有者进行转账,或参与投票后,才会分配相应 GAS 激励。

和 Neo2 的经济模型相比,新的经济模型通过增加对于投票者的激励,以鼓励 NEO 持有者更积极地参与治理。

预言机 Oracle

Oracle 是 Neo3 推出的,供链上合约获取外部信息的一种服务。根据合约需求,Oracle 通过去中心化的方式获取相应信息供调用者合约使用。

Neo Live 2020|全新治理与经济模型,学到了!

为什么需要 Oracle 呢?

Oracle 是对区块链的局限性的补充。通过去中心化解决信任问题,区块链可以在不通过信任和依赖第三方机构的情况下,独立进行价值转移。但另一方面,这一特点也反过来制约了区块链和现实世界的交互。而在一些链上合约的使用场景中,确实存在与现实世界的数据交互需求,比如实时价格,市场预测,等等。因此,我们在 Neo3 中引入了 Oracle 系统来解决这一问题,即允许区块链与现实世界进行交互。

为了支持 Oracle 相关功能,我们在 Neo3 中加入了一个新的原生合约,OracleContract。该合约包含了 Oracle 的基本逻辑,包括 Oracle 的请求,回调,验证,等等。此外,我们还开发了 Oracle 插件,该插件的主要功能为实现 Oracle 节点侦听,处理请求,以及发送响应交易,等等。

Oracle 节点

Oracle 节点的主要功能为侦听,处理 Oracle 请求,以及发送响应交易。可以通过委员会成员投票指定新的 Oracle 成员名单。Oracle 节点之间通过 RPC 请求相互交换请求响应的签名,完成共识。

Oracle 流程

1. 用户发送一个调用 Oracle 合约的交易注册 Oracle 请求。该请求中包含需要访问的网址以及回调函数等信息。

2. Oracle 节点持续监听链上数据。当发现一个新的 Oracle 请求时,Oracle 节点会访问请求的网址并获得数据。

3. 获得数据后,Oracle 节点会将数据进行签名,并通过 RPC 请求与其他 Oracle 节点进行通信。

4. 当超过三分之二的 Oracle 节点就数据达成一致后,会将数据打包至一个交易,根据 Oracle 请求加入回调脚本,并广播该交易。

5. 共识节点获得该交易,校验通过后上链,执行交易脚本完成回调逻辑,向对应合约发送数据信息。

此外,由于 Oracle 节点需要通过发送响应交易上链,这部分的成本需要请求发起者支付。

Neo Live 2020|全新治理与经济模型,学到了!

调用 Oracle 服务示例

我们在一个名为 OracleRequestExample 的合约里定义了两个函数 DoRequest 和 CallBack。

DoRequest 函数里包含了执行 Oracle 请求的逻辑,以及调用请求所需要的请求网址、过滤器、回调函数名、用户数据以及请求网络费。其中:

– 请求网址即为所需信息来源

– 过滤器用来筛选需要的数据

– 回调函数名为获取请求信息的函数名称,例子里即为“CallBack”函数

– 用户数据为用户自定义数据,方便用户标识请求

– 请求网络费为用户为请求支付的费用,若费用不足请求将会失败。请求网络费最低不能低于 0.1GAS

而 CallBack 即为回调函数,输入参数包含请求地址、用户数据、响应代码以及响应数据等。用户可以根据需求自定义响应数据的处理逻辑。

NEP-17 通证标准

NEP 代表 Neo 增强提案。NEP 是一种设计文档,用于向 Neo 社区提供信息,或者描述 Neo / 流程 / 环境的新特性,并提供该特性的简明的技术规范和基本原理。

而 NEP-17 标准是一个通证标准,它表示在 Neo 区块链上发行的通证合约所需要遵循的规范。NEP-17 将取代 NEP-5,成为 Neo3 的 Token 合约的新标准。

NEP-17 标准包含了一系列方法和事件。其中:

Neo Live 2020|全新治理与经济模型,学到了!

NEP-17 继承自 NEP-5。和 NEP-5 相比,NEP-17 具有以下改动:

– 增加了 onPayment 方法的调用:增加了 onPayment 方法作为当接收到其他合约的转账时被动触发的函数。该设定允许合约拒绝接受资产,减少用户因误操作将资产打到一些不可提取的合约上,增强操作安全性。

– 移除了 payable 检查,相应逻辑将包含于 onPayment 方法。

–移除了 name 方法,因为根据最新标准,Neo 的每一个合约都有名字,所以 token 标准本身不需要再加名字了。

– stransfer 事件变更为 Transfer 事件 (首字母大写)。

Neo Live 2020|全新治理与经济模型,学到了!

Preview4 其他功能点和改进

此外,Preview4 还带来了其他的功能点和改进,总计 124 个改进和修复,包括性能优化,功能改进和 Bug 修复等。

性能优化方面,包括:

– 增加了并行交易验签机制,大幅提升了系统性能

– Json 的序列化/反序列化中使用 Base64 编码代替十六进制编码以节省空间

– 优化 GAS 合约的 OnPersist 方法

– 优化 CallFromNative-Contract 方法的调用,等等

功能改进方面,包括:

– 更新合约的同时保持原合约哈希

– 提供 RPC 调用错误信息支持

Neo3 路线图

自从 2018 年,Neo3 的开发开始以来,我们已经分别在 2019 年 9 月,2020 年 4 月,8 月以及 12 月分别推出了 Preview1,Preview2,Preview3,Preview4 等四个测试版本。

此外,我们预备在 2021 年 1 月推出 Preview5 版本,该版本将作为最终测试版前的最后一个版本,涵盖了 Neo3 的绝大部分设计功能,逻辑优化和代码改进。

Q & A 环节

1Preview4 发布后就等主网上线了吗?

金桥:由于还有一部分功能没有包含在 Preview4 里,如 .Net 5, Oracle 插件,State Service 等,我们计划在今年一月份左右推出 Preview5 作为最终的 Preview 版本,并于二月末左右在测试网左右部署上线。

详细信息请参照:https://github.com/neo-project/neo/issues/2171

2与 Neo2 不同的是,Neo3 的 GAS 并没有发行上限,这个怎么理解?

金桥:和 Neo2 相比,Neo3 的 GAS 没有一定的发行上限,但这并不意味着 Neo3 的 GAS 会是无限量的。一方面,在 Neo3 中 GAS 发行的速度是可以通过委员会控制的。另一方面,和 Neo2 不同的是,Neo3 的交易系统费会烧掉,一定程度上平衡了 GAS 的发行。

3目前 Neo3 还有哪些待开发的项目呢?

金桥:目前正在开发的项目包括 NeoFS,State root,Oracle 插件以及其他一些功能性任务。其中,NeoFS 的主要逻辑已经在 Neo 的 Go 语言版本完成,我们正在将其逻辑迁移到 C# 版本。State root 正在按计划进度开发。Oracle 插件已经基本完成,目前正在代码审阅阶段。

4对于一个刚了解 Neo 的开发者来说,Neo3 会有哪些开发工具可以帮助开发者快速开发 Dapp?

金桥:建议在开发前看下 Neo 技术文档:https://docs.neo.org/v3/docs/zh-cn/index.html。

在这里包含了开发 Neo3 Dapp 所需要的各种信息,如搭建私链的快速指南,合约开发指南,智能合约 API,NEP-17 标准,等等。

如果有不能解决的问题,或者有任何疑问,也可以在我们的 discord 频道:Neo-Smart Economy(https://discord.io/neo)上参与讨论。

作者:Neo,来源:Neo智能经济

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

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

留言与评论(共有 0 条评论)
   
验证码:
微信号已复制,请打开微信添加咨询详情!