ERC20代币标准初识

Posted CamphorBloom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ERC20代币标准初识相关的知识,希望对你有一定的参考价值。

并非所有加密货币都有自己的区块链,它们运行在各自平台之上,例如运行在以太坊之上的 ERC20 代币。

以太坊

由两部分组成:能够存储交易的区块链和能够运行智能合约的虚拟机。

在以太坊上除了原生币种以太外,还支持其他代币,它们可以像货币一样工作。

如代表货币、公司股份、忠诚度积分、黄金证书等....

代币的产生

通过智能合约创建,除此之外,该合约还会处理交易并跟踪每个代币持有者的余额数量情况。

如果你要获得一些代币,则必须向智能合约发送一些以太(其他测试币),然后合约会给你一定数量的代币作为回报。因此,当你想创建自己的代币时,您需要编写一个智能合约,该合约可以创建代币、转移代码并跟踪持有者余额。这听起来容易,但做起来也很冒险。对初学者来说,一旦你部署了合约就无法更改,所以合约中存在错误,你也就无法修复了。那简直是个灾难!试想你的合约代码有一个漏洞会导致使用者丢失他们的代币,或者允许黑客窃取代币。最后是互操作性问题,由于每种代币合约可能不尽相同,如果您希望您的代币在交易所可用,则交易所必须编写自定义代码,以便他们能够对接您的合约并允许人们进行交易。钱包的提供商亦是如此。支持数百个令牌将非常复杂且耗时。所以所以,以太坊社区提出来一个名为ERC20的代币标准。

ERC20

首先解释一下ERC,是下面英文的首字母缩写(简译:以太坊征求稿)。

Ethereum Request for Comments

而数字20只是分配给提案的编号。 ERC20是创建自己代币的指南和标准,它定义了你的智能合约应该实行的6个强制功能和3个可选功能(如下图)。

three optional functions

  • name: 代币名称。
  • symbol: 代币符号。
  • decimal: 代币数量精确的小数位(上限18)。

 

six mandatory functions

  • totalSupply: 代币总发行量。
  • balanceOf: 查看指定账户的代币数量。
  • transfer: 转移代币。
  • transferFrom: 转移代币。
  • approve: 向其它用户授权。
  • allowance: 检查用户代币余额。

 为什么会有强制用户实现的6个功能,因为ERC20是个interface接口合约,了解过面向对象编程的伙伴一定不会陌生(oo programming),这也就使得它对用户无形中做了限制。但其中的业务逻辑我们可以自行编写,换句话说,ERC20提供了基本材料,具体轮子怎么造,看个人的了。与此同时,交易所和钱包提供商就只需依据ERC20的标准,自定义相应的合约并执行一次就可以快速为您添加代币,省去大量时间和精力面对形形色色的代币合约。现在大多数加密货币钱包都支持添加自定义代币。

总结

ERC20的出现,推动了代币的使用和发展。但它本身并不完美,它只是一个指导方针,人们可以根据个人喜好自由实现所需要的功能。比如一个有趣的问题:要创建代币,需要往合约发送以太,但如果合约设计者没考虑这一点,有些用户会尝试发送其它ERC代币,结果是这些ERC代币就此人间蒸发了,找不回来了。不过后来ERC223标准扩展了ERC20标准,它给与设计者关于代币合约的一些风险并提供了解决办法。

参考:ERC-20 代币标准 | ethereum.org

以上是关于ERC20代币标准初识的主要内容,如果未能解决你的问题,请参考以下文章

剖析非同质化代币ERC721-全面解析ERC721标准

,让你了解ERC-1155 多代币标准协议

ERC20与ERC721标准及案例

ERC20与ERC721标准及案例

代币标准--ERC1155协议源码解析

ERC20代币学习与合约编写