代币标准是一份已发布的规范,是针对创建代币的智能合约接口的一套书面要求。接口是指合约的函数和事件。按照该接口编写的软件可以与遵循该接口的合约协同工作。代币是通过智能合约(一种存储在区块链上的程序)在现有区块链上发行的单位。
代币标准定义了什么?又留下了哪些开放部分?
代币标准定义了代币合约的接口,而代币合约是创建并追踪代币的智能合约。该接口列出了代币合约提供的函数、每个函数接受和返回的内容,以及代币合约记录的事件。
函数是代币合约提供的、可由交易或其他合约调用的具名操作。交易是用户发送给区块链的请求,例如转移代币的请求。区块链是一种依次追加新条目的共享记录。事件是代币合约在发生变化时记录在区块链上的通知,以便软件能够跟踪这些变化。
例如,一个标准可以声明一个返回某地址余额的函数,以及一个将代币转移到另一地址的函数。地址是区块链上用于标识用户或智能合约的标识符。余额是某地址持有的代币数量。
值得注意的是,ERC-20、ERC-721、ERC-1155 以及 BEP-20 均未定义与代币相关的任何权利或代币的法律地位。它们也没有定义代币的内容,即代币所指向的数据或文件,也没有定义代币合约其余代码的内容,而是把内容和其余代码留给代币合约的作者去决定。代币标准本身并不创建代币,遵循该标准的代币合约才会创建代币。
为什么会有代币标准?
ERC-20 和 BEP-20 等代币标准的存在,是为了让软件能够通过统一接口重复使用代币。软件是指调用代币合约函数并读取其事件的应用程序或其他智能合约。ERC-20 文本将其目标描述为让其他软件通过标准接口重复使用代币,BEP-20 文本也给出了类似的目标。
兼容性是指一个软件无需为了配合另一个软件而进行修改,就能与之协同工作。代币标准为软件提供了一套统一的函数名称和事件,使软件能够以相同的方式调用和读取遵循该标准的代币合约。只有当软件支持该接口——即软件是按照该标准所命名的函数编写的——标准才能对软件起到帮助作用。
ERC-20、ERC-721、ERC-1155 和 BEP-20 各自规定了什么?
ERC-20、ERC-721、ERC-1155 和 BEP-20 是代币标准的 4 个例子。同质化是指代币的各个单位可以互换,即一个单位与另一个单位完全相同。非同质化是指代币合约能够区分每个代币,因此没有任何两个代币是可以互换的。非同质化代币(NFT)词汇表条目解释了非同质化代币的概念。
ERC-20 规定了什么?
ERC-20 是以太坊上用于同质化代币的标准。遵循 ERC-20 的代币合约为每个地址维护一个余额,其接口包括 balanceOf(返回某地址的余额)和 transfer(将代币转移到另一地址)。函数 approve 允许一个地址授权第二个地址(即支出方),在一次或多次转账中,从第一个地址的余额中转移最多一定数额的代币。函数 transferFrom 是支出方用来转移这些代币的函数,而 allowance 返回支出方仍可转移的数额。事件 Transfer 和 Approval 分别宣布一次转账和一次授权,ERC-20 中没有任何函数涉及代币 ID,这正是 ERC-20 与 ERC-721、ERC-1155 的区别所在。
ERC-721 规定了什么?
ERC-721 是以太坊上用于非同质化代币的标准。遵循 ERC-721 的代币合约会为每个代币分配一个代币 ID,这是一个用于将该代币与合约中其他代币区分开来的数字。代币合约还会记录哪个地址控制着每个代币 ID。ERC-721 与 ERC-20 共享一些名称,例如 balanceOf 和 Transfer。
ERC-1155 规定了什么?
ERC-1155 是一种用于管理以太坊上多种代币类型的代币合约标准,其标题为 "Multi Token Standard"(多代币标准)。在 ERC-1155 中,代币 ID 标识一种代币类型,即代币合约所管理的一种代币,转账函数都需要传入代币 ID。该标准还声明了批量函数,这些函数接受代币 ID 列表和数额列表,使得一次调用就能涉及多种代币类型。ERC-20 涵盖同质化代币,ERC-721 涵盖非同质化代币,而 ERC-1155 允许在同一个合约中同时存在同质化代币、非同质化代币,或两者兼有。
BEP-20 规定了什么?
BEP-20 是 BNB 智能链(一条与以太坊分开的区块链)的代币标准。BEP-20 描述了该链上代币合约的标准接口,BEP-20 文本列出的函数和事件名称与 ERC-20 相同。BEP-20 文本指出,BEP-20 衍生自 ERC-20。
ERC-20、ERC-721、ERC-1155 和 BEP-20 有何区别?
ERC-20、ERC-721、ERC-1155 和 BEP-20 在"一个单位是什么"、"代币合约追踪什么"以及"标准在哪里规定"这几个方面各不相同。
ERC-20 与 ERC-721 对比:合约追踪的内容有何不同?
ERC-20 与 ERC-721 的区别在于"一个单位是什么"以及"代币合约追踪什么"。ERC-20 的一个单位是众多可互换单位中的一个,代币合约所回答的问题是某个地址持有多少单位。ERC-721 的一个单位是带有代币 ID 的单一代币,代币合约所回答的问题是某个代币 ID 由哪个地址控制。ERC-721 词汇表条目列出了 ERC-721 的函数和事件。
BEP-20 与 ERC-20 对比:两者有何关系?
根据 BEP-20 文本,BEP-20 衍生自 ERC-20,它是为 BNB Chain(币安智能链)编写的,而 ERC-20 则是为以太坊编写的。BEP-20 文本规定函数 symbol 和 decimals 为必需项,而 ERC-20 文本则将它们标记为可选项。BEP-20 文本还指出,BEP-20 对 ERC-20 进行了扩展,以支持跨链转账,即代币从一条区块链转移到另一条区块链。本词汇表条目不涉及此类转账的具体实现方式。
代币标准是如何编写的,又是针对哪条区块链?
以太坊的代币标准以以太坊改进提案(EIP)的形式编写,这是面向以太坊社区的设计文档。ERC 是 EIP 中定义应用层标准(代币标准也在其中)的分类。一个 EIP 会经历 EIP-1 所定义的多个阶段,例如 Draft(草案)和 Review(审核),被接受为标准的 EIP 状态为 Final(最终版)。
ERC-20、ERC-721、ERC-1155 和 BEP-20 分别是为特定区块链编写的。ERC-20、ERC-721 和 ERC-1155 文本均指明了以太坊,而 BEP-20 文本作为一份 BNB 演进提案(BEP),是为 BNB 智能链编写的。其他区块链也可以发布各自不同的代币标准。
遵循同一标准的两个合约仍可能存在差异吗?
遵循同一标准的两个代币合约在其他行为上仍可能有所不同,因为标准只定义接口,并不定义其余代码。标准还可以包含可选部分,因此一个代币合约可以提供某些函数,而另一个代币合约则可以省略这些函数。
ERC-20 文本将函数 name、symbol 和 decimals 标记为可选。ERC-721 和 ERC-1155 文本都各自描述了一个可选的元数据扩展,其中元数据是描述代币的数据。ERC-721 扩展增加了三个函数,而 ERC-1155 扩展增加了一个函数,即 uri。
2025年11月27日











