ERC20是什么?

我们经常看到某某Token(代币)描述自己符合ERC20,很显然ERC20是一套发行的标准接口。目前以太坊上有24351个代币的智能合约,如果这么多代币的标准不统一,对于其他人来查看代码是相当痛苦的,众筹的人也就没有办法来检查代币分发的是否合理,也没有办法做到多种钱包的兼容,所以才推出了ERC20标准。

ERC20标准

该标准发布于2015年11月19日,基于该标准发的代币实际上都是运行在以太坊网络上面,转账、交易都要通过以太坊网络进行,表现出一种通用的和可预测的方式。借助该标准可以让Token的发行变得非常容易,甚至可以做到5分钟之内就发行一种新的Token。同时也有利于Token的流通以及相关产品(比如钱包、交易平台)的开发。当前市面上至少有数千种Token,其中绝大部分都是基于ERC20的。如果以太坊网络拥堵,那么ERC20的Token转账、交易也会延迟。

任何 ERC-20 代币都能立即兼容以太坊钱包(几乎所有支持以太币的钱包,包括Jaxx、MEW、imToken等,也支持 erc-20的代币),由于交易所已经知道这些代币是如何操作的,它们可以很容易地整合这些代币。这就意味着,在很多情况下,这些代币都是可以立即进行交易的。

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

ERC20标准规定了哪些内容

ERC20是各个代币的标准接口,而代币仅仅是以太坊代币的子集,我们可以在github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md查看ERC20代币的标准API。为了充分兼容 ERC20,开发者需要将一组特定的函数(接口)集成到他们的智能合约中,以便在高层面能够执行以下操作:
  1. 获得代币总供应量
  2. 获得账户余额
  3. 转让代币
  4. 批准花费代币


ERC20 让以太坊区块链上的其他智能合约和去中心化应用之间无缝交互。一些具有部分但非所有ERC20标准功能的代币被认为是部分 ERC20兼容,这还要视其具体缺失的功能而定,但总体是它们仍然很容易与外部交互。

ERC20 并不完美

ERC-20标准还有待完善:
  1. 其中一个障碍是,将令牌直接发送给令牌的智能合同将导致资金损失。这是因为一个令牌的合同只会跟踪和分配资金。例如,当您从钱包中向另一个用户发送令牌时,该钱包将调用令牌的合约来更新数据库。所以如果您试图将令牌直接传输到令牌的合约中,那么由于该令牌的合约无法响应,所以金钱就“丢失”了。
  2. ERC20标准无法通过接收方合同处理传入的交易。这是该令牌存在的最大问题,也是开发者一直希望改进的地方。ERC20令牌无法将令牌发送给一个与这些令牌不兼容的契约,也正因为这样,部分资金存在丢失的风险。
  3. Reddit上的一篇文章指出,由于被发送到“错误”的合同上,大约价值40万美元的ERC20令牌被困,这对整个以太坊生态系统而言是一个巨大的威胁。幸运的是,ERC223令牌可以解决这一难题,前提是该令牌能够获得批准并被引入。


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

0 个评论

要回复文章请先登录注册