跳转至

以太坊和智能合约

以太坊是区块链生态系统中最突出的项目之一。它于 2015 年 7 月正式推出,以克服比特币的一些主要限制。一种新的编程语言被创造出来,用来开发比比特币更复杂的操作。以太坊的目标是允许在其基础设施上创建分散式应用 ( dApps ),借助一种叫做以太的记账单位,通过只关注服务而非协议来促进开发者的工作。以太坊是第一个引入智能合约和 dApps 等新概念的平台,这给区块链技术带来了更好的用户友好性,当然,也为最终用户带来了比比特币等单一加密货币更多的应用。人们现在可以基于以太坊简单且已经运行的基础设施从头开始开发一个新的应用程序。发射后开发了许多 dApps,这有助于区块链技术的广泛民主化。今天,以太坊支持超过 1,800 个 dApps,这使其成为最大的公共区块链平台。

本章将为您概述比特币和以太坊的区别和相似之处。分析以太坊与比特币的关系是理解以太坊给区块链生态系统带来的重要进步的良好起点。本章将解释以太坊虚拟机 ( EVM ),一台世界计算机能够创建 dApps。我们还将看看智能合同和天然气的概念,它们总是一起出现。最后,我们将解释比特币中使用的共识算法和以太坊试图实现的算法之间的差异。

本章将讨论以下主题:

  • 比特币对以太坊
  • EVM
  • 比较工作证明和利益证明
  • 现实世界的应用

比特币和以太坊哪个好?

在前面的章节中,我们了解了关于比特币的所有信息,比特币是一种加密货币,为基于区块链的传统集中式支付系统提供了一种替代方案,这是一种分散、共享、透明和安全的数据库,存储网络上发生的每一笔交易。由于比特币越来越多地被用作零售和在线商店的支付手段,它现在被视为一种资产类别。

就像任何其他资产类别或投资产品一样,比特币受到金融市场演变的影响,而其支持者则认为它是真正的数字货币,允许全球个人之间进行几乎即时、安全和廉价的金融交易。

在这些术语中,以太坊几乎是相同的:

  • 它是一种加密货币(称为以太),使人们能够进行金融交易。
  • 它得到了区块链的支持,后者也依赖于工作证明共识协议。

以太坊目前正在通过几次更新朝着利害关系证明共识协议前进,并将在 2020 年至 2021 年之间达到其最终版本。但是在接下来的章节中会有更多的介绍。

自 2009 年比特币诞生以来,生态系统没有任何重大进展。这种情况一直持续到以太坊的诞生,以太坊将区块链和加密货币推向了一个新的高度。以太坊与比特币的区别在于其区块链上运行的应用程序。虽然运行在比特币区块链上的唯一应用是比特币,即所谓的加密货币,但另一方面,以太坊区块链可以做得更多。有令人难以置信的数量的应用程序在其上运行,包括加密货币以太,这是一种支付手段,与比特币非常相似。

以太坊通常被定义为一个世界计算机平台,任何人都可以使用它来创建或操作基于智能合约的 dApps。你可以把它想象成苹果应用商店或谷歌 Play 商店,在那里你可以购买和使用不同的应用程序。然而,以太坊是分散的,因此不属于任何人,不像苹果或谷歌那样将数据和支付集中在他们的服务器上。

比特币的另一个不同之处是,虽然比特币的发明者中本聪至今仍不为人知,但以太坊的创始人在生态系统中非常受欢迎。他的名字叫维塔利克·布特林,是一名出生于俄罗斯的加拿大程序员,他在 2013 年提出了以太坊的主张。就像任何其他区块链一样,以太坊依赖于人们为网络供电来运行他们计算机上的软件。对于比特币来说,这个软件就是 BitcoinCore。对于以太坊,它被称为 EVM。

EVM

EVM 就像 Windows 或 macOS,一个读取和理解用以太坊特定语言编写的程序的操作系统:Solidity。这是一个图灵完备的软件,使任何人都可以运行任何程序,使得创建基于区块链的应用程序的过程比以往任何时候都更加容易和高效。

这就是为什么在以太坊的区块链上运行着数千种不同的应用程序,因为你不必编写一种全新的语言来构建一个应用程序。

图灵完全机器是一种机器的概念,如果它有无限的可用内存,它可以计算任何东西。实际的计算机必须在有限的内存上运行,因此它们不能被称为图灵完备的。另一方面,以太坊区块链是一个分布式图灵完全程序。

假设你想创造一种新的硬币,它只能在特定的商店里使用。有了 EVM,你不必从头开始构建一个区块链,而是在其中编写一个特定的程序,并用以太坊的本地加密货币以太支付,在网络上传播并允许任何人使用它。我们称这种类型的程序为智能合同。

了解智能合同

为了理解智能合同,让我们看一个由法国领先的保险集团 Axa 开发的真实应用程序。2017 年 9 月,安盛推出了一款名为fT2【izzy 的应用,这是一款取消保险产品,可以自动为遭受航班延误的客户进行报销。

fizzy 的智能合同基于以太坊,以安全的方式存储投保人订购的保险。然后,它连接到全球空中交通数据库,检查航班是否延误,并根据这些参数自动触发补偿。该产品为用户提供了无摩擦的体验,并取得了巨大的成功。以下是安盛 fizzy 登陆页面截图:

简而言之,智能合约是在区块链上编写的应用以下规则的代码:

对于 fizzy,它被改写如下:

以太坊认为智能合约和人类用户是一样的。两者都能发送和接收以太。但是,当满足协定中预定义的条件时,智能协定可以执行某些操作。

再举一个简单但不言自明的例子。

考虑两个人打赌谁会赢得 2019 年的橄榄球世界杯。双方都同意输的一方给赢的一方 50 美元的条件。

我们如何确保输家真的会付钱给赢家?

  • 要么双方球员因为是很久的朋友而互相信任,要么相处的很好。
  • 如果他们彼此不认识,他们有可能签署一份法律协议。如果在付款上有争议,他们可以参考法律协议,但解决问题的费用和时间会很高,对彼此来说都很痛苦。
  • 另一种可能是,他们每人给一个共同信任的朋友 50 美元,这个朋友会保管奖品并把它给获胜者。但如果所谓的信任的朋友带着钱跑了呢?

我认为很容易看出每一种选择都有其不利的一面。然而,以太坊可以使用智能合约特性来解决这个问题。

智能合约就像可信的朋友,只是它是用代码编写的。这将确保获胜者在我们知道 2019 年世界杯获胜球队的那一天真正获得奖金。

智能合同一旦写成,就不能编辑或修改。一旦在网络上共享,智能合约中列出的条件无论如何都将被执行,从而变得不可更改。

由于开发人员可以编写不合理的代码或语句,这些代码或语句具有无限循环,导致节点在执行智能合同时陷入困境,因此以太坊的开发人员想出了一种解决方法。他们发明了煤气。

气体

天然气是矿工为处理一份智能合同而花费的电力、存储和计算成本。气体是乙醚的一小部分。

“Because all these different actors [the nodes] are providing their resources to run the platform, you need to pay them for providing their resources.” - Ethereum's co-founder Joseph Lubin

当执行智能合约时,gas 的最大级别由开发人员定义,确保当达到该级别时,智能合约停止执行,防止节点运行编码不良的智能合约。

cryptocompare.com 广告公司的负责人 Antonio Madeira 有一个很好的解释:

"The more complex the commands you wish to execute, the more gas (and Ether) you have to pay. For example, if A wants to send B, 1 Ether unit—there would be a total cost of 1.00001 Ether to be paid by A. However if A wanted to form a contract with B depending on the future price of Ether, there would be more lines of code executable and more of an onus or energy consumption placed on the distributed Ethereum network—and therefore A would have to pay more than the 1 Gas done in the transaction."

尽管 dApps 有许多优点,但它们依赖的智能契约有时也会包含缺陷。不要忘记他们的代码是由人类编写的!

由于智能合约是不可变的,因此纠正代码的唯一方法是达成网络共识,同意重写代码。

以太之所以不是用来处理智能合约的货币,是因为以太对市值太敏感了。通过将天然气与以太联系起来,并将天然气价格固定在特定的行动上,以太坊社区确保了网络将始终执行智能合同,而不管以太的价格如何。

以太坊区块链中的身份管理通过两种类型的帐户实现:

  • 外部拥有的账户:这些账户由用户持有以转移以太网。就像比特币区块链一样,它们有一个相关联的公钥作为地址,还有一个相关联的私钥提供对账户的访问。
  • 契约账户或智能契约:它们可以存储以太,但也可以存储代码。这些帐户也有一个公钥地址来发送以太网,但是,因为它们不应该被任何人拥有,所以它们不拥有任何私钥。

到目前为止,我们已经看到了比特币的主要区别,并了解了 EVM,它是网络执行智能合约的操作系统,这些程序由开发人员编写,在满足特定条件时执行特定操作。我们已经看到了智能合同是如何处理和运行的,这要归功于天然气,这是以太中的一小部分,既起着激励作用,又起着费用作用。

现在让我们深入了解以太坊的共识协议、现实世界的应用以及以太坊即将面临的挑战。

比较工作证明和利益证明

以太坊目前依赖于与比特币相同的共识协议:工作证明。为了验证块和交易,网络的矿工必须解决一个数学问题,截至 2019 年 4 月 19 日,这需要大约 13 秒。

当结果(散列)被找到时,它被传播到网络,网络检查它并将包含交易的块存储在分类帐中。然后,另一个数学问题出现,以验证一个新的区块,等等。

这种共识协议工作验证有几个缺点:

  • 这对环境是有害的,因为它需要大量的电力来让计算机找到合适的散列来验证这个块。
  • 它是昂贵的、非包容性的,并且是为专家保留的,因为挖掘过程需要良好的芯片、材料和计算能力来运行散列的计算。
  • 它是资源密集型的,当网络承受峰值负载时,以太坊很难扩展。

以太坊正在寻找另一种挖掘方式,可以取代工作证明共识机制及其上述缺点。开发者社区已经决定转向利益相关共识机制,在这种机制下,拥有强大的芯片不会帮助你更好或更快地挖掘。

以太坊社区愿意让任何人用任何种类的计算机参与交易的验证,消除了工作证明挖掘背后的非包容性竞争。

自 2019 年 2 月 28 日以来,以太坊已经迁移到其名为君士坦丁堡的新版本网络,这带来了实现利益相关证明所需的几项演进。这一演变是旨在构建可扩展且健壮的平台的更广泛路线图的一部分。

该路线图由四个主要阶段组成:

  • Frontier: 这是以太坊最早的实现,在 2015 年上线之前。
  • Homestead: 这是 2016 年初为了稳定网络和提高效率而实施的。
  • Metropolis: 这是在 2017 年 10 月推出的,更新名为拜占庭,将在 2020 年的某个时候结束,此前实施了其他三个更新(其中包括 2019 年 2 月 28 日的君士坦丁堡)。
  • Serenity: 这是以太坊提议的最终状态,集成了利益相关证明协议和功能,可以处理每秒大量的交易。

利害关系证明协议不要求矿工计算像工作证明这样的数学问题。相反,它是一种共识协议,其中块的验证依赖于一种算法,该算法根据用户拥有的以太(或股份)的数量来选择用户。

因此,用户拥有的以太量越大,他们就越有可能被选中来验证新的块。通常与块验证相关联的激励被与块相关联的 gas 所取代,gas 是所有交易的 gas 的总和。

现实世界的应用

以太坊在过去几年里通过成功的应用已经数次证明了它的有用性,并且已经颠覆了一些商业模式。其中最有趣的是 slock . it(https://slock.it/)。这是 Stephan Tual 和 Jentzsch 兄弟在 2015 年创立的一款应用,旨在为更好的共享经济创建基础设施。

使用以太坊的区块链,slock .它愿意将任何种类的物理对象链接到一个智能合同,以允许任何人使用该对象。创始人经常使用的一个例子是出租公寓。通过 slock.it,你可以将你的门锁与智能合同联系起来,让想租你公寓的人支付与智能合同相关的价格,智能合同将自动解锁房门。这种设置消除了一个可信的第三方,您通常必须依赖该第三方来确保支付以及与支付执行相关的操作。换句话说,它把门锁本身和租户安全透明的连接起来,不需要中介。

如果你在寻找更多的 DApps 的例子,你可以看看 dApps(【https://www.stateofthedapps.com/】)的状态,它对每个 dApps 项目进行了分类。

请记住,因为 dApps 在区块链上运行,所以它们受益于它的所有特性:

  • 透明:任何人都可以看到以太坊区块链上发生的交易。
  • 不变性:一旦交易被矿工确认并在网络上共享,它们就不能被更改或修改。
  • 安全性:其分散式设置消除了单点故障,加密技术确保黑客无法入侵。

摘要

在这一章中,我们区分了以太坊与比特币相比提供了哪些功能,比特币是一种唯一的加密货币。我们展示了 EVM 如何作为一台世界计算机,支持 dApps 和智能合约的创建。我们讨论了 gas 的概念,gas 在基础设施中扮演着燃料的角色,以便运行代码。最后,我们探讨了工作证明和利益证明之间的主要区别,以及以太坊遵循的宏伟路线图。

在下一章中,我们将发现以太坊给区块链生态系统带来的另一项重要进步,这项进步在 2017 年底成为头条新闻,并使任何项目都能在几分钟内筹集数百万美元:最初的硬币发行。


我们一直在努力

apachecn/AiLearning

【布客】中文翻译组