以太坊由Vitalik Buterin于2014年创立,定位为开源平台,用于启动去中心化应用程序(DApps)。Buterin创建新的区块链的动机很多是因为比特币协议缺乏灵活性。
自推出以来,以太坊区块链吸引了开发人员、企业和投资者,催生越来越多的用户启动智能合约和分布式应用程序。
在本文中,我们将研究ERC-20标准,该标准是创建代币的重要框架。尽管该框架仅用于以太坊网络,但它启发了其他区块链标准,例如币安链的BEP-2 。
什么是ERC-20 标准?
在以太坊中,ERC是以太坊请求注释的缩写。这些技术文档概述了以太坊的编程标准。请勿将它们与以太坊改进提案( EIP )混淆,以太坊改进提案(EIP)就像比特币的BIP一样,是对协议本身进行改进的建议。相反,ERC旨在建立应用程序和合同更易于交互的协议。
ERC-20 由Vitalik Buterin 和Fabian Vogelsteller 于2015年撰写,是基于以太坊的代币提出的另一种相对简单的格式。在遵循大纲的前提下,开发人员不需要重新开发,可以直接在行业已有的基础上架设使用。
创建新的ERC-20令牌后,它们会自动与支持ERC-20标准的服务和软件(软件钱包、硬件钱包和交易等等)。
应该注意的是,ERC-20 标准已经成为EIP(特别是EIP-20 )。但在最初的提议被广泛使用持续几年之后, “ERC-20”卡住了。
快速回顾以太坊代币
与ETH(以太坊的本机加密货币)不同,ERC-20 令牌不由帐户持有,仅存在于合同内部,就像一个独立的数据库一样。它指定令牌的规则(即名称、符号、可除数),并保留一个映射用户余额的以太坊地址列表。
要移动令牌,用户必须将交易发送到合同,要求合同将其部分余额分配到其他地方。例如,如果Alice 想向Bob 发送5,000 个币安学院代币,她会在代币智能合约中调用一个函数执行指令。
她的指令包含在看似常规的以太坊交易,该交易向代币合约支付了0 ETH。指令包含在交易的其他字段中,指定Alice 想要做什么– 比如在我们的示例中,将代币转移给Bob。
即使她不发送以太币,她仍必须支付其中指定的费用,才能将其交易包含在区块中。如果没有ETH,那么就需要在转让前先获取一些。
以下是在以太坊上的真实案例:有人下达BUSD合约指令。即使发送的值显示为0 ETH,您仍看到代币已转移,并且已经支付。
现在我们要加快步伐,以下我们要深入了解典型的ERC-20 合同结构。
ERC-20 代币的起源
要符合ERC-20,您的合同需要包括六个强制性功能:总供应量、余额、发送、发送证明、批准和回报。此外您可以指定可选功能,例如名称、符号和十进制。您可能可以很清楚德从它们的名称了解功能,如果没有办法也不要担心–我们将其一一解析。
以下是用以太坊的Solidity 语言来显示的功能。
总供应量
function totalSupply() public view returns (uint256)
当由用户调用上述函数时,将返回合同持有代币的总供应量。
余额
function balanceOf(address _owner) public view returns (uint256 balance)
与总供应量不同,余额使用地址作为参数。调用时返回该地址的代币持有量余额。请记住,以太坊网络上的帐户是公开的,因此只要知道地址,您就可以查询任何用户的余额。
发送
function transfer(address _to, uint256 _value) public returns (bool success)
发送将代币从一个用户转移到另一个。这里您提供收件地址和转账金额。
调用时,发送会触事件(在这种情况下为事件转移),基本上就是告诉区块链包括这个引用。
发送证明
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)
发送证明函数是发送的便捷替代方案,使分散应用程序中的可编程性更高。与发送类似,它曾经用于移动代币,但是这些代币不一定需要属于调用合同的人。
换句话说,您可以授权其他人合同– 来替您转移资金。比如订阅服务的付费,而您不想每天/每周/每月手动发送付款时,您可以让程序为您完成任务。
此函数触发的事件与发送相同。
批准
function approve(address _spender, uint256 _value) public returns (bool success)
从编程性的角度来看,批准是另一个有用的功能,可以限制智能合约从余额中提取的代币数量。没有它,您可能面临合同失效(或被利用),所有资金被窃取的风险。
再次以订阅为例。假设您有大量的币安学院代币,且您想要设置DApp的每周定期付款。由于您随时都忙于阅读币安学院的内容,因此您不想每周花时间手动创建交易。
您拥有大量的币安学院代币余额,远超出了支付订阅所需的费用。为了防止DApp花完您所有的资产,可以使用批准设置限额。假设您的订阅每周花费一个币安学院代币,如果您批准限额为二十个代币,那么您可以在五个月内自动支付订阅费用。
如果DApp 尝试提取您的所有资金或程式错误,您最糟的情况下只会损失二十个代币。这并不理想,但肯定比失去所有资产更具吸引力。
调用函数时,批准会触发核准事件,像发送事件一样,它会将数据写入区块链。
回报
function allowance(address _owner, address _spender) public view returns (uint256 remaining)
回报可以与批准函数结合使用。如果您已授予合同管理您的代币,您可以用它来检查能提取的代币量。例如,假设您的订阅服务已使用二十个已批准代币中的十二个,调用回报函数应该返回八个代币。
选则性功能
先前讨论的功能是强制性的。另外,名称、符号和十进制则是选择性的,但它们可以使您的ERC-20合同看起来更完整。它们允许您添加可读的名称、设置符号(即ETH、BTC、BNB)以及指定将划分多少小数位数。例如,用作货币功能的代币会比表示财产所有权的代币更易被分割。
在GitHub上查看这个案例,以了解真实合同中的这些元素。
ERC-20 的功能
汇总以上所有功能,我们获得了ERC-20合同。我们可以查询总供应量、查看余额、转移资金,并授予其他DApps 权限来为我们管理代币。
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代币的优点
可替代
ERC-20代币是可替代的 –每个单元可以互换。如果您拥有币安学院代币,无论您持有哪个特定代币都没关系。您可以交易给其他人,并在功能上维持相同,就像现金或黄金一样。
如果您的代币旨在成为某种货币,这就是个理想的选择。您不会想要具有明显特征的单元,因为这会使它们不可替代。会导致某些代币比别人具有更多– 或更少– 价值,就破坏了他们的目的。
弹性
正如我们在上一节中探讨的那样,ERC-20令牌具有高度可定制性,可以针对多种不同应用进行定制。例如用作游戏中的货币、程序的忠诚度积分、数字收藏品,甚至可以代表艺术品和财产权。
普及性
ERC-20 在加密货币中的普及性是将其用作蓝图极具说服力的理由。现在已大量推出代币兼容的交易所、钱包和智能合约。此外,开发人员的支持文档也很丰富。
ERC-20 代币的缺点
可扩展性
与许多加密货币网络一样,以太坊也无法幸免。按照目前的形式,它无法很好地扩展– 如果试图在高峰期发送交易会导致高额费用和延迟。如果使用ERC-20 代币而网络拥塞,其可用性会受到影响。
这不是以太坊特有的问题。而是在安全的分布式系统中都必须进行的权衡。社区计划在使用以太坊2.0 时解决这些问题:将实施以太坊血浆和以太坊Casper等的升级。
在区块链扩展性:侧链和支付渠道中了解扩展性问题的更多信息。
诈欺
尽管技术本身不成问题,但某些方面,发行代币的便利性可能是一个缺点。可以轻易创建ERC-20 代币– 有好有坏。
因此您应该谨慎投资。有许多金字塔和庞氏骗局伪装成区块链项目 自行研究后再进行投资,来确认投资机会是否合法。
ERC-20、ERC-1155、 ERC-223 和ERC-721 – 差别在哪里?
ERC-20 是第一个(也是迄今为止最受欢迎的)以太坊代币标准,但这绝不是唯一的。多年来也出现了许多其他协议,若不是对ERC-20 进行改进,便是试图实现完全不同的目标。
有一些是不常见的不可替代代币(NFT),在某些情况下,您实际上会受益于具有具有不同属性的唯一代币,例如您想标记独一无二的艺术品、游戏内资产等,这时这种合同类型可能更具有吸引力。
例如ERC-721标准被用于非常流行的加密猫DApp。这种合同为用户提供了程序接口让用户铸造自己的不可替代代币并编辑元数据(图像、说明等)。
ERC-1155 标准可以看作是对ERC-721 和ERC-20 的改进。它在单一合同中同时支持可替代和不可替代令牌标准。
其他选项(例如ERC-223 或ERC-621 )旨在提高可用性。前者执行保护措施以防止意外的代币转移。后者对增加和减少代币供应提供额外功能。
结语
ERC-20 标准多年来一直主导着加密资产领域。原因如下:因为相对容易,任何人都可以部署简单的合同来适应各种需求(功能性代币、稳定币等)。虽然ERC-20 确实缺少其他标准的某些功能,后续其他类型合同是否会取代ERC-20 还有待观察。
本文链接地址:https://www.wwsww.cn/ytf/6218.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。