在区块链和加密货币的世界里,“以太坊”(Ethereum)和“ERC20”是两个频繁被提及的术语,对于初学者而言,它们之间的关系可能有些模糊。以太坊是一个区块链平台,而ERC20是一个基于以太坊平台制定的技术标准(协议),如果把以太坊比作一个智能手机操作系统(如iOS或Android),那么ERC20就像是这个系统上的App Store里,各种代币(应用)都需要遵循的开发规范和接口标准。 它们之间是平台与标准、母体与子代的关系,密不可分。
以太坊:智能合约与去中心化应用的“世界计算机”
要理解ERC20,首先必须了解以太坊,以太坊不仅仅是一个像比特币那样的数字货币(虽然其原生代币ETH也具有交易和价值储存功能),它更是一个开源的、去中心化的区块链平台,由 Vitalik Buterin( Vitalik Buterin)在2015年推出。
以太坊的核心创新在于引入了“智能合约”(Smart Contract)的概念,智能合约是在区块链上运行的自执行代码,当预设的条件被满足时,合约会自动执行约定的条款,这使得以太坊超越了简单的价值转移,成为了可以运行各种复杂应用程序的“世界计算机”。
开发者可以在以太坊上构建和部署去中心化应用(DApps),包括去中心化金融(DeFi)、非同质化代币(NFT)、游戏、供应链管理等,正是这个强大的、可编程的平台,为各种代币的诞生提供了肥沃的土壤。
ERC20:以太坊上的“代币身份证”标准
在以太坊这个“世界计算机”上,如果每个项目都想发行自己的代币,并且每个代币的转账、授权、查询等功能都由开发者自己随意编写,那将会是一片混乱,开发者A的代币可能有一个transfer()函数,开发者B的代币可能叫send(),功能也可能有细微差别,这会导致钱包、交易所等第三方应用难以兼容和支持。
为了解决这个问题,以太坊社区提出了“以太坊请求评论”(Ethereum Request for Comments, ERC)的概念,这是一种技术标准的提案流程。ERC20(Ethereum Request for Comments 20) 是迄今为止最成功、应用最广泛的一个代币技术标准。
ERC20标准规定了一个代币合约必须实现的一套基本接口(函数)和事件,就像USB接口标准,无论哪个品牌生产的U盘,只要遵循USB标准,就能插入任何支持USB的电脑,同样,任何遵循ERC20标准的代币,都能被兼容ERC20标准的钱包、交易所和DApp无缝识别和使用。
ERC20标准要求实现以下核心功能:
- 供应量相关:
totalSupply(): 返回代币的总供应量。
- 余额查询:
balanceOf(address): 查询指定地址的代币余额。
- 转移功能:
transfer(address, uint256): 向指定地址转移代币。transferFrom(address, address, uint256): 从一个地址转移代币到另一个地址(通常用于授权场景)。
- 授权功能:
approve(address, uint256)