内容

  • 介绍

  • ERC-20标准是什么?

  • 以太坊代币简介

  • ERC-20 代币是如何创建的?

  • ERC-20代币有哪些功能?

    • 稳定币

    • 安全令牌

    • 实用代币

  • 是否可以开采 ERC-20 代币?

  • ERC-20代币的优点和缺点

    • ERC-20 代币的好处

    • ERC-20代币的缺点

  • ERC-20、ERC-1155、ERC-223、ERC-721 - 有什么区别?

  • 概括


介绍

以太坊由 Vitalik Buterin 于 2014 年创立,旨在成为运行去中心化应用程式 (DApp) 的开源平台。在创建新的区块链时,Buterin 考虑到了比特币协议灵活性不足的问题。

自推出以来,以太坊区块链吸引了许多开发者、公司和企业家,并催生了运行智慧合约和分散式应用程式的用户产业不断增长。

在本文中,我们将了解 ERC-20 标准 - 创建代币的基础。该标准是专门为以太坊网路开发的,但也成功地启发了其他区块链标准,例如 BEP-2 币安链。


ERC-20标准是什么?

以太坊中的 ERC 是一项改进网路提案的请求(英文:Ethereum Request for Comments)。 ERC 是概述以太坊程式设计标准的技术文件。这些不应与以太坊改进提案(EIP)混淆,后者与比特币的 BIP 一样,提出了对协议本身的改进。 ERC 的目的是建立协议,使应用程式和合约更容易相互互动。

ERC-20 由 Vitalik Buterin 和 Fabian Vogelsteller 于 2015 年创建,旨在提供一种相对简单的格式来在以太坊上创建代币。透过依赖现有标准,开发人员可以节省时间和精力。借助 ERC-20,他们可以创建新的代币,而无需担心相容性和安全性。

新的ERC-20代币将与支援该标准的所有服务和软体(软体钱包、硬体钱包、交易所等)相容。

需要说明的是,EIP(即EIP-20)是基于ERC-20标准开发的。由于该标准的广泛使用,这种情况发生在发布几年后。但即使多年后,「ERC-20」这个名字仍然具有相关性。


以太坊代币简介

与 ETH(以太坊的原生加密货币)不同,ERC-20 代币不会储存在帐户中。它们仅存在于合约内部,这是一种自治资料库。合约定义了代币的条款(例如名称、符号、可分割性)。它还包含一个将用户的余额与其以太坊地址相符的清单。

要移动代币,用户必须向合约提交交易,请求将其部分余额转移到另一个位置。例如,如果 Alice 想向 Bob 发送 5,000 个 BinanceAcademy 代币,她会在智能合约中运行一个函数,要求他这样做。


Пользователи, взаимодействующие со смарт-контрактом


Ее запрос помещается внутрь обычной на вид транзакции Ethereum, с которой взимается 0 ETH в пользу смарт-контракта. Запрос добавляется в дополнительное поле в транзакции, где указывается, что именно Алиса хочет сделать –  в нашем случае передать токены Бобу.

即使她不发送以太币,她仍然需要支付以以太币计价的费用,才能将她的交易添加到区块中。如果她没有 ETH,她需要在进行交易之前购买它。

以下是 Etherscan 上此类流程的真实范例:有人请求 BUSD 合约。我们看到代币已被转移并支付了费用,尽管其金额为 0 ETH。

我们现在可以更深入地研究 ERC-20 合约的结构。 


ERC-20 代币是如何创建的?


Иллюстрация создания токена ERC-20


Для совместимости с ERC-20 ваш контракт должен включать в себя шесть обязательных функций: totalSupply, balanceOf, transfer, transferFrom, approve и allowance. Кроме того, вы можете добавить дополнительные функции, такие как name, symbol и decimal. Из названий функций можно понять их назначение. Далее мы разберем каждую из них подробнее. 

下面介绍了用为以太坊创建的 Solidity 语言编写的函数。


总供应量

函数totalSupply()公共视图回传(uint256)

当使用者提示时,上述函数会显示合约中的代币总数。


余额 

函数balanceOf(地址_所有者)公共视图传回(uint256余额)

与totalSupply不同,balanceOf函数使用参数(位址)。它根据请求显示地址令牌的余额。请记住,以太坊帐户是公开的,因此只要您知道任何用户的地址,您就可以查询他们的余额。


翻译

函数传输(address _to, uint256 _value) 公共回传 (bool success)

转帐功能将代币从一个用户转移到另一个用户。要使用它,您需要指定收件人地址和转帐金额。

传输函数触发一个事件(在我们的例子中为事件传输),该事件告诉区块链包含对其的引用。


从转移

函数transferFrom(位址_from,位址_to,uint256_value)公共回传(布林成功)

TransferFrom 函数是转帐函数的更方便的替代方案,它在去中心化应用程式中提供了更好的可程式性。与转帐一样,它用于移动代币,但它们不一定属于访问合约的人。 

换句话说,您可以授权其他人或其他合约代表您转移资金。另一个用例涉及基于订阅的服务的自动付款,以防您不想每天/每周/每月手动发送付款。该程式将为您执行此操作。

此函数触发与传输相同的事件。


核准

函数批准(地址_spender,uint256_value)公共返回(布林成功)

从可程式性的角度来看,批准是另一个有用的功能。在它的帮助下,您可以限制智能合约可以从您的余额中提取的代币数量。如果没有它,合约就有被滥用的风险:有人可能会利用它来达到自己的目的或窃取您的所有资金。 

让我们看一个订阅模型的范例。假设您有大量 BinanceAcademyToken,并且希望为您的 DApp 串流服务设定每周付款。您已经在日以继夜地学习币安学院的内容,而且您不想每周花时间手动建立交易。

假设您有大量的 BinanceAcademyTokens 供应,远远超过您的订阅费用。为了防止DApp服务耗尽它,您可以使用approve功能设定限制。例如,您的订阅费用为每周 1 个 BinanceAcademyToken。如果您将最大金额限制为二十个代币,则订阅可以在五个月内自动支付。

在最坏的情况下,如果 DApp 尝试提取您的所有资金或发生意外错误,您只会损失 20 个代币。此选项并不能消除可能的问题,但可以保护您免于损失所有资产。

当呼叫批准函数时,会触发批准事件。与转帐事件一样,它将资料写入区块链。


津贴 

函数 grant(address _owner, address _spender) 公共视图回传(剩余 uint256)

津贴功能可以与核准功能结合使用。一旦您授予合约管理其代币的权限,您就可以使用此功能来检查它仍然可以注销多少代币。例如,如果您的订阅使用了 20 个允许的代币中的 12 个,那么当您呼叫限额函数时,应该会显示数字 8。


附加功能

我们上面讨论的功能是强制性的。名称、符号和小数函数是可选的,但可以改进您的 ERC-20 合约。它们使您能够添加清晰的名称、设定符号(例如 ETH、BTC、BNB)并指定代币可以分为多少位小数。例如,用作货币的代币可能比代表所有权的代币从更大的可分性中受益更多。


您可以在 GitHub 上的本范例中看到真实合约中的这些元素。


ERC-20代币有哪些功能?


Иллюстрация различных вариантов использования токенов ERC-20


如果我们结合以上所有功能,我们就得到了 ERC-20 合约。它可用于查询代币的总供应量、检查余额、转移资金以及授予其他 DApp 管理代币的权限。

ERC-20 代币的主要优点是灵活性。使用它们,您还可以根据需要实现附加功能并设定某些参数。


稳定币

稳定币(与法定货币挂钩的代币)通常使用 ERC-20 代币标准。我们之前提到的 BUSD 合约交易就是一个例子。大多数稳定币都以这种格式提供。

法币支持的稳定币的发行人持有欧元、美元等储备。这意味著,如果金库中有 10,000 美元,发行人可以创建 10,000 个代币,每个代币价值 1 美元。

这在以太坊中很容易实现。发行人推出 10,000 个代币的合约。然后,它们将分发给用户,并有可能进一步以法定货币兑换。 

用户可以使用代币来支付商品和服务或在 DApp 应用程式中使用它们。此外,用户可以选择向发行人请求立即交换代币。在这种情况下,发行人会销毁返回的代币(它们变得不可用)并从其储备中提取等值的法币。

正如我们已经说过的,管理此过程的合约相对简单。然而,推出稳定币涉及物流、法规合规等诸多外部因素。


安全令牌

安全代币类似于稳定币。在合约层面,它们可以被认为是相同的,因为它们的工作方式相同。但对于发行人来说却有显著差异。证券型代币代表证券(股票、债券或实体资产)。它们经常(尽管并非总是)赋予持有者对业务或产品的一些兴趣。


实用代币

实用代币是迄今为止最常见的代币类型。与前两个选项不同,它们不受任何支援。如果资产支持的代币就像航空公司股票,那么实用代币更像是常旅客忠诚度计划:它们服务于一个目的,但不提供其他价值。实用代币可以有多种用途。因此,它们可以充当游戏内货币、去中心化应用程式的燃料、忠诚度积分等等。


➠ 准备好开始使用加密货币了吗?在币安购买以太币!


是否可以开采 ERC-20 代币?

Пользователи могут майнить эфир (ETH), но не токены – токены создаются. При запуске контракта разработчики распределяют токены в соответствии с имеющимися планами и дорожной картой.

这通常是透过首次代币发行 (ICO)、首次交易所发行 (IEO) 或证券型代币发行 (STO) 来完成。您可能会遇到不同的缩写,但本质上它们都非常接近。投资者将以太币发送到合约地址并收到新的代币作为回报。收到的资金将用于资助该项目的进一步开发。随著专案的发展,用户希望能够(立即或稍后)使用他们的代币或转售它们以获取利润。

代币分配过程不需要自动化。许多众筹活动允许您使用多种数位货币(例如 BNB、BTC、ETH 和 USDT)进行付款。然后根据支付的金额,补充指定地址的用户余额。


ERC-20代币的优点和缺点

ERC-20 代币的好处

互换性

法定货币是可替代的,因为每个单位与另一个等值单位没有区别。如果您拥有 BinanceAcademyToken,那么您拥有哪种特定代币并不重要。此类代币可以出售给其他用户,它们的功能将保持相同,就像金钱或黄金一样。

如果你想使用代币作为货币,这非常方便。在这种情况下,您不需要具有独特功能的单一单元,这些功能使它们不可互换。差异可能会导致某些代币变得比其他代币更有价值(或更少),这反过来又会扰乱其主要功能。


浮动利率

正如我们在上一节中所确定的,ERC-20 代币具有高度可自订性,可以适应多种用途。例如,它们可以用作游戏内货币、忠诚度计划、数位收藏品,甚至用作艺术品和产权。


受欢迎的

ERC-20 在加密货币行业的流行导致使用该协议作为创建新代币的基础。这就是为什么有许多交易所、钱包和智能合约已经与新发布的代币相容。此外,他们还获得广泛的开发人员支援并拥有所有必要的文件。 


ERC-20代币的缺点

可扩展性

与许多加密货币网路一样,以太坊也无法避免随著网路发展而出现的问题。该网路目前遇到可扩展性问题,因此尝试在繁忙时间发送交易会导致高额费用和延迟。如果您在网路拥塞时启动ERC-20代币,代币的可用性可能会受到影响。

面临这个问题的不仅是以太坊。分散式系统必须做出权衡才能实现安全性。社群计划在转向以太坊 2.0 时解决这个问题,它将实施以太坊 Plasma 和以太坊 Casper 更新。

请参阅我们的文章区块链可扩展性 – 侧链和支付管道,以了解有关可扩展性问题的更多资讯。


诈欺罪

虽然这不是技术本身的问题,但发行代币的便利性可以被认为是缺点。创建一个简单的 ERC-20 代币只需最少的努力,这意味著任何人都可以做到,包括用于犯罪目的。

因此,您需要非常小心您的投资。有许多庞氏骗局和传销骗局伪装成区块链专案。 投资前,要仔细研究一切,先决定专案是否可靠。

 

ERC-20、ERC-1155、ERC-223、ERC-721 - 有什么差别?

ERC-20 是第一个(并且仍然是最受欢迎的)以太坊代币标准,但它远非唯一的标准。多年来,出现了许多其他协议,这些协议对 ERC-20 进行了改进或尝试实现其他目标。

一些不太常见的标准用于创建不可替代的代币 (NFT)。根据使用目的,您可能需要具有不同属性的独特令牌。如果您想对一件独特的艺术品、游戏资产等进行代币化,您可以使用其中一种合约类型。

例如,ERC-721标准被用于极为流行的DApp CryptoKitties。此类合约为用户提供 API 来创建自己的不可替代代币并对元资料(图像、描述等)进行编码。 

ERC-1155标准可以被认为是ERC-721和ERC-20的改进。该标准在单一合约中支援可替代和不可替代的代币。

其他选项,例如 ERC-223 或 ERC-621,旨在提高可用性。 ERC-223 采取预防措施来防止代币的意外转移。 ERC-621 提供了增加和减少代币供应的附加功能。

要了解有关 NFT 的更多信息,请务必查看加密收藏品和不可替代代币 (NFT) 指南。


概括

ERC-20 标准多年来一直主导著加密资产领域,这并不奇怪。任何人都可以轻松部署用于各种目的的简单合约(实用代币、稳定币等)。然而,ERC-20 缺乏其他标准中存在的一些功能。对于未来其他类型的合约是否会取代它的问题,也没有确切的答案。