主页 > imtoken华为 > 快速提问和快速回答:区块链工作面试的终极必备问题

快速提问和快速回答:区块链工作面试的终极必备问题

imtoken华为 2023-08-15 05:09:22

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

当用户向接收方地址发送代币时,发送方地址余额减少,接收方地址增加相同数量的代币。

它有什么特别之处? 从技术上讲,没有人向任何人发送任何东西。 事实上,智能合约被告知代币所有者余额中一定数量代币的变化。 结果是硬币从发件人的钱包中消失并出现在收件人的地址中。

多亏了这个系统,网络中的节点不再需要不断地检查数据库。 他们现在需要做的就是验证所有合约条款的准确性,因为双方(发送方和接收方)完全通过智能合约进行交互。

3 呼吁改变

由于ERC20标准是基于第一版以太坊协议,随着时间的推移,很多问题和不足也逐渐暴露出来。 例如,用户不小心将代币发送到智能合约地址,并且无法回滚此交易。 这是因为 ERC20 代币的标准实现涉及两种转移代币的方式:

转移功能允许用户将代币从一个地址发送到另一个地址

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

区块链与比特币 汪诘_什么是比特币区块链_区块链和比特币的总结

应该注意的是,事件处理是编程中众所周知的标准实践。 因此,在以太坊网络的转账工作中区块链和比特币的总结,转账处理可能会发现错误。

在这种情况下,当资金转移成功且没有任何错误时,交易被视为完成。 否则智能合约将取消交易。 如果您将以太币发送到不兼容的智能合约,此事件处理将帮助您避免损失资金,因为交易将在接收方被拒绝。

根据 ERC20 标准,代币转移应被视为一个事件,但转移功能不允许处理此交易,因为它会在没有任何预检查的情况下增加接收者的余额。 如果收件人是智能合约并使用传输功能发送代币,那么如果合约无法识别交易,就会出现问题。 这将导致传递函数的意外行为和不可预测的结果,即令牌可能丢失并永久冻结。

那么以太坊的创造者是如何解决这个问题的呢? 答案其实很简单——开发者引入了 approve 和 transferFrom 函数,可以赋予用户在发送交易时允许智能合约提取资金的权利,从而消除任何可能的错误。

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

这不是错误,而是用户错误。 不是bug也不是bug,而是标准ERC20设计的一个特性。

然而,这个问题一直持续到今天——去年,ICO 的参与者总共损失了超过 400 万美元。 一个非常明显的例子是 EOS 代币销售智能合约,它从无法收回资金的用户那里吞噬了大约 210 万美元。

吞噬投资者资金的其他合约包括

区块链与比特币 汪诘_什么是比特币区块链_区块链和比特币的总结

Tronix——400,000 美元,

Golem 和 ZRX - 超过 200,000 美元,

OmiseGo 冻结了投资者的 150,000 美元。

而一些新用户似乎并没有从别人的错误中吸取教训。

4 ERC223:纠正ERC20的错误

创建者:德克萨兰

类型:标准代币

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

区块链与比特币 汪诘_什么是比特币区块链_区块链和比特币的总结

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

目标智能合约的 tokenFallBack 函数确定发送货币的类型

对于代币,经常会提出新的标准。 通常,它们受到加密社区和区块链开发人员的审查。 虽然其中一些不是很知名的标准,但仍然有可能取代 ERC20。

5 ERC721:CryptoKitties 和其他收藏品

创建者:迪特·雪莉

类型:收藏​​代币

借助 ERC20 标准创建的代币是可以互换的。 换句话说,每个令牌彼此相同。 如果将其视为一种货币,这样的特征是必要的,但从“加密货币收藏品”的角度来看,这样的代币根本不适合。

由于 ERC721,每个代币都将变得独一无二。 SnowFox 平台的联合创始人 Mike Raitsyn 已经帮助项目推出了 30 多个代币(包括 ERC721),他看到了此类协议的潜力:

什么是比特币区块链_区块链和比特币的总结_区块链与比特币 汪诘

结合第二层扩展解决方案(分片、Plazma 和状态通道),我们获得了将每项重要资产放在具有 100% 不变性和安全工具的公共(或混合)区块链上的最终解决方案。

“以太坊杀手”在线游戏 CryptoKitties 的开发者是最早使用该标准的人之一。 游戏基于使用独特的属性:年龄、颜色、品种。 一些混合属性会变得非常稀有,使小猫非常昂贵。 毫不奇怪,这个想法被其他有趣的游戏所采用,例如 CryptoPuppies、CryptoPets,甚至 CryptoPunk。

6 ERC827:ERC20的新版本

创建者:奥古斯托·莱布尔

类型:标准代币

ERC827 是以太坊协议的最新版本之一,被区块链记者 Dariusz R Jakubowski 称为“一种新型的 ERC20”。 与其前身不同,该标准不仅可以传输成本,还可以传输交易数据。 开发人员设法将这个有用的功能添加到不到 100 行的相对较短的代码片段中。 此功能在全国范围内扩展了以太坊网络的使用范围,并允许用户在几秒钟内在全球范围内移动数据。 此外,该标准允许第三方(例如区块链和比特币的总结,经纪人或代理人)无需访问私钥即可验证交易,同时保持区块链的安全性和可靠性。

7 ERC948::B2C商家的天堂

创建者:凯文·奥沃基

什么是比特币区块链_区块链和比特币的总结_区块链与比特币 汪诘

类型:订阅令牌(用于订阅的令牌)

“订阅”模式在数字世界变得非常流行,仅去年一年就吸引了大约 1100 万用户。 根据麦肯锡公司的一项研究,2017 年有 15% 的买家订阅了电子商务。

ERC948 协议为开发人员提供了构建平台的机会,在该平台上,公司可以利用过去 10 年在零售和软件行业中证明有价值的经济模型。 此外,它相信通过将区块链项目与客户结合起来,订阅模式将在 2018 年得到更广泛的应用。

8 ERC884:投资者的“白名单”

创作者:戴夫·萨格

类型:标准代币

根据 2017 年法律草案,特拉华州普通公司法 (DGCL) 正式允许使用区块链进行股东登记。 ERC884 是为特拉华州任何公共或私人公司发行的资产而创建的,它包括一些超出 ERC20 功能的附加组件。 这些组件包括将代币持有者识别和列入白名单作为代币一部分的要求。

9 协议的演变

领先的加密货币之间日益激烈的竞争刺激了新协议的开发。 每个新的以太坊令牌标准都提供了一组优于现有功能的更高级别的功能。 这些新标准的引入使开发人员能够解决已建立协议中积压的漏洞、滥用或低效问题,并产生更成熟的区块链 dApp。 在 2018 年,我们可以看到新协议的时机已经成熟,只有时间才能证明业界是否会看到 ERC20000 或在以太坊和 EOS 之间的军备竞赛中出现的其他创新工具。