NEO如何改进协议

发布时间:2022-01-11 16:00:09 作者:iii
来源:亿速云 阅读:122

这篇文章主要介绍了NEO如何改进协议的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇NEO如何改进协议文章都会有所收获,下面我们一起来看看吧。

摘要

本NEP描述了一个用于NEO原生资产转移的URI标准。此外,它提议一个URI子集用于完善智能合约操作,在本提案所包含的NEP-5token被转移时。未来,随着更便于理解的和经过良好测试的合约被加入网络时,URI会被增加。我们定义了一个框架用于判定一个URI方案是否适用于下面的智能合约操作。

动机

目前,没有标准URI可供NEO客户端使用。比特币实现了一个URI标准,因此点击连接或扫描二维码可以轻松实现一个比特币支付。同样,NEO上的原生资产转移可应该如此简单易行

然而,NEO可能可以通过智能合约的调用实现更多的合约操作。这包括token的铸造和转移,注册域名,交换和另外一些自定义应用。理想情况下,一个URI存在通用智能合约的调用。然而,这存在安全隐患,可能很难判定智能合约实际做了什么,可能因此导致资金的损失

为了解决该问题,我们提议为通用智能合约调用生成的URI被限制在一个完善的合约操作的子集内(例如NEP-5 token的转移)。这将是得客户端轻松理解和验证给定的URI将要进行的操作。如果客户端更注重安全性,可以维护一个遵顼给定URI规范的合约白名单

任何新的被添加进本提案的NEO URI对应的智能合约应当是安全、记录良好和广泛使用。我们将在本提案的最后进行更多的讨论

详述

原生资产转移URI

原生资产的转移有以下URI。它描述了接收者地址,资产和伴随着交易发送的额外属性。
URI 方案: neo

neo:<address>[?asset=<asset>][?amount=<amount>][?<TransactionAttributeKey>=<value>]
URI键
描述是否必需
address有效NEO地址
assetneo、gas和资产ID
amount资产被发送的数量 e.g 1.0
可用URI 键 映射 NEO 交易属性键
URIKEYNEO 交易属性描述
contractHash0x00合约的哈希
ecdh02, ecdh030x02,0x03公钥 用于 ECDH 密钥交换
script0x20交易的额外验证
vote0x30用于投票
certUrl0x80证书的Url地址
descriptionUrl0x81描述的Url地址
description0x90简易描述
hash2,hash3,…,hash250xa1,0xa2,…,0xaf用于存储自定义哈希值
remark,remark2,…,remark150xf0,0xf1,…,0xff备注
参考原生资产地址
名字哈希
NEOc56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b
GAS602c79718b16e442de58778e148d0b1084e3b2dffd5de6b7b16cee7969282de7
例子

开始交易到指定地址
neo:AeNkbJdiMx49kBStQdDih7BzfDwyTNVRfb

开始未指定数量NEO的交易
neo:AeNkbJdiMx49kBStQdDih7BzfDwyTNVRfb?asset=neo

开始1NEO到指定地址的交易
neo:AeNkbJdiMx49kBStQdDih7BzfDwyTNVRfb?asset=neo&amount=1.0

开始1NEO到指定地址且交易描述为“hello”的交易
neo:AeNkbJdiMx49kBStQdDih7BzfDwyTNVRfb?asset=neo&amount=1.0&description=Hello

开始0.1GAS到指定地址的交易.将公钥放在ecdh02属性字段中以允许发件人使用ECDH加密.交易属性描述为“hello”
neo:AQc5mtFayAdoCK13BW1cGAzAHyo9SoUWe7?asset= gas&amount=0.1&ecdh02=02ed53ad58c838435d4dd7a4b25c1eba01384c814ca53a539405434807afbb04b4&description=Hello
这应该足够促使NEO原生资产的安全转移

智能合约调用URI

为了调用智能合约,我们需要指定脚本哈希和智能合约被调用的操作以及提供所需的参数。这样,应用可以定制屏幕界面用预填充的信息来匹配调用的操作。例如:NEP-5 token的转移,投票等。而用户需要做的是授权/签和交易。

正如之前所提到的,通用智能合约的调用并不一定适用于URI。这是既是因为安全问题也是因为可用性。URI的客户端应该100%确信他们使用的URI会达成预期的效果。将其限制在合约操作的子集可以解决大部分繁杂的问题。如果客户端想要更加安全,它可以在每个受支持的智能合约URI的子集中构建自己的白名单。

任何对受支持合约URI的添加都应遵守与其他NEO改进提案一样的过程。为了添加一个受支持的智能合约URI,操作/提案应具有以下内容…
1.不指定应用
2.经过良好的测试
3.良好的文档并很容易被客户端使用
4.URI使用例子

NEP-5 token 转移

NEP-5token的转移是智能合约的调用并具有以下URI。

neo:<address>?asset=<NEP5ScriptHash>[?amount=<amount>][?<TransactionAttributeKey>=<value>]
URI Keys
KEYDESCRIPTIONREQUIRED
address可供转移的有效NEO地址.
asset有效的big endian格式的合约哈希.
amount发送的token数量 . e.g 1.0
例子

开始转移10ONT到指定地址的交易Begin
neo:AK2nJJpJr6o664CWJKi1QRXjqeic2zRp8y?asset=ceab719b8baa2310f232ee0d277c061704541cfb&amount=10

开始转移非指定数量的ONT到指定地址交易
neo:AK2nJJpJr6o664CWJKi1QRXjqeic2zRp8y?asset=ceab719b8baa2310f232ee0d277c061704541cfb

原理

URI需要考虑对于用户和钱包开发者的易用性和安全隐患,尤其是在执行任意智能合约。与智能合约调用相比,我们可以使用与转移原生资产相关的URI来更轻松的实现安全保障。

关于“NEO如何改进协议”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“NEO如何改进协议”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. Neo4j+py2neo性能测试(CMDB二)
  2. Neo4j是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

neo

上一篇:如何分析ActiveReports中交互式报表的文档目录

下一篇:MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决方法是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》