现如今,任何人都可以在以太坊的区块链上去创建一个智能合约并发布自己的代币。直到最近,一枚特殊币种的实施完全委托给了该币种的开发者,同时它的这种实验性质往往伴随了一些相关问题——这些问题包括了冻结投资者资金、合约被破解或一些无法预测的网络操作问题。
在这个处于“西大荒(Wild West)”的氛围中,新的以太坊协议正在创建中——它旨在纠正以前版本的错误。也许其中的一个协议将在今年年底取代ERC20,使用户所使用的区块链可以更加可靠和简单。
ERC20::dapp之王
用户友好的逻辑和简化的结构使以太坊成为一个项目方高度需求的框架,几乎83%的项目选择了将以太坊区块链作为其底层结构。
图片来源:ICOWatchList
有十几个主要的代币都是基于ERC20标准搭建的,同时每天也大约有400种新代币会基于以太坊发行。虽然这些数字听起来并不让人感到有多么不真实,但Coinmarketcap的评级和Ethereum token的图表显示,这些代币的总市值已经达到了约为526亿美元。此外,这一发行代币的过程似乎是完全不受控制的,因为至今仍没有相关立法来监管代币的发起者以及发行代币的频率。
图片来源:Ethplorer
在阅读有关以太坊的信息时,您可能会看到对“ERC20”的引用。ERC20是以太坊平台中最常见、最广泛使用的标准。维基百科给出了以下定义:
ERC代表以太坊请求评论(Ethereum Request Command),20是分配给这个请求的数字。
ERC20标准于2015年首次推出。虽然它最初只被程序员使用,但是该标准在仅仅两年内就得到了更广泛的应用。该标准描述了在其基础上开发和操作硬币的规则。这样的标准规范是加密行业的一种创新解决方案,因为直到那时还没有一个统一的编程标准——它解决了新代币的创建者遇到的主要问题。
但是它所涉及的问题是,在引入这一标准之前发行的所有币种都是完全独特的,这大大增加了交易所、钱包和其他用于与新标记交互的应用程序的工作。每次开发者都必须在他们的软件中更改或添加一个层,这样新的币种就可以稳定地工作并与它们的系统兼容。
在2017年,由于代码的统一性以及与各种应用程序和平台的简化集成,ERC20标准开始在各地得到应用。它引发了初始硬币发行(ICO)初创公司的爆炸式增长,这些公司现在有了进入交易所和克服流动性问题的必要工具。
图片来源:Smith&Crown
在ERC20实施之后,加密货币市场中的ICO初创公司数量大幅增加,截至2018年5月,各方共发行了近86,000种代币。毫不奇怪的是,项目不再需要为代币的问题和相关操作区创建自己的规范和准则,或者为它们与不同区块链的兼容性去制定标准。所有这些已经在ERC20标准中被描述,同时还引入了六个主要函数:
- 硬币总量
- 在特定地址余额中的硬币数量
- 用于从主地址向个人用户或ICO参与者的地址发送代币的函数
- 在用户之间发送代币的函数
- 用于检查具有提取资金能力的智能合约上剩余代币的函数
- 确保发送方在交易发送时有足够的代币
智能合约:新经济的诞生
ERC20标准成功的主要秘诀是其引入了智能合约。虽然在比特币区块链中已经实现了智能合约的一些基本原则,但比特币中的功能非常有限,它不适合为单个的dApps创建代币。这就是为什么以太坊可以被认为是第一个充分开发了智能合约概念并实施它的平台。
图片来源:Openxcell.com
智能合约的主要思想如下:当用户发送代币到接收方的地址时,发送方的地址余额会减少,而接收方的地址则会增加相同数量的代币。这有什么特别之处呢?从技术上讲,没有人向任何人发送任何东西。事实上,智能合约被告知有关代币所有者余额中确定数量的代币变化。结果是代币从发送方的钱包中消失并出现在可接收方的地址中。正是由于这个系统,网络中的节点不再需要不断地对数据库进行检查。它们现在所需要做的就是核实所有合约条款的准确性,因为双方是(发送方和接收方)完全通过智能合约来进行交互的。
呼吁进行改变
由于ERC20标准是基于以太坊协议的第一个版本,随着时间的推移,许多问题和缺点逐渐被人们所揭开。例如,用户不小心将代币发送到一个智能合约的地址,而对这笔交易进行滚回是不可能的。这是因为ERC20代币的标准实施涉及两种传输代币的方式:
- 传递函数允许用户将代币从一个地址发送到另一个地址
- 将代币发送给智能合约的函数组合(approve + transferFrom)
应该指出的是,事件处理是编程中众所周知的一种标准实践。因此,在以太坊网络中资金的转移工作中——转账处理有可能会发现错误。在这种情况下,交易被认为是在资金成功转移和没有任何错误的情况下完成的。否则智能合约就将取消交易。如果你向一个不兼容的智能合约发送以太币的话,那么这个事件处理将帮助你避免资金损失,因为这个交易将在接收方处被拒绝。
根据ERC20标准,代币传输应该被认为是一个事件,但是传递函数不允许对这笔交易进行处理,因为它是在没有任何预先检查的情况下增加了接收方的余额。如果接收方是一个智能合约并且使用传递函数来发送代币的话,那么合约无法识别交易时肯能会导致问题的出现。这将导致传递函数出现意外行为并产生不可预测的结果,即代币可能会丢失并永久冻结。
那以太坊的创建者是如何解决这个问题的呢?答案其实很简单——开发者引入了approve和transferFrom函数,它可以赋予用户在发送交易时允许智能合约提取资金的权利,这样就排除了任何可能发生的错误。
值得注意的是,开发者本身并不认为这是一个错误:
这不是一个错误,而是用户的错误。它不是一个错误或漏洞,而是标准ERC20设计的一个特性。
然而,这个至今问题仍然存在——在去年,ICO的参与者总计损失了超过400万美元。一个非常明显的案例是EOS代币发售智能合约,它从无法收回资金的用户那里吞到了约210万美元。
在其它吞掉投资者资金的合约包括了Tronix ——40万美元,Golem和ZRX——超过20万美元,而OmiseGo已经冻结了投资者15万美元。而一些新用户似乎没有从别人的错误中吸取教训。
ERC223:更正ERC20的错误
创建者:Dexaran
类型:标准代币
为了解决以太坊第一个版本的协议漏洞,一个名为Dexaran的用户开发了ERC223标准,该标准迫使ERC20标准的行为方式与将ETH转移到智能合约时的行为方式相同。现在有了这种标准,在传递函数中出现错误,当智能合约不支持这种加密货币时,交易就会被取消。为此,它引入了两种新函数:
- 传递函数取代旧的transfer和transferFrom函数
- 目标智能合约的tokenFallBack函数决定了发送币种的类型
对于代币来说,通常会提出新的标准。作为一个规则,它们会被加密社区和区块链开发者进行仔细检查。虽然它们中的一些标准不是很出名,但仍然有可能取代ERC20。
ERC721:加密猫CryptoKitties和其他收藏品
创建者:Dieter Shirley
类型:可收集代币
在ERC20标准的帮助下创建的代币可以进行互换。换句话说,每个代币与另一个代币是相同的。如果有人将其视为一种货币的话,那么这种特性是必要的,但从“加密货币收藏品”的角度来看,这样的代币根本不适合。
由于ERC721,每个代币都将变得独一无二。Mike Raitsyn是SnowFox平台的联合创始人,该平台帮助项目发布了30多种代币(其中包括ERC721),他看到了这种协议的潜力:
结合第二层的扩容解决方案(分片技术、Plazma和状态通道),我们得到了将每一项重要资产以100%的不变性和安全性投放到公共(或混合的)区块链的终极工具。
“以太坊上的杀手级”在线游戏CryptoKitties的开发者是最早使用这个标准的人之一。该游戏是基于使用独特的属性:年龄,颜色,品种。一些混合的属性会变得非常罕见,并使小猫的价格变得非常昂贵。毫不奇怪的是,该想法被其他的娱乐游戏,如加密小狗(CryptoPuppies)、加密宠物(CryptoPets),甚至是加密庞克(CryptoPunk)所采用。
ERC827:新版ERC20
创建者:Augusto Lemble
类型:标准代币
ERC827是以太坊协议的最新版本之一,并被区块链记者Dariusz R Jakubowski“一种新的ERC20”。与它的前身不同,这个标准不仅可以传输成本,还可以传输交易数据。开发者设法将这个有用的函数添加到一个小于100行的相对较短的代码片段中。这种函数扩展了以太坊网络在全国范围内的使用范围,并允许用户在几秒钟内将数据移动到世界各地。此外,该标准在区块链的安全性和可靠性保持不变的前提下,允许第三方(例如,经纪人或代理人)在不需要访问私钥的前提下进行交易的验证。
ERC948::B2C商人的乐园
创建者:Kevin Owocki
类型:订阅代币(token for subscription)
“订阅”模式已经在数字世界中非常流行,仅去年就吸引了大约1100万用户。麦肯锡公司的一项研究显示,在2017年有15%的买家已经订阅了电子商务。
ERC948协议为开发者提供了一个建立平台的机会,在这个平台上公司可以利用过去10年在零售和软件行业中被证明有价值的经济模型。此外,它还能通过将区块链项目与客户联合起来,相信订阅模式会在2018年得到更广泛的使用。
ERC884:投资者的“白名单”
创造者:Dave Sag
类型:标准代币
根据2017年的法律草案,特拉华州通用公司法(DGCL)正式允许使用区块链进行股东的注册。ERC884是为特拉华州的任何公共或私人公司发行的资产而创建的,它包含了一些超出ERC20能力的附加组件。这些组件包括了要求对代币持有者进行识别并将其列入白名单作为代币的组成部分。
协议的演化
领先的加密货币之间日益激烈的竞争促进了新协议的发展。每一个新的以太坊代币标准都提供了一套更高级的函数集,这些函数集都要优于现有的函数。这些新标准的引入使开发者能够解决已有协议中积压的漏洞、滥用或低效率的问题,并产生更成熟的区块链dApps。在2018年我们可以看到新协议的时机已经成熟,只有时间才能证明这个行业是否会出现ERC20000或其他的创新工具,这些工具将会在以太坊和EOS间的军备竞赛中出现。