尽管常常会将“比特币”和“以太坊”这两个术语放在一起讨论,但实际上它们之间存在着天壤之别。它们之间唯一的共同之处在于它们都是在区块链上运行的加密资产。然而,以太坊不同于比特币,它不仅仅是一种加密货币,还拥有其他特征,使其成为一个庞大的分布式计算机。要理解以太坊,就必须理解区块链的运作原理。如果你已经对以太坊有所了解,或者已经阅读过我撰写的《关于如何理解区块链的终极指南》(链接见文末),那么可以直接跳至下一节。值得一提的是,我是《Unmade》每周简报的策划人,《Unmade》每周都会向您的收件箱发送一份有关前沿思想的简报。
那么,什么是区块链呢?简单来说,区块链就是一种数据库。它是一种特定数据的数据库,其中的数据不断增长,并具有独特的特性:一旦数据存储在数据库中,就无法被修改或删除。区块链上的每条记录都将永久保存。没有单独的个人或组织可以维护这个数据库,而是需要数千个人来维护,每个人都拥有数据库的副本。想要理解人们是如何让自己的数据库副本与其他人同步的,可以想象一个包含10个人的网络。每个人都有一个空的文件夹和一张空白页。无论在这个网络中的任何时候,无论发生了什么重要的事情,比如转账等,都会广播给网络中的每个人。每个人都会在自己的页面上记录这些公告,直到页面填满为止。一旦页面填满,每个人都必须通过解决一个数学难题来封存页面内容。这样可以确保每个人的页面具有相同的内容,并且这些内容永远无法修改。第一个解决这个数学难题的人将获得一些加密货币作为奖励。一旦页面被封存,就会被添加到文件夹中,并出现新的页面,这个过程会一直循环下去,形成了一个区块链。
随着时间的推移,这些包含着重要记录(交易)的页面(区块)将逐一加入到文件夹(链)中,从而形成了数据库(区块链)。那么,区块链存储的究竟是什么呢?区块链可以存储任何类型的数据,存储在区块链上的数据类型赋予了区块链价值。比特币的区块链存储的是金融交易记录,因此使比特币成为一种类似于美元或英镑的货币。而以太坊则不同。以太坊不仅仅是一种类似于美元、英镑或比特币的货币,它具有比货币更广泛的用途。以太坊的真正价值在于它是一个巨大的计算机!然而,它的运行速度极其缓慢——大约是普通计算机的5至100倍——而且成本高昂。这个“以太坊计算机”与罕见的90年代智能手机功能相似;因此,它只能执行一些微不足道的小任务。这听起来可能不怎么样,但是以太坊之所以如此受欢迎,是因为它是一个分布式的全球计算机。了解了以太坊区块链是如何运作的,就可以了解以太坊这个世界计算机是如何运行的。
那么以太坊是如何运作的呢?与其他区块链一样,以太坊需要几千个人在自己的计算机上运行一个软件,为网络提供动力。网络中的每个节点(计算机)运行一个称为以太坊虚拟机(EVM)的软件。以太坊虚拟机可以想象成是一个操作系统,它能够理解并执行使用以太坊特定编程语言编写的软件。通过以太坊虚拟机执行的软件/应用程序称为“智能合约”。为了在这个世界计算机上执行任何操作,都需要支付费用。但是,支付的不是美元或英镑等传统货币,而是网络自带的加密货币,称为以太币。在以太坊上,无论是人类用户还是智能合约,都可以作为用户。智能合约可以做人类用户能做的一切,而且更多。在网络中,智能合约的表现和其他人类用户完全一样。它们都可以像收发其他货币一样收发以太币。但是,与人类用户不同的是,智能合约还可以执行预先定义的计算机程序,在触发时执行各种操作。
让我们通过一个例子来理解智能合约的强大之处。假设我们之间打赌明天的天气情况。我认为明天会晴天,而你认为明天会下雨。我们约定,输家必须支付赢家100美元。我们如何打赌,同时又确保输家会履行承诺呢?我能想到三种不同的方法:
1.互相信任:最简单的方法是互相信任。如果我们是老朋友,那么互相信任就很容易。因为我了解你的家庭住址,而你了解我的个人背景。然而,如果我们是陌生人,那么互相信任就有困难了。你没有理由相信我,我也没有理由相信你。
2.签署法律合同:另一种可行的方法是根据我们之间的约定制定一份法律合同。我们双方会签署一份详细规定了赌约条款的合同,包括关于输家违约的规定。虽然这种方法会使我们有向赢家支付赌金的法律义务,但是由于通过法律途径强制对方履行合同的成本高于赌金本身,因此这种方法并不实用。
3.寻求共同朋友的帮助:我们可以找一个双方都信任的共同朋友,各自交付100美元给这位共同朋友,由他/她保管。第二天,这位朋友会查看天气情况,然后将200美元交给赢家。虽然这种方法简单明了,但是如果这位共同朋友卷款而逃,那该怎么办呢?
现在,我们有了三种不同的打赌方法,但每一种方法都存在缺陷。因为我们是陌生人,所以无法互相信任。通过法律途径强制履行合同的成本太高,因此并不实用。寻求共同朋友的帮助会带来信任问题。在这种情况下,以太坊的智能合约就可以派上用场了。智能合约就像是寻求共同朋友的帮助,只不过它是以代码的形式编写的。通过以太坊,我们可以编写一款软件,以太坊虚拟机会执行该软件,向双方各收取100美元的以太币。第二天,软件会打开接入天气应用的API,查看天气情况,然后将总价值为200美元的以太币转给赢家。智能合约一旦完成,就无法被编辑或修改。因此,无论合约中规定了什么,都会被执行。不过,智能合约是如何执行的?它与区块链有何关系?
不管智能合约何时执行,它都会记录在区块链上执行的交易信息。从高层次来看,以太坊区块链上的交易如下所示:这些字段都很容易理解,除了最后一个。其中,“数据(data)”一项赋予了以太坊独特的力量,用于创建记录和执行智能合约(也就是交易)。在以太坊区块链上,每个区块都可以包含以下三种类型的交易:
1.人类用户之间的常见以太币转账:这些是网络中常见的交易,类似于比特币交易。如果你直接将以太币转给朋友,那么“数据”项将留空。
2.没有接收方的以太币转账:在进行没有接收方的交易时,这意味着该交易的目的是创建一个智能合约,利用“数据”项中的内容。该内容包含了软件代码,该代码会像网络中的其他用户一样执行操作。
3.用户和智能合约之间的以太币转账:当用户(或智能合约)想要执行智能合约时,他/她/它需要与智能合约进行一次交易,并将执行指令置于“数据”项中。
与其他区块链一样,无论上述三种事件中的任何一种何时发生,都会在整个网络中广播,并被每个人记录下来。除了记录之外,每个节点还会执行收到的智能合约,以保持以太坊虚拟机的状态与网络的其他部分同步。每个节点都会执行软件的一部分,从而使整个网络充当一个庞大(但运行缓慢)的分布式计算机。每次执行都会存储在区块链上,从而实现永久存储的目的。然而,听说有一个叫做Gas的东西——那是什么呢?
我提到过,使用智能合约的用户必须支付一定的费用来执行该合约。这笔费用支付给实际使用内存、硬盘、计算和电力执行智能合约的节点。为了计算智能合约的费用,每个语句都有指定的成本。例如,如果你执行的是使用节点内存的语句,那么这些语句将具有特定的成本。如果你执行的是使用节点硬盘存储器的语句,那么这些语句将具有额外的特定成本。这些特定成本的单位称为Gas。最终,Gas会按照一定的兑换率转换成以太币。无论何时执行智能合约,你都必须确定要消耗的最大Gas量。当合约执行完成或达到Gas限制时,执行将停止。这样做是为了避免智能合约陷入无限循环,防止程序重复执行一组语句而不继续执行其他合约。这种情况的发生通常是由程序员的疏忽引起的。每次重复执行都会消耗一定数量的Gas,因此将无限循环变为有限循环。将节点陷入重复执行的无限循环是没有意义的,因此Gas的概念解决了这个问题。
总的来说,以太坊不仅仅是一种用于交易的加密货币。它的真正价值在于它的目的。以太坊的目标是让拥有以太币的人能够利用由数千个节点提供动力的分布式全球计算机。尽管去中心化的分布式计算机运行速度缓慢且成本高昂,但在这里慢的参照系是什么呢?它是相对于那些虽然更快但由中心控制的服务器而言的。为了享受使用中心化计算机的低成本,我们不得不将我们的控制权交给它们。如果中央计算机(服务器)出现故障或被黑客攻击,那么就会影响到与其连接的所有用户。只有当每个节点都出现故障时,去中心化计算机才会出现问题,因此这种计算机可以持续运行。有网络的地方就有以太坊。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。