NEO学院 | 深度了解NEO3 Preview1的改进与优化

NEO区块大康2019-10-09 22:23:53  阅读 -评论 0  阅读原文

NEO3的Preview1版本在系统架构、稳定性和性能等多个方面进行了优化与改进,同时对定价模型进行了重新设计,从而大大降低了开发成本。所有这些变更旨在全面支持基于NEO3的大规模商业应用的开发和落地。

下面总结了NEO3 Preview1中的一些特性。后续版本中将包含更多新功能,敬请期待。

NEO3 Preview1 部分特性简介

「架构优化」

账户模型

智能合约

- 原生合约

- 合约Manifest与ScriptHeader

- 新增的智能合约APIs

交易

- 使用单一的交易类型实现与区块链的交互

- 有限作用域的见证人签名

- 存储合约执行结果

区块

NeoVM

「稳定性增强」

「性能增强」

「定价模型」

系统费

网络费

操作码费用

与NEO2.x的比较

架构优化

  • 账户模型

NEO2.x中可以通过两种方式在NEO上创建资产。第一种是使用RegisterTransaction交易创建全局资产,第二种则是通过编写智能合约来创建合约资产。事实上,全局资产的使用是很少的,而合约资产因其灵活性与功能性成为了大多数应用程序的选择。由于全局资产没有与智能合约进行整合,要想在智能合约中对全局资产进行管理是非常困难的。

因此,在NEO3中,所有基于UTXO的全局资产都被移除并替换,取而代之的是基于合约的账户模型。NEO和GAS实现为原生合约同时符合NEP-5、NEP-10规范,从而统一了所有资产的操作方式。

  • 智能合约

- 原生合约

原生合约是使用原生代码实现的,而不是在NeoVM中运行的opcode脚本,并以互操作服务的形式供NeoVM使用。原生合约公开其服务名称,供其他合约调用。当前包含NeoTokenGasToken与PolicyContract三种原生合约。

1. NeoToken,简称NEO,Neo的管理通证,用于执行对Neo网络的管理权,符合NEP-5标准。

2. GasToken,简称GAS,Neo的燃料通证,用于支付手续费,符合NEP-5标准。

3. PolicyContract,配置共识策略的合约,保存了共识过程中相关参数,包含区块最大交易数、低优先级交易数和大小限制、每字节的网络费等。

- 合约Manifest 和ScriptHeader

当前每个合约都需要提供一个Manifest文件来描述其相关属性,包括Groups, Features, ABI, Permissions, Trusts, SafeMethods等,如下所示:

1. Groups:声明合约所属的组。一个Group由一个公钥和合约哈希的签名组成。

2. Features:声明合约可用的特性。其中属性值storage表明合约可以访问存储区,payable表明合约可以接受资产的转入。

3. ABI:声明智能合约的接口信息,可以参考NEP-3。接口的基础属性包括:

- Hash:16进制编码的合约脚本哈希;

- EntryPoint:提供了合约入口方法的详细信息,包括方法名、方法参数以及方法返回值;

- Methods:由合约方法的详细信息构成的数组;

- Events:由合约事件构成的数组。

基于ABI信息,可实现合约间的相互调用。

4. Permissions:声明合约可调用的其他合约和方法。执行合约调用时,会检查Permission中配置的权限,若没有相应权限,则调用操作会执行失败。

5. Trusts:声明合约可以被哪些合约或者哪些合约组安全地调用。

6. SafeMethods:声明哪些方法是SafeMethod,SafeMethod通常是不会修改存储区,只读取区块链数据的方法,如果一个方法被标记为安全的,那么其他合约调用该方法时不会给用户接口返回警告信息。

- 新增的智能合约APIs

新增System.Runtime.Notify,允许在合约之间传递消息。例如,考虑一个运行去中心化交易所的合约。当用户需要充值时,首先他会向该合约转入一定的NEP-5代币,然后调用其deposit方法进行充值。在deposit方法中,合约可以通过调用System.Runtime.Notify来确认用户是否真正地转账了代币。

此外,还添加了 Neo.Json.Serialize和Neo.Json.Deserialize接口,使合约能够处理JSON格式的数据,同时简化合约的开发。

  • 交易

- 使用单一的交易类型实现与区块链的交互

在NEO 2.x中,有9种不同的交易类型:

- MinerTransaction

- IssueTransaction

- ClaimTransaction

- EnrollmentTransaction

- RegisterTransaction

- ContractTransaction

- StateTransaction

- PublishTransaction

- InvocationTransaction

这些交易类型要么与特定的应用程序场景相关,要么提供更多的功能。但NEO3中只存在一种交易类型,格式如下:

- 有限作用域的见证人签名

当前交易签名是全局有效的,为了让用户能更细粒度地控制签名的作用范围,NEO3中对交易结构中的cosigners字段进行了变更,可实现签名只限于验证指定合约的功能。Cosigner的结构如下:

Scopes字段定义了签名的作用范围,包括以下四种类型:

- 存储合约执行的结果

目前,交易执行的结果(成功或失败)也会被存储。可以通过查询交易信息来确认交易在NeoVM中是否执行成功,例如跨链交易的确认。

  • 区块

目前,我们给区块和区块见证人的大小设置了上限MaxSize (以更好地防止垃圾交易攻击),并将区块时间戳的单位更改为毫秒,从而可用于物联网应用。

  • NeoVM

NeoVM是用于执行智能合约的轻量级虚拟机。它的特点是启动快,资源消耗低,支持多种高级编程语言,允许开发人员使用熟悉的工具构建合约。

在NEO3.0中,通过将操作码费用的计算转移至ApplicationEngine并简化指令,来实现NeoVM与区块链的完全解耦,使其成为一个单纯的虚拟机。下列操作码已被弃用:APPCALL, TAILCALL, SHA1, SHA256, HASH160, HASH256, CHECKSIG, VERIFY, CHECKMULTISIG, CALL_I, CALL_E, CALL_ED,CALLET, `CALLEDT`等。

这样做具有以下几个优点:

- 简化原生合约的开发

- 增加NeoVM在区块链外的应用场景

- 将NeoVM平滑集成到任何IDE中,并轻松调试智能合约,而无需加载区块链数据

稳定性增强

委托拜占庭容错(dBFT)是专门为区块链设计的共识机制。通过投票选举出一组共识节点,并由这些节点共同生成和验证区块。由于共识节点需要在新区块上链之前达成一致,dBFT保证了一区块终局性,这意味着NEO区块链不会发生分叉,且交易是不可逆的。一旦交易在区块链上得到确认,就不能撤销或取消。对于金融应用来说,交易的终局性是必要的。

在dBFT2.0中,我们增加了一个恢复机制,大大提高了共识算法的稳定性。在极少数情况下发生网络故障或节点故障时,可以实现快速恢复。

性能增强

NEO3增加了P2P消息的自动压缩机制,节省了大量的存储空间和带宽,同时提高了TPS。

部分压缩样本如下:

定价模型

  • 系统费

系统费是根据NeoVM要执行的指令计算得出的费用,请参考GitHub上NEO3开发指南中的操作码费用部分,了解每个操作码的具体费用。NEO3取消了每笔交易10 GAS的免费额度,系统费用总额受合约脚本的指令数量和指令类型影响。计算公式如下所示:

  • 网络费

网络费是用户向NEO网络提交交易时支付的费用,作为共识节点的出块奖励。每笔交易的网络费存在一个基础值,计算公式如下所示。只有当用户支付的网络费大于或等于此基础费用时,才会执行交易。否则,交易将被认定为无效交易。

其中,VerificationCost为NeoVM验证交易签名执行的指令相对应的费用,tx.size为交易数据的字节长度,FeePerByte为交易每字节的费用,目前在PolicyContract定义为0.00001GAS。

  • 操作码费用

NeoVM操作码费用降低为原来的1/1000左右,可以显著降低合约开发成本。

  • 与NEO2.x的比较

NEO3 Preview1版本可在https://github.com/neo-project/neo-cli/releases/tag/v3.0.0-preview1上下载。

以下是申请NEO3 Preview1 GAS的链接:https://neo.org/testcoin/apply

参考文献:

[1] Roadmap of NEO 3.0 Development

https://medium.com/neo-smart-economy/roadmap-of-neo-3-0-development-e2ae64edf226

[2] Native Contracts in NEO 3.0

https://medium.com/neo-smart-economy/native-contracts-in-neo-3-0-e786100abf6e

[3] Some Details about Changes in NEO 3.0

https://github.com/neo-ngd/NEO3-Development-Guide/blob/master/README.md#changes-in-neo3

[4] dBFT2.0

https://medium.com/neo-smart-economy/dbft-2-0-3-months-no-sporks-e2ab9fe1065b

[5] Opcode fee in NEO3

https://github.com/neo-ngd/NEO3-Development-Guide/tree/master/en/NeoVM#instructions

声明:链世界登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。此文如侵犯到您的合法权益,请联系我们kefu@lianshijie.com

参与讨论 (0 人参与讨论)

相关推荐

火币加入日本STO协会,成员包括MUFG及其他10家企业

火币加入日本STO协会,成员包括MUFG及其他10家企业

翻译:Maya 根据今天早些时候发布的公告,火币的日本分公司已经和Zaif、FXCoin以及其他8家本地加密企业一起加入了日本STO协会,即JSTOA,成为“赞助会员”。

Chainlink周报|LINK单周涨幅16.25%,市值排名重返前十

Chainlink周报|LINK单周涨幅16.25%,市值排名重返前十

据律动 BlockBeats 整理,本周 7 月 27 日至 8 月 2 日,二级市场价格有所回升,单周涨幅约 16.25%,市值重返前十名,目前排名第九。二级市场8 月 2 日 LINK 价格上涨至 8.44 美元,总市值排名上升至第九。目前,Chainlink 市值排名为第 9 名,现报 8.34 美元。

Crypto.com:MCO持有者需在11月3日前将代币替换为CRO

律动 BlockBeats 消息,加密支付平台 Crypto.com官方博客于 8 月 3 日宣布开始实施 MCO 替换计划。MCO 持有者需要在 UTC 时间 11 月 2 日 23:59前将 MCO 替换为 CRO。

重大喜讯!HDU破100,花火一呼百应!

8月4日上午10时,据花火平台显示,HDU突破100大关,成为名副其实的"百元币",距离上次突破50关口不过19日,是什么助推HDU上涨如此之快?其实HDU突破百元关口不是偶然,而是"必然"。从"1"到"100",仅8个多月,270个日夜,是花火技术联盟的沉淀创新,不断拓展应用并推进落地;是330个社区联盟的一致共识,38万+花粉的认同与彼此成就;更是千万花火布道者共同的信仰,线下奔走全国100城

【CoinVoice商业公开课No.91】携手霍比特,当红预言机项目NEST如何打造DeFi生态?

【CoinVoice商业公开课No.91】携手霍比特,当红预言机项目NEST如何打造DeFi生态?

最近DeFi 概念火遍加密世界,拉动了大量 DeFi 项目市值的暴涨。而作为所有 DeFi 项目都离不开的预言机也迎来了大涨。NEST Protocol 是一个去中心化的价格预言机网络。NEST 定义并实现了一种全新的在区块链上生成链上价格的方案。今年5月,NEST全球首发HBTC霍比特后,NEST上线后最高涨幅883.29%。而霍比特也是NEST预言机深度合作伙伴,目前霍比特地址NEST总量1.

 ELA Wallet iOS v1.4.5版本更新公告

ELA Wallet iOS v1.4.5版本更新公告

ELA Wallet 是专注于支持亦来云生态数字资产安全、便捷的 SPV 轻节点客户端钱包。使用 ELA Wallet,您可以在完全去中心化的安全环境下,掌握自己的加密数字资产私钥,便捷地进行 ELA 存储、发送、接收,并可以在钱包内参与 CRC 共识。当前,ELA Wallet iOS v1.4.5 版本钱包已发布。本次 iOS 版更新内容如下:1. 支持 CryptoName 收款地址短域名功

ELA Wallet iOS v1.4.5版本更新公告

ELA Wallet iOS v1.4.5版本更新公告

ELA Wallet 是专注于支持亦来云生态数字资产安全、便捷的 SPV 轻节点客户端钱包。使用 ELA Wallet,您可以在完全去中心化的安全环境下,掌握自己的加密数字资产私钥,便捷地进行 ELA 存储、发送、接收,并可以在钱包内参与 CRC 共识。当前,ELA Wallet iOS v1.4.5 版本钱包已发布。本次 iOS 版更新内容如下:1. 支持 CryptoName 收款地址短域名功

Plustoken 400 亿资金盘受害者:从月入 150 万,到不愿相信

Plustoken 400 亿资金盘受害者:从月入 150 万,到不愿相信

7 月 30 日,公安部官方发文称,其立案侦办的「Plustoken 平台」网络传销案,终于将潜逃境外的全部 27 名主要犯罪嫌疑人和 82 名骨干成员抓捕归案。当时有不少媒体报道了此事,并在 Plustoken 社区引起了恐慌。根据公安部的说法,Plust

麦妖榜
更新日期 2019-09-03
排名用户贡献值
1牛市来了30910
2BitettFan24187
3等待的宿命23810
4区块大康20369
5六叶树20310
6linjm122719429
7天下无双16192
8lizhen00215280
9让时间淡忘14586
10yelanyi050511349
返回顶部 ↑