快问快答:区块链岗位面试终极必备题

image

现现在,任何人均可以在以太坊的区块链上去建立一个智能合约并发布本身的代币。直到最近,一枚特殊币种的实施彻底委托给了该币种的开发者,同时它的这种实验性质每每伴随了一些相关问题——这些问题包括了冻结投资者资金、合约被破解或一些没法预测的网络操做问题。程序员

在这个处于“西大荒(Wild West)”的氛围中,新的以太坊协议正在建立中——它旨在纠正之前版本的错误。也许其中的一个协议将在今年年末取代ERC20,使用户所使用的区块链能够更加可靠和简单。数据库

1

ERC20::dapp之王

用户友好的逻辑和简化的结构使以太坊成为一个项目方高度需求的框架,几乎83%的项目选择了将以太坊区块链做为其底层结构。编程

image

图片来源:ICOWatchList数组

有十几个主要的代币都是基于ERC20标准搭建的,同时天天也大约有400种新代币会基于以太坊发行。虽然这些数字听起来并不让人感到有多么不真实,但Coinmarketcap的评级和Ethereum token的图表显示,这些代币的总市值已经达到了约为526亿美圆。此外,这一发行代币的过程彷佛是彻底不受控制的,由于至今仍没有相关立法来监管代币的发起者以及发行代币的频率。安全

image

图片来源:Ethplorer网络

在阅读有关以太坊的信息时,您可能会看到对“ERC20”的引用。ERC20是以太坊平台中最多见、最普遍使用的标准。维基百科给出了如下定义:并发

ERC20:其中ERC表明以太坊请求评论(Ethereum Request Command),20是分配给这个请求的数字。app

ERC20标准于2015年首次推出。虽然它最初只被程序员使用,可是该标准在仅仅两年内就获得了更普遍的应用。该标准描述了在其基础上开发和操做硬币的规则。这样的标准规范是加密行业的一种创新解决方案,由于直到那时尚未一个统一的编程标准——它解决了新代币的建立者遇到的主要问题。框架

可是它所涉及的问题是,在引入这一标准以前发行的全部币种都是彻底独特的,这大大增长了交易所、钱包和其余用于与新标记交互的应用程序的工做。每次开发者都必须在他们的软件中更改或添加一个层,这样新的币种就能够稳定地工做并与它们的系统兼容。函数

在2017年,因为代码的统一性以及与各类应用程序和平台的简化集成,ERC20标准开始在各地获得应用。它引起了初始硬币发行(ICO)初创公司的爆炸式增加,这些公司如今有了进入交易所和克服流动性问题的必要工具。

image

图片来源:Smith&Crown

在ERC20实施以后,加密货币市场中的ICO初创公司数量大幅增长,截至2018年5月,各方共发行了近86,000种代币。绝不奇怪的是,项目再也不须要为代币的问题和相关操做区建立本身的规范和准则,或者为它们与不一样区块链的兼容性去制定标准。全部这些已经在ERC20标准中被描述,同时还引入了六个主要函数:

硬币总量

在特定地址余额中的硬币数量

用于从主地址向我的用户或ICO参与者的地址发送代币的函数

在用户之间发送代币的函数

用于检查具备提取资金能力的智能合约上剩余代币的函数

确保发送方在交易发送时有足够的代币

2

智能合约:新经济的诞生

ERC20标准成功的主要秘诀是其引入了智能合约。虽然在比特币区块链中已经实现了智能合约的一些基本原则,但比特币中的功能很是有限,它不适合为单个的dApps建立代币。这就是为何以太坊能够被认为是第一个充分开发了智能合约概念并实施它的平台。

image

图片来源:Openxcell.com

智能合约的主要思想以下:

当用户发送代币到接收方的地址时,发送方的地址余额会减小,而接收方的地址则会增长相同数量的代币。

这有什么特别之处呢?从技术上讲,没有人向任何人发送任何东西。事实上,智能合约被告知有关代币全部者余额中肯定数量的代币变化。结果是代币从发送方的钱包中消失并出如今可接收方的地址中。

正是因为这个系统,网络中的节点再也不须要不断地对数据库进行检查。它们如今所须要作的就是核实全部合约条款的准确性,由于双方是(发送方和接收方)彻底经过智能合约来进行交互的。

3

呼吁进行改变

因为ERC20标准是基于以太坊协议的第一个版本,随着时间的推移,许多问题和缺点逐渐被人们所揭开。例如,用户不当心将代币发送到一个智能合约的地址,而对这笔交易进行滚回是不可能的。这是由于ERC20代币的标准实施涉及两种传输代币的方式:

传递函数容许用户将代币从一个地址发送到另外一个地址

将代币发送给智能合约的函数组合(approve + transferFrom)

应该指出的是,事件处理是编程中众所周知的一种标准实践。所以,在以太坊网络中资金的转移工做中——转帐处理有可能会发现错误。

在这种状况下,交易被认为是在资金成功转移和没有任何错误的状况下完成的。不然智能合约就将取消交易。若是你向一个不兼容的智能合约发送以太币的话,那么这个事件处理将帮助你避免资金损失,由于这个交易将在接收方处被拒绝。

根据ERC20标准,代币传输应该被认为是一个事件,可是传递函数不容许对这笔交易进行处理,由于它是在没有任何预先检查的状况下增长了接收方的余额。若是接收方是一个智能合约而且使用传递函数来发送代币的话,那么合约没法识别交易时肯能会致使问题的出现。这将致使传递函数出现意外行为并产生不可预测的结果,即代币可能会丢失并永久冻结。

那以太坊的建立者是如何解决这个问题的呢?答案其实很简单——开发者引入了approve和transferFrom函数,它能够赋予用户在发送交易时容许智能合约提取资金的权利,这样就排除了任何可能发生的错误。

值得注意的是,开发者自己并不认为这是一个错误:

这不是一个错误,而是用户的错误。它不是一个错误或漏洞,而是标准ERC20设计的一个特性。

然而,这个至今问题仍然存在——在去年,ICO的参与者总计损失了超过400万美圆。一个很是明显的案例是EOS代币发售智能合约,它从没法收回资金的用户那里吞到了约210万美圆。

在其它吞掉投资者资金的合约包括了

Tronix ——40万美圆,

Golem和ZRX——超过20万美圆,

而OmiseGo已经冻结了投资者15万美圆。

而一些新用户彷佛没有从别人的错误中吸收教训。

4

ERC223:更正ERC20的错误

建立者:Dexaran

类型:标准代币

为了解决以太坊第一个版本的协议漏洞,一个名为Dexaran的用户开发了ERC223标准,该标准迫使ERC20标准的行为方式与将ETH转移到智能合约时的行为方式相同。如今有了这种标准,在传递函数中出现错误,当智能合约不支持这种加密货币时,交易就会被取消。为此,它引入了两种新函数:

传递函数取代旧的 transfer 和 transferFrom 函数

目标智能合约的 tokenFallBack 函数决定了发送币种的类型

对于代币来讲,一般会提出新的标准。做为一个规则,它们会被加密社区和区块链开发者进行仔细检查。虽然它们中的一些标准不是很出名,但仍然有可能取代ERC20。

5

ERC721:加密猫CryptoKitties和其余收藏品

建立者:Dieter Shirley

类型:可收集代币

在ERC20标准的帮助下建立的代币能够进行互换。换句话说,每一个代币与另外一个代币是相同的。若是有人将其视为一种货币的话,那么这种特性是必要的,但从“加密货币收藏品”的角度来看,这样的代币根本不适合。

因为ERC721,每一个代币都将变得独一无二。Mike Raitsyn是SnowFox平台的联合创始人,该平台帮助项目发布了30多种代币(其中包括ERC721),他看到了这种协议的潜力:

结合第二层的扩容解决方案(分片技术、Plazma和状态通道),咱们获得了将每一项重要资产以100%的不变性和安全性投放到公共(或混合的)区块链的终极工具。

“以太坊上的杀手级”在线游戏CryptoKitties的开发者是最先使用这个标准的人之一。该游戏是基于使用独特的属性:年龄,颜色,品种。一些混合的属性会变得很是罕见,并使小猫的价格变得很是昂贵。绝不奇怪的是,该想法被其余的娱乐游戏,如加密小狗(CryptoPuppies)、加密宠物(CryptoPets),甚至是加密庞克(CryptoPunk)所采用。

6

ERC827:新版ERC20

建立者:Augusto Lemble

类型:标准代币

ERC827是以太坊协议的最新版本之一,并被区块链记者Dariusz R Jakubowski“一种新的ERC20”。与它的前身不一样,这个标准不只能够传输成本,还能够传输交易数据。开发者设法将这个有用的函数添加到一个小于100行的相对较短的代码片断中。这种函数扩展了以太坊网络在全国范围内的使用范围,并容许用户在几秒钟内将数据移动到世界各地。此外,该标准在区块链的安全性和可靠性保持不变的前提下,容许第三方(例如,经纪人或代理人)在不须要访问私钥的前提下进行交易的验证。

7

ERC948::B2C商人的乐园

建立者:Kevin Owocki

类型:订阅代币(token for subscription)

“订阅”模式已经在数字世界中很是流行,仅去年就吸引了大约1100万用户。麦肯锡公司的一项研究显示,在2017年有15%的买家已经订阅了电子商务。

ERC948协议为开发者提供了一个创建平台的机会,在这个平台上公司能够利用过去10年在零售和软件行业中被证实有价值的经济模型。此外,它还能经过将区块链项目与客户联合起来,相信订阅模式会在2018年获得更普遍的使用。

8

ERC884:投资者的“白名单”

创造者:Dave Sag

类型:标准代币

根据2017年的法律草案,特拉华州通用公司法(DGCL)正式容许使用区块链进行股东的注册。ERC884是为特拉华州的任何公共或私人公司发行的资产而建立的,它包含了一些超出ERC20能力的附加组件。这些组件包括了要求对代币持有者进行识别并将其列入白名单做为代币的组成部分。

9

协议的演化

领先的加密货币之间日益激烈的竞争促进了新协议的发展。每个新的以太坊代币标准都提供了一套更高级的函数集,这些函数集都要优于现有的函数。这些新标准的引入使开发者可以解决已有协议中积压的漏洞、滥用或低效率的问题,并产生更成熟的区块链 dApps 。在2018年咱们能够看到新协议的时机已经成熟,只有时间才能证实这个行业是否会出现ERC20000或其余的创新工具,这些工具将会在以太坊和 EOS 间的军备竞赛中出现。

内容来源:区块链兄弟

原文做者:Julia Magas

编译:Captain Hiro

原文连接:http://t.cn/RBrzOdo

线下活动推荐

技术工坊|解密区块链DApp的代码逻辑,从请求到数据存储都要经历什么?(上海)

image

相关文章
相关标签/搜索