以太坊通证标准包括(ERC20、ERC721、ERC223、ERC621、ERC827、RFC、EIP)

本文涉及的产品
公网NAT网关,每月750个小时 15CU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 最著名的两个以太坊通证标准是代币标准ERC20和数字资产标准ERC721。在本文中,除了介绍这两个流行的ERC以太坊标准,还将介绍其他一些针对特定应用场景的ERC20改进标准:ERC223、ERC621和ERC827。

最著名的两个以太坊通证标准是代币标准ERC20和数字资产标准ERC721。在本文中,除了介绍这两个流行的ERC以太坊标准,还将介绍其他一些针对特定应用场景的ERC20改进标准:ERC223、ERC621和ERC827。

什么是ERC?

ERC代表“Etuereum Request for Comment”,这是Ethereum版的意见征求稿 (RFC),RFC是由互联网工程任务组制定的一个概念。 RFC中的备忘录包含技术和组织注意事项。 对于ERC,意见征求稿中包括一些关于以太坊网络建设的技术指导。

ERC是Ethereum开发者为以太坊社区编写的。 因此,ERC的创建流程中包括开发人员。 为了创建一个以太坊平台的标准,开发人员应当提交了一个以太坊改进方案(EIP), 改进方案中包括协议规范和合约标准。 一旦EIP被委员会批准并最终确定,它就成为ERC。 EIP的完整列表可以在这里找到。

最终确定的EIP为以太坊开发者提供了一套可实施的标准。 这使得智能合约可以遵循这些通用的接口标准来构建。

ERC-20是整个加密社区中最为人熟知的标准,在Ethereum平台之上发布的大多数通证(token)都使用它。

ERC-20标准的内容

ERC-20标准中定义了以下函数接口:

  • totalSupply():返回代币供给总量
  • balanceOf(address _owner):返回_owner的帐户余额
  • transfer(address _to,uint256 _value):并将数量为_value的代币转入地址_to并触发transfer事件
  • transferFrom(address _from,address _to,uint256_value):将地址_from中的_value数量的代币转入地址_to ,并触发transfer事件
  • approve(address _spender,uint256 _value):允许_spender提取限额_value的代币
  • allowance(address _owner,address _spender):返回_spender可从_owner提款的代币数量上限

以上函数将触发以下事件:

  • transfer(address indexed _from,address indexed _to,uint256 _value):每次进行代币转账时都会触发
  • approval(address indexed _owner,address indexed _spender,uint256 _value):调用approve()方法将触发该事件

ERC-20于2015年提出并于2017年9月正式实施。这是代币标准化的一个很好的起点。 然而,开发者社区
已经注意到它存在一些缺陷和漏洞,此外,还有一些场景它不能很好的满足。因此陆续提出了其他的ERC标准。

ERC-223

  • 状态:打开
  • 建议日期:3/5/2017

开发人员Dexaran在一篇文章中详细描述了ETC20不适合的两种场景:

“在ERC20中执行交易有两种方式:

  1. transfer函数。
  2. approve + transferFrom机制。

通证余额只是通证合约中的一个变量。

通证的交易是合约内部变量的变化。 转出账户的余额将减少,转入账户的余额将增加。

交易发生时, transfer()函数不会通知转入账户。 因此转入账户将无法识别传入的交易! 我写了一个例子,可以展示这一导致未处理的交易和资金损失的过程 。

因此,如果接收账户是合约,那么必须使用approve + transferFrom机制来发送通证。

如果接受账户是外部拥有帐户,则必须通过transfer函数发送通证。 如果选择了错误的机制,通证将卡在合约内(合约将不会识别交易),没有办法来提取这些卡壳的通证。“

他对这个问题提出的解决方案包含在ERC-223中 。 它与ERC-20标准非常相似,但解决了上述问题。当通证转移到智能合约账户时,该合约的特殊函数tokenFallback() 允许接收方合约拒绝令牌或触发进一步的操作。 大多数情况下,这可以用来代替approve()函数。

ERC-621

  • 状态:打开
  • 建议日期:2017/5/1

ERC-621是ERC-20标准的扩展。 它增加了两个额外的功能, increaseSupply和decreaseSupply 。这可以增加和减少流通中的令牌供应。 ERC-20只允许单一的通证发放事件。 这将供应量限制在一个固定的不可改变的数目。 ERC-621建议totalSupply应当是可修改的。

ERC-721

  • 状态:打开
  • 建议日期:9/22/2017

ERC-721与ERC-20和ERC-223都大不相同。 它描述了一个不可互换的通证。 这意味着每个通证是完全不同的,并且每个通证对不同的用户都有不同的价值。 理解这种通证的一个方法就是回忆CryptoKittes。 每一个数字猫都是独立的,其价值取决于其稀缺性和用户的购买欲。

ERC-721令牌可用于任何交易所,但通证价值是“每个通证的唯一性和稀缺性所决定的结果”。标准中规定的接口函数包括name、symbol、totalSupply、balanceOf、ownerOf、approve、takeOwnership 、 transfer 、tokenOfOwnerByIndex和tokenMetadata 。 它还定义了两个事件: Transfer和Approval 。 Gerald Nash的 这篇文章很好地解释了可互换性的概念。

ERC-827

  • 状态:打开
  • 建议日期:1/12/2018

ERC-20标准的另一个扩展是ERC-827。 它允许转让通证并允许持有人允许第三方使用通证。 以太坊上的通证可以被其他应用程序重复使用,这其中也包括钱包和交易所。 当需要支持第三方动态消费限额调整时这一点非常有用。

最重要的是,由于ERC-827是ERC-20的延伸,它也与ERC-20兼容。

一些提议的接口函数包括:

  • transferFrom(address _from,address _to,uint256 _value,bytes _data) returns (bool success)
  • approve(address _spender,uint256 _value,bytes _data) returns (bool success)

如果你希望高效的学习以太坊DApp开发,可以访问汇智网提供的最热门在线互动教程:

其他更多内容也可以访问这个以太坊博客

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
高可用应用架构
欢迎来到“高可用应用架构”课程,本课程是“弹性计算Clouder系列认证“中的阶段四课程。本课程重点向您阐述了云服务器ECS的高可用部署方案,包含了弹性公网IP和负载均衡的概念及操作,通过本课程的学习您将了解在平时工作中,如何利用负载均衡和多台云服务器组建高可用应用架构,并通过弹性公网IP的方式对外提供稳定的互联网接入,使得您的网站更加稳定的同时可以接受更多人访问,掌握在阿里云上构建企业级大流量网站场景的方法。 学习完本课程后,您将能够: 理解高可用架构的含义并掌握基本实现方法 理解弹性公网IP的概念、功能以及应用场景 理解负载均衡的概念、功能以及应用场景 掌握网站高并发时如何处理的基本思路 完成多台Web服务器的负载均衡,从而实现高可用、高并发流量架构
相关文章
|
5月前
|
数据安全/隐私保护
ERC314协议
ERC314协议
36 0
|
存储 区块链 开发者
Op丨ARB链dapp代币合约质押项目系统开发
Op平台上有多个完善的去中心化应用程序
|
JavaScript 前端开发 IDE
如何获取某个地址拥有的所有ERC20代币
本文将介绍如何设置Chainbase帐户、编写使用Chainbase API的脚本以及获取ERC20令牌余额的过程。
285 0
|
JavaScript 前端开发 API
如何通过合约获取所有ERC20转账
通过使用正确的API,可以轻松获取与合约地址相关的ERC20代币的所有转账记录。通过创建账户、编写使用API的脚本并使用getTokenTransfers函数,您可以访问和分析有关ERC20代币的有价值的转账数据。
236 0
|
前端开发 安全 JavaScript
  ERC20 Token智能合约DApp开发
ERC20 Token智能合约DApp开发是指基于以太坊区块链平台和ERC20 Token标准开发的去中心化应用程序,用于数字货币、代币、积分等的发行、交易和管理。
|
测试技术 API 区块链
【Web3探索】NFT 标准的演变:ERC-721 与 ERC-1155
要了解NFT的当前情况,我们必须深入了解它们的发展历史。ERC-20标准在代币领域占据主导地位,为各种项目提供了可替代代币的创建。ERC-1155结合了可替代和不可替代代币,为开发者在代币管理方面提供了更多的灵活性和效率。
159 0
|
算法 测试技术 区块链
usdt合约交易规则分析|usdt合约交易功能开发部署解析
usdt合约交易规则是由各大交易平台制定和实施的,不同的平台可能会有一些细微的差异。一般来说,以下是一些常见的usdt合约交易规则:
|
区块链
ERC20代币合约开发规则详解(源码示例)
ERC20代币合约是一个遵循ERC20标准的代币合约,它实现了代币转移、代币冻结、代币解锁等功能。作为一个通用的标准,ERC20代币合约可以被广泛应用于各种去中心化交易所、钱包、ICO等场景。
如何创建以太坊ERC20代币
看这篇文章需要对以太坊,智能合约,代币等概念有基本的了解。 什么是ERC20 可以把ERC20简单理解成以太坊上的一个代币协议,所有基于以太坊开发的代币合约都遵守这个协议。
2108 0
|
JSON 安全 区块链
ERC1155
从外网找的博客,自己翻译了一下,记录一下
2345 0