ERC20是一种以太坊(Ethereum)区块链上的代币标准。它定义了代币合约必须遵循的一组规则和标准,以便它们可以在以太坊网络上无缝地运行。
ERC20标准规定了代币合约必须具备的一些基本功能,包括转移代币的能力、查询代币余额的功能、以及事件通知功能等。这些功能使得代币之间可以轻松地进行交易和转移。
ERC20标准的出现极大地促进了以太坊生态系统的发展。它使得开发者可以更容易地创建自己的代币,并且这些新代币可以在以太坊网络上与其他代币互相兼容。这种互操作性使得以太坊网络上的代币更加流动和便利。
ERC20标准也为代币发行者和用户提供了更多的信任和透明度。因为所有遵循ERC20标准的代币都遵循同样的规则,这就减少了用户在使用新代币时面临的风险。同时,代币发行者也可以更加容易地证明他们的代币是合法和符合标准的。
总的来说,ERC20标准的出现对以太坊生态系统和区块链技术的发展都起到了积极的推动作用。它为代币的发行和流通提供了标准化的框架,从而促进了数字资产的发展和应用。希望未来ERC20标准能够继续发展,为更多的代币发行者和用户带来更多的便利和机会。
1- ERC-20 代币是什么意思?
如果您了解以太坊,您可能会在某些地方看到 ERC-20,但 ERC-20 代币是什么意思?以太坊网络运行在三个核心元素上:ETH、gas 和允许在其之上构建代币的 ERC-20 代币标准。以太坊区块链的生态系统基于代币,您可以在其中出售、购买甚至交易它们。其中,ERC20 代币是最受欢迎的代币之一。
ERC-20 代币是什么意思?
ERC-20 代表 Ethereum Request for Comment (ERC),其中 20 代表区块链中的提案标识符。提案 ID 号表示在特定 ID 上创建、共享或转移令牌所需的规则列表,ERC-20 列表是使用最广泛的协议集。
ERC-20 令牌也可以用于表示忠诚度奖励和声誉积分等内容。想象一下,例如,一家在线旅行社在用户每次通过平台预订时都会向他们发放积分。这些积分可用于支付未来的预订费用。他们还可以为持有者提供额外的福利,例如 VIP 服务、预订平台产生的部分费用,甚至对平台的管理方式有发言权。重要的是,积分(代币)也可以与其他人交易,这一特性赋予了他们价值,而不仅仅是创造它们的生态系统。
一些代币,如 Uniswap 的 UNI 代币,设置为保持 ERC- 20 种其他加密货币(如 Binance Coin)已跳转到自己的区块链。
ERC-20 标准的好处
ERC20 标准有很多好处.它使开发人员能够在以太坊区块链上开发 DApp。它还有助于简化整个标准化过程。以下是 ERC-20 的优点列表:
- 代币实施使区块链开发人员变得容易。
- 有一个标准协议需要维护和遵循。
- ERC20 代币提供高流动性。
- 智能合约确保交易无风险。
我希望您现在了解 ERC-20 是什么代币手段和ERC0-20的好处。 ERC20 是最好的区块链协议之一。它管理着以太坊区块链上的数千个代币。此外,它对开发人员友好。任何人都可以创建 ERC20 代币并将其发布到区块链上。 ERC20 也可以定义为为 DApp 开发实用代币的一种方式。
---
2- 什么是ERC20?
ERC2015年11月提出,2017年9月正式标准化(Ethereum)代币(Token)的一个接口标准,这一标准引入了可替代代币的概念,即它们能够使每个代币与另一个代币在类型和价值上完全相同。Erc20功能可以等同于将Token转移账户以获取另一个账户Token钱包里的可用余额和网络上的可用余额Token总供应量。此外,它还批准了第三方账户使用账户Token其他功能,如数量。ERC-20代币的作用
ERC随着20代币的出现,一个不懂编程的用户可以在几分钟内在以太坊系统上发布一个新的代码,只要他复制在线标准代码Token,大大降低了代币发行的门槛。截至2020年,全球Token据估计,总数已超过5000种,其中95%以上是ERC由此可见,20代币,ERC20已经成为一种非常流行的代币格式。因为ERC20的标准token许多著名的数字货币使用规则的统一性和便利性ERC-20标准:包括Augur(REP),Maker(MKR)和OmiseGO等,还有的Defi(去中心化金融概念)用户拥有USDT可参与这些项目。
---
3- 区块链上的通行证:ERC-20标准的力量与演变
在数字货币的世界里,ERC-20不仅仅是一个技术术语,它是以太坊网络上的一张通行证,让无数的代币在这个生态系统中自由流动。想象一下,你手里有一把万能钥匙,无论是哪一扇门,都能打开——这就是ERC-20的魔力所在。
ERC-20:数字货币的通用语言
区块链上的通行证:ERC-20标准的力量与演变
ERC-20协议,就像是数字货币的通用语言,让所有的代币都能够“说同一种语言”。这个标准确保了代币之间的互换性,每一个ERC-20代币都和其他代币一样,没有区别。这种统一性让代币的转移、交易变得简单明了,就像是在你我之间传递一张纸条一样容易。
创新的起点:ERC-20的规则
到2019年为止,以太坊上已经有超过20万个ERC-20代币。这些代币遵循着一套共同的规则,就像是社会中的法律一样,确保了交易的公平和透明。这些规则不仅定义了代币如何被传递,还规定了如何批准交易,以及如何安全地访问代币。这套规则就像是一本指南,告诉开发者们他们的新代币将如何在以太坊的世界中运作。
超越ERC-20:ERC-777的诞生
然而,技术总是在进步,ERC-20也不例外。ERC-777标准的出现,就像是ERC-20的升级版,它解决了ERC-20的一些限制。想象一下,你不仅可以转账代币,还可以附带一条消息——这就是ERC-777的新特性。它增加了更多的交互性,让用户之间的沟通更加丰富。而且,它还允许用户设置操作员,这就像是给你的朋友一张银行卡和密码,让他们帮你管理账户。
ERC-20标准曾经引领了加密货币的繁荣,就像是一场革命。而今天,随着市场的不断发展和技术的不断进步,我们看到了更多的可能性。ERC-20和ERC-777,这两个标准就像是区块链世界的两个里程碑,标记着我们在这条道路上的探索和成长。
---
4- 什么是 ERC20
TokenToken,即通证,是以数字形式存在的权益凭证,它代表的是一种权利,一种固有和内在的价值。货币、积分、股票等权益证明,都可以由通证来代表。它代表着数字资产。下图就是在 opensea 上售卖的一些数字资产,这些资产也是通证。
试想,如果这样的一些通证没有标准化,就只能在自己的体系内流通。通证的标准协议是数字资产上链的关键,它定义了不同的通证资产接口,从而可以对不同类型的资产进行交易和交换。
什么是 ERC20?
ERC20 就是以太坊生态中的通证(token) 标准,允许任何实现该标准的且通过智能合约实现的通证从钱包到去中心化的交易所能够被复用。
举个例子,在以前,公司发行的积分,往往只能够在内部使用,仅代表公司生态内部的权益。而有了通证就不一样了。公司发行通证,对于公司来说,可以分配通证来进行融资,上交易所(类似于上市),激励用户使用公司产品等;对于持有人来说,根据通证持有占比分红,持有的通证可以任意交换,低买高卖赚取差价等。ERC20 为通证的发行、流通提供了统一的标准,以相同的方法发行、交易、交换通证,而不用关心这个通证的发行方将它用来做什么(这取决于发行方)以及怎么实现通证。
任何智能合约只要符合 ERC20 标准,就可以通过 ERC20 标准接口进行操作。这也意味着符合 ERC20 标准的合约 A,名字为 Token A,符号为 A,合约地址为 0x000..0a,合约 B,名字为 Token B,符号为 B,合约地址为 0x000..0b;A、B 都是 ERC20 通证,转移通证 A 与转移通证 B 在操作上对于用户来说没有任何区别,与下图的操作类似。
值得注意的是,任何人都可以发行一个与合约 A,名字、符号相同的符合 ERC20 标准的合约 C,来冒充合约 A,但合约 C 与合约 A 相比,合约地址是不同的,因此建议在交易时通过合约地址来区分 A、B,而不是简单的通过名字、符号区分。
下图是某交易所中的交易页面,其中所有的通证都是 ERC20 通证,符合 ERC20 标准,但都有各自的合约地址,并且可以类似股票一样交易。
类似的信息也可以在 etherscan 中查看
EIPs 中的定义
EIPs(Ethereum Improvement Proposals),以太坊改进提案,ERC20 便是 EIPs 中的一个标准。
ERC20 标准允许在智能合约中实现通证的标准API。该标准提供了转移通证的基本功能,并允许通证被批准,以便其他链上第三方可以使用它们。
下面是智能合约的接口定义。
pragma solidity ^0.8.0;
/**
* @dev EIP中定义的ERC20标准接口.
*/
interface IERC20 {
/**
* @dev 返回存在的通证数量
*/
function totalSupply() external view returns (uint256);
/**
* @dev 返回`account`拥有的通证数量
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev 从调用者的账户向`recipient`转移`amount`数量的通证
*
* 返回布尔值来指出操作是否成功
*
* 发出一个 {Transfer} 事件.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev 返回' spender '将被允许通过{transferFrom}代表' owner '
* 消费的通证的剩余数量。默认为零。
*
* 当 {approve} 或者 {transferFrom} 被调用的时候,这个值会随之改变
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev 允许`spender`花费`amount`数量的调用者的通证
*
* 返回布尔值来指出操作是否成功
* 发出一个 {Approval} 事件
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev 使用批准机制,从 `sender` 账户中转移 `amount` 数量的通证到 `recipient` 账户
* 并从调用者被批准花费的数额中扣除 `amount` 数量
*
* 返回布尔值来指出操作是否成功
*
* 发出一个 {Transfer} 事件
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
/**
* @dev 当通证从一个账户 `from` 转移至另一个账户 `to` 时,发出该事件。
*
* 注意 `value` 可能是 0
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev 当通过 {approve},新的批准花费的值被设置的时候,发出该事件。
* `value` 是新批准花费的值。
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface IERC20Metadata is IERC20 {
/**
* @dev 返回通证的名字
*/
function name() external view returns (string memory);
/**
* @dev 返回通证的符号
*/
function symbol() external view returns (string memory);
/**
* @dev 返回通证的小数位
*/
function decimals() external view returns (uint8);
}
注意,IERC20Metadata 中定义的接口是可选的,但在实践中往往都会实现。以 UNI 为例,它的名字是 Uniswap,符号是 UNI,小数位为 18。
一般而言,有两个 Transfer 事件比较特殊,需要注意一下。一个是在铸币(mint)时触发,由于是凭空产生,所以 from 被指定为 0x0000000000000000000000000000000000000000 地址;一个是在销毁时触发,to 被指定为 0x0000000000000000000000000000000000000000 地址,而销毁时的 to 地址采用 0x00...0 地址是为了便于统计销毁数据的约定做法,如果 to 地址是一个任何人都没有对应私钥的地址,仍然属于销毁,但这很难统计。
在 etherscan 中的 ERC20
以 BNB 为例,我们在 etherscan 中找到 BNB,并打开。
看一下它的概览页,其中 Max Total Supply 来自于接口 totalSupply,Decimals 来自于接口 decimals。
也可以点开 Transfers 查看转账记录,它就是通过 Transfer 事件查询得到的,假如你将你的 BNB 转移给某个人,你也能够通过交易哈希在这上面找到。
更可以方便的通过 contract 页面调用智能合约。
可以通过这个功能查看通证供应量,只需要轻轻点击 totalSupply 。
我们可以通过在右上角搜索框填入 0x0000000000000000000000000000000000000000 地址来作为过滤条件,过滤 Transfer 事件,以此来查看历史上的铸币/销毁事件。以 USDT 为例:
钱包中的 ERC20
以在 MetaMask 中使用 BNB 为例,上面的 etherscan 的 BNB 页面中可以获取到 BNB 合约的地址 0xB8c77482e45F1F44dE1745F52C74426C631bDD52,确认自己的 MetaMask 连接向 Ethereum Mainnet。
点击下方的 import tokens,将 BNB 合约地址粘贴进去,会自动获取 BNB 的相关信息,此时可以再次确认,确保没有倒入错误,点击 Add Custom Token 即可添加 BNB 到 MetaMask 中。
添加后,将出现在你的资产列表中。
标签: