erc20 ht(ERC协议终极解读:ERC-20)
从ERC标准发行以来,基于以太坊网络的token被大范围的创造出来并被用于交易,这些代币俨然已经成为以太坊生态系统的支柱。一些企业用这些token作为它们系统内的货币,一些token被当作公司的股权放在交易所上交易,一些token则作为收藏品存在,如加密猫。
Attention!
要发token的各位,本系列文章将回答你需要知道的一切有关ERC协议的问题。
什么类型的token最适合你的项目?
以太坊网络上有多少种ERC token标准?
不同的ERC token各有什么优劣性?
不同的ERC token是怎么工作的?
如果你也有这些疑问,或者你是一个想拓展智能合约知识的码农,本系列将为你从技术角度介绍6种【资 ;源 之.家.】ERC 标准。
什么是ERC
ERC(EthereumRequest for Comment)即以太坊通用征求意见协议。每一个开源的社区都需要一个系统来处理成员提出的请求和对请求的采纳。ERC就在以太坊网络中行使这样的一个职能,ERC为开发者提供了技术指导,也对以太坊网络的发展提供了建议。
开发者可以通过提交EIP(Ethereum Improvement Proposal以太坊改进建议),向以太坊社区提交新的ERC标准提案。提交内容包括协议规范和合约标准。一旦该EIP获得以太坊委员会的批准并最终定型,它就会成为一个新的ERC。
新的ERC为以太坊开发者提供了一套可实施的标准。开发者就可以使用这些标准【资 ;源 之.家.】搭建智能合约。
ERC-20
ERC-20是整个加密社区中的所有标准中名气最大的,而且大多数基于以太坊平台发布的token都基于ERC-20协议。ERC-20协议清晰的定义了基于其标准发布的代币将在以太坊网络中怎样运作。
因此,ERC-20对开发者的影响是巨大的,因为它们再也不用为了发行一个新token而重做整个项目了。如果这些token是符合ERC-20标准的,那么它们就会与新token兼容。ERC-20规则被开发者大规模采用,这意味着基于以太坊的ICO发布的大多数token都符合ERC-20标准。
ERC-20协议技术详解
我在此描述一个ERC-20合约的功能和事件签名的基本界面,以下将对每个功能做【资 ;源 之.家.】详细解释。
totalSuply
totalSuply为一个公共函数(public function),展示了目前该token的流通总量,可以被所有函数调取。因为这个函数被标记了viewmodifier,所以调取此函数不需要花费任何gas。所以,你可以免费的获取任何基于ERC-20的token的流通总量信息。每当有新token被通过挖矿的方式加入到流通市场,该逻辑就会更新内部变量totalSupply_的值。这个值可以通过以下方式获取。
balanceOf
balanceOf也是一个公共函数,同样被标记了viewmodifier,因此所有人都可以免gas费访问。此函数接受一个以太坊地址作为输入,并返回【资 ;源 之.家.】该地址拥有的token数量。这个函数作为系统内部的一个映射以如下方式展示。
transfer
transfer函数与以上函数不同,token转账是需要消耗gas的,因为转账将导致以太坊智能合约中一个状态的变化。Token持有者调用此函数来实现将token从一个地址转移到另一个地址。_to代表token接收者的地址,转移的数量为value个token
allowance,approve 和 transferFrom
最后介绍allowance,approve和transferFrom函数,这几个函数提供了一些高级功能,用于授权其他以太坊地址的所有者代表你使用你的token。这个“其他以太坊地址”可能是一【资 ;源 之.家.】个智能合约,也可能只是一个普通token账户。
● approve函数。Token所有者可以调用这个函数授权spender代表它使用value数量的token。
● allowance 函数。此函数被用来查看owner给spender的token额度
● transferFrom函数。spender可以调用此函数来执行转账,转账金额不应超过其被授权的额度。
ERC-20的问题
以上为ERC-20的基本功能,尽管说ERC-20是最流行、最基本的以太坊代币标准,为了解决某些特定的问题,一些改进还是必要的。下篇将讲述ERC-223 协议标准,以及其对改进ERC-20做出的贡献。
· End ·
(作者:黑皮书,内【资 ;源 之.家.】容来自链得得内容开放平台“得得号”;本文仅代表作者观点,不代表链得得官方立场)