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标准,它给与设计者关于代币合约的一些风险并提供了解决办法。
以上是关于ERC20代币标准初识的主要内容,如果未能解决你的问题,请参考以下文章