主页 > imtoken冷钱包官方 > 简单了解ERC-20代币标准
简单了解ERC-20代币标准
什么是 ERC-20 代币?
ERC-20 代币是仅在以太坊平台上设计和使用的代币。
它们遵循一套标准,以便可以共享、交换其他代币或转移到加密钱包。
以太坊社区制定了这些标准,其中包含三个可选规则和六个强制性规则。
选修的
所需功能
使困惑? 我们先往下看。
首先,什么是以太坊?
以太坊 [1] 是一个分散的计算机网络,具有两个基本功能。
它们是:记录交易的区块链,以及生成智能合约的虚拟机。
由于这两个特性,以太坊能够支持去中心化应用程序(DApps[2])。 这些 DApps 建立在现有的以太坊区块链之上,承载着它的底层技术。 作为回报以太坊代币生成,以太坊向开发人员收取其网络中的计算能力,仅以唯一的跨平台货币 Ether 支付。
根据其用途,DAPP 可能会创建一个 ERC-20 代币用作货币、公司股份、忠诚度计划中的积分,甚至所有权证明,例如一定数量的黄金或契约屋。
智能合约在哪里适合所有这些?
智能合约用于创建 ERC-20 代币。
它们还用于促进代币交易和记录账户中的代币余额。
智能合约是根据 If-This-Then-That (IFTTT) 逻辑用编程语言“Solidity”编写的。
把它想象成一台自动售货机。
智能合约创建令牌后会发生什么?
这就是 ERC-20 的用武之地。
令牌创建后,可以交易、使用或赠与他人。
ERC-20 是以太坊网络上所有代币使用的通用语言。 它允许将一种代币换成另一种代币。
假设我们要建立一个加密的赌场。 就像在实体赌场一样,我们希望我们的玩家为了简单起见而使用我们的筹码。
因此,玩家用他们的法定货币兑换我们的代币,然后前往扑克桌。
得到类比,但这究竟是如何工作的?
让我们看看我们“加密赌场”示例中的 ERC-20 的每条规则。
它们对开发人员非常重要。
让我们从可选规则开始:
代币名称:Blu Chip
符号:蓝队
十进制:2*
*我们希望我们的代币是可分割的,这样玩家的最低赌注是 0.01 BLU。 我们可以将小数保留为 0 并使 1 BLU 成为最小值,或者将小数提高到 18,使 0.000000000000000001 BLU 成为可能的最低除法,但让我们保持简单。
现在是强制性规则:什么是 [totalSupply]?
[totalSupply] 标识创建的 ERC-20 令牌总数。
我们的赌场首先需要知道有多少 BLU 代币在流通。 假设我们的扑克牌桌上共有 10 个蓝队和 10 个玩家。
[转会]呢?
[transfer] 允许从总供应量中转移一定数量的代币到用户账户。
玩家必须在游戏开始前从经销商处收到他们的 BLU。
每个玩家获得 1 个 BLU。
[balanceOf] 函数有什么作用?
当执行 [balanceOf] 函数时,它会返回给定地址在其帐户中的代币数量。
在我们扑克游戏的第一手牌中,有 5 名玩家看了自己的牌并决定不玩。 剩下的 5 个决定下注 0.5 BLU。 使用 [balanceOf],我们看到五名玩家有 1 BLU,五名玩家有 0.5 BLU。
我如何从其他用户那里获得 ERC-20 代币?
[transferFrom] 是一个允许用户将代币转移给另一个用户的功能。
好消息! 您赢得第一手牌并从其他玩家那里获得 2.5 BLU。
但是为了从他们那里拿走它,你需要 [transferFrom]。 没有这个,有什么办法可以阻止别人偷走你的蓝队?
有没有办法伪造令牌?
不,因为 [approve] 根据令牌的总供应量检查交易。
它确保没有遗漏或多余的东西。
保护我们假设的扑克游戏完整性的另一种方法是确保没有人将额外的 BLU 带到牌桌上。 因此,[approve] 通过检查桌上的 BLU 总数是否等于 10 来允许交换。
我可以撒谎说我拥有的代币比实际多吗?
不。
在交易发生之前,[allowance] 函数会检查用户账户的余额,如果没有足够的代币将取消交易。
我们的“加密赌场”不允许借贷,因此我们需要确保每个玩家都有足够的 BLU 来下注。 如果他们只有 1 个 BLU,那么他们不能下注 2 个 BLU。
ERC-20有什么好处?
基本上,它使一切变得更容易。
在 ERC-20 代币出现之前,开发人员可能会在代码中使用其他术语——例如,[totalAmount] 表示一种代币,[totalNumber] 表示另一种代币。
交易所和钱包需要建立自己的平台来容纳每个代币代码。
根据通用标准,新代币可以放在交易所,或在创建后自动转移到钱包。
ERC-20 还使得创建新代币变得非常容易,这就是以太坊 [3] 成为 2017 年最受欢迎的 ICO 平台的原因。
ERC-20有问题吗?
ERC-20 并不完美。
ERC-20 代币标准没有解决一些问题。
在某些情况下,当代币被用作智能合约的支付而不是使用以太币时以太坊代币生成,它们可能会被无意中销毁。 结果估计损失了 300 万美元[4]。
为了修复此错误,以太坊社区目前正在制定新标准
命名为 ERC-223[5]。 但是,这些标准与 ERC-20 不兼容,因此鼓励开发人员继续使用 ERC-20,直到实现兼容。
2018年4月,部分交易所因batchOverflow[6]漏洞暂停以太坊代币充提业务。 [7] 它被描述为“经典整数溢出问题”,可能允许攻击者“拥有大量令牌”。 值得注意的是,[8] 目前还没有传统的安全方法可以修复这些漏洞。
有哪些现实世界的例子?
以太坊平台上的每个代币都是 ERC-20 代币。
截至发稿时序列号为[9]82815,让我们来看看其中的一些。
EOS[10] (EOS) 是第五大加密货币,目前市值接近 120 亿美元,正试图建立一个可以利用区块链间通信的网络,[11]
TRON [12] (TRX) 在撰写本文时在所有加密货币中排名 [13] 第十,被描述为“数字娱乐行业的开源协议”。 它旨在推出一个内容平台,该平台具有一个连接所有创建不同类型内容的人的生态系统。
“企业级公共区块链平台”Wei[14]Chain(VEN),市值排名第 15[15] 的加密货币,正计划实施物联网(IoT)技术,为每个产品提供私钥,以便它可以跟踪他们。
引用链接
[1] 以太坊:
[2] 去中心化应用:
[3] 变成:
[4] 损失:
[5] ERC-223:
[6] batchOverflow:@peckshield/alert-new-batchoverflow-bug-in-multiple-erc20-smart-contracts-cve-2018-10299-511067db6536
[7] 暂停基于以太坊的代币的存取款。 :
[8] ,: @peckshield/alert-new-batchoverflow-bug-in-multiple-erc20-smart-contracts-cve-2018-10299-511067db6536
[9] 编号为:
[10] EOS:
[11] 第五大加密货币试图建立一个可以利用区块链间通信的网络:
[12] 波场:
[13] 排名:
[14] 仅:
[15] 排名第15位: