自ERC标准发布以来,大量基于以太坊网络的代币应运而生,并广泛参与交易活动,这些代币已成为以太坊生态系统的核心支撑。众多企业利用此类代币作为系统内流通货币,有的将其视为公司股份在交易所上市交易,还有的被珍藏,如著名的加密猫案例。
注意!想要发行代币的朋友,请看这里!本系列文章将详尽解答关于ERC协议的各种问题,无论你是纠结于何种类型的代币适合你的项目,或是想要深入了解以太坊网络上的ERC代币标准及各自优劣与工作原理。
1. 以太坊网络上究竟有多少种ERC代币标准?
2. 不同的ERC代币有何独特优势与劣势?
3. 各类ERC代币是如何协同运作的呢?
如果你对此类问题感兴趣,或是一名寻求扩展智能合约知识的技术人员,本系列将为你带来六个重要ERC标准的技术解读。
ERC(Ethereum Request for Comment)是以太坊通用意见征询协议。如同任何一个开源社区需要一套机制来处理成员提议和采纳方案一样,ERC在以太坊网络中扮演着这一角色。ERC不仅为开发者提供技术指导,也为以太坊网络的发展提出建设性建议。开发者可通过提交EIP(Ethereum Improvement Proposal,以太坊改进提案)向以太坊社区提议新的ERC标准。一旦该提案获得以太坊委员会批准并确定下来,就将成为一个新的ERC标准,供开发者遵循构建智能合约。
ERC-20无疑是在整个加密社区中最知名且应用最广泛的代币标准,大多数基于以太坊平台发布的代币都是基于ERC-20协议创建的。ERC-20协议明确规定了依照此标准发行的代币如何在以太坊网络中运行,从而极大地影响了开发者的发行行为。现在,他们无需为推出新代币而重新构建整个项目。只要新代币符合ERC-20标准,即可与其他同类代币无缝对接。ERC-20被广大开发者采纳,这也意味着大多数基于以太坊的ico所发行的代币均遵循ERC-20标准。
下面我们将简述ERC-20合约中的关键功能和事件签名:
totalSupply: 这是个公开查询函数(public function),显示当前代币的总流通量,可供所有函数调用,因带有view modifier标签,故查询此函数无需耗费gas。因此,你可以免费获取基于ERC-20的所有代币的流通总量信息。当新代币通过挖矿方式进入流通市场时,会更新内部变量totalSupply_的值。
balanceOf: 这同样是公开查询函数,带有view modifier标签,任何人都能免费查询。此函数接受一个以太坊地址作为参数,返回该地址持有的代币数量。这个函数通过内部映射实现如下功能。
transfer: 与上述函数不同,转移代币操作需消耗gas,因为它会导致以太坊智能合约的状态发生变化。持币者调用此函数,实现将代币从一个地址转移到另一个地址的操作,其中_to表示接收代币的地址,value表示转移的代币数量。
allowance, approve, transferFrom: 这几个函数提供更高级的功能,允许用户授权其他以太坊地址(可能是智能合约或普通代币账户)代表自己使用代币。
approve函数: 代币所有者可以调用此函数授权spender使用指定数额(value)的代币。
allowance函数: 用于查看owner赋予spender的代币额度。
transferFrom函数: spender可以借此函数进行转账操作,但转账金额不得超过其已被授权的额度。
虽然ERC-20是最流行且基础的以太坊代币标准,但在解决特定问题方面仍有待改进。接下来的文章将继续探讨ERC-223协议标准及其对于改善ERC-20作出的重要贡献。