ERC20标准

最著名的两个以太坊通证标准是代币标准ERC20和数字资产标准ERC721。而ERC-20是整个加密社区中最为人熟知的标准,在Ethereum平台之上发布的大多数通证(`token`)都使用它。

## 什么是ERC?

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

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

最终确定的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标准。

猜你喜欢

转载自my.oschina.net/u/2485754/blog/1806394