什么是ERC20代币?

投糖网 阅读:1376 2020-08-05 17:10:41 评论:0


首先ERC代表“Etuereum Request for Comment”

以太坊社区为了创建一个以太坊平台的标准, 开发人员提交了一个以太坊改进方案(EIP), 改进方案中包括协议规范和合约标准。 最终确定的EIP为以太坊开发者提供了一套可实施的标准。 这使得智能合约可以遵循这些通用的接口标准来构建。

常看到某某Token(代币)描述自己符合ERC20,很显然ERC20是一套发行的标准接口,可以让Token的发行变得非常容易,甚至可以做到5分钟之内就发行一种新的Token。同时,有了ERC20这样统一的标准,也有利于Token的流通以及相关产品(比如钱包、交易平台)的开发。当前市面上至少有数千种Token,其中绝大部分都是基于ERC20的。

      更详细的说,ERC20标准是建立在以太坊网络之上的智能合约,该标准的发布于2015年11月19日,基于ERC20标准发的Token实际上都是运行在以太坊网络上面,转账、交易都要通过以太坊网络进行,如果以太坊网络拥堵,那么ERC20的Token转账、交易也会延迟。

     如果你手上有多种Token,你还会发行基于ERC20的Token的钱包地址,都是一样的,就是你的ETH地址。并且,如果从以太坊钱包中把Token A转账出去,支付的Gas费用(矿工费)用的是ETH,没有足够的ETH你可能都无法完成转账。

    ERC-20标准中定义了一些函数接口,这里不做讨论。大部分空投玩家,也不需要深入研究,有兴趣的朋友可以百度一下。

    ERC20标准规定了各个代币的基本功能,它可以快速发币,而且使用又方便,因此空投币和大部分基于以太坊合约的代币基本上就是利用ERC-20标准开发的;

    除去ERC20外,其实还有ERC223、ERC721、ERC825等Token标准,它们也是以太坊上的智能合约,与ERC20的情况非常相似,只是不同标准具体的特性与针对的应用场景有所区别。目前ERC20标准Token依然占绝对的主流。但在未来,根据具体需要,会有更多的基于ERC721、ERC223标准的Token出现。

1. 为何需要ERC20

在币圈带过一段时间的小伙伴应该都听说过ERC20代币。但它其实并不是代币,而是一种设计标准。那为什么会需要这样的设计标准呢?

首先这个设计标准和以太坊平台有很大的关系。我们都知道,以太坊上的原生币是ETH。但除了ETH之外,它也可以支持其他代币发行。这些代币可以使用的范围很广,可以进行交易,也可以用于代表公司的股权等等。那这些代币在以太坊上是如何生成的呢?它其实是由以太坊上的智能合约自行创建的。所以当你想创建自己的代币时,只需要写一份属于自己的智能合约就行了。在合约编写完成后,你只需向这份智能合约发送一些ETH,合约就会根据规则自动返还给你一定数量的代币。

不过你想,每个人所创建的合约标准其实都是不一样的。因为需求不一样,设计起来肯定多多少少都会有所差别。那如果后续交易所或钱包开发者想支持你的代币发行及储存,让你的代币价值最大化,那交易所及钱包开发者就需要再写一份自定义代码来适配你的智能合约。

这对于你来说或许没什么,但对于交易所或钱包开发者来说却是一件头疼又繁琐的事情。如果这世界上只有你一种代币那也就算了,他们只要开发一份支持你代币发行的自定义代码就行了,但事实却恰恰相反,代币何止你这一种,可以说有千千万万,如果每一种都要写一份自定义代码来做适配,那估计没人会愿意干这份工作。而且对用户的体验也非常不好,每种代币都需要放在不同的钱包里,你觉得会不会把用户整崩溃?

所以考虑到这些因素,才需要有一份通用化的智能合约设计标准。只要代币发行者做出来的智能合约符合这份设计标准,那交易所和钱包开发者只要设计一份能适配这份标准的统一接口,就可以支持所有的币种发行与储存了。聪明的小伙伴应该已经猜到了,没错,这份标准就是ERC20。


2. 设计ERC20需要做些什么?

ERC20的全名叫:Ethereum Request for Comments 20。最先是以太坊社区团体提出来的。大家可以把它看做是一份协议,当你想创建自己的代币时,你就必须要遵守这份协议,这样后期才会有更多的第三方应用对你发行的代币进行支持。它的主要功能有6个,且编写智能合约时需要一一对应。首先来说,你需要为你的代币定义的前三个功能分别是:一个名称,一段缩写简称,以及它可以支持的最大数位数。我们经常可以看到钱包里会显示你目前拥有0.000021个代币,后面这么多的小数位就是这样定义出来的。而缩写简称,就是我们钱包里看到的最终显示出来的代币名称。

其次你还需要定义代币的总共发行量。当达到这个总量限制时,智能合约就不会在发行新的代币了。接下来是定义查询余额的方法,以及允许谁从账户中转出代币及转出的数量,同时还需要判断账户余额是否足够发起一笔新的交易操作等等。如果你之前做过开发,了解面向对象编程,那你完全可以自行查看ERC20代币接口,一看就能明白大致需要配置哪些参数了。在编写了一份标准的ERC20智能合约之后,第三方机构就会用事先编写好的自定义代码与你的代币合约建立通信,这样人们就可以开始交易你的代币或把它存入钱包了。

要设计一份符合ERC20的简单智能合约对开发人员来说其实并不难,但对小白们来说还是有一定难度的,因为小白们完全不懂编程。那如果小白们也想发行自己的代币怎么办?没事,这点早就已经有人考虑到了,现在已经有一些网站开始支持傻瓜式的创建智能合约,能够让所有人轻轻松松的创建自己的代币。你只需要根据提示填写总供应量,代币名称,最大支持多少位小数,缩写简称等信息,剩下的工作它全都会帮你完成,并把你的智能合约添加到以太坊区块链上。OK,搞定。我把创建代币的网站放在了文末,有兴趣的小伙伴们可以自己去尝试一下。


3. 开发智能合约的风险

虽然开发智能合约这听起来很容易,但对于专业开发者开说其实风险也是非常非常的大。因为一旦智能合约被发布部署,它将无法再做修改。试想一下,如果你在合约的设计中犯了一个错误,但你又不能修复它,那估计会让你蛋疼终身。之前就发生过很多类似的事情,所以对网站,特别是交易所来说,代币被盗一直都是一件很头疼的事情,头疼的不是你代币被盗,而是代币被盗后你却无法堵住这些缺口。智能合约的设计其实很极端,要么别出问题,一出问题就是大问题。

另外在智能合约的开发过程中也需要非常小心。很多关键步骤不能省去。之前有位小伙伴在写智能合约的时候,由于不想在本地搭建测试环境,因为个人电脑搭建这样的环境会很卡,所以改用了testrpc模拟模块进行智能合约测试。而这个测试环境所生成的测试钱包都是通过几个固定的词组生成的,这些词组在官方都能查的到,是通用的,等于钱包秘钥已经被彻底公开。有一次他误把代币转入了测试钱包,结果被其他开发者发现,转移走了所有代币。像这样的坑在发开过程中还有很多,因此要十分小心。

此外,由于人人都可以十分容易的创建自己的代币,因此光在etherscan网站上显示符合ERC20设计标准的代币种类就已经超过了36000个。光2017年一年,代币通过ICO募集到的资金就超过了40亿美元。之后所发生的事情大家都看到了。由于生成代币实在太容易,ICO的水也变得越来越深,空气币也越来越多。直到去年9月政府不得不出台政策整顿IC0乱想。

但不管怎么样,ERC20设计标准的出现是有一定历史意义的。它很好的推动了token的发行。但它也并不完美,除了发布后不能再修改合约之外,如果你向合约中发送的不是ETH,而是其他代币的话,智能合约是不会将这些代币退还给你的。这也就意味着你的这些代币已经彻底丢失了。截止到2017年12月,大约已经有300万美元的代币因为这个缺陷不见了踪影。为了解决这个问题,以太坊社区成员正在开发全新的设计标准:ERC223,希望官方可以尽快解决这些问题。


本文 投糖网 原创,转载保留链接!网址:https://www.toutang.net/changjianwenti/124.html

声明

1.投糖网遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜