作者 Mohit Mamoria
编译 Mika 本文为 CDA 数据分析师原创作品,转载需授权
虽然"比特币"和"以太坊"这两个术语常常一起出现,但实际上这两者有很大的区别。以太坊与比特币的唯一联系在于,两者均为成功的区块链技术应用。
以太坊不像比特币仅仅是作为加密货币,它还具备一些特性,从而让其具有大型去中心化计算机的功能。
要了解以太坊,首先必须了解区块链的工作原理。
区块链是什么
简单地说,区块链就是一个数据库。它是包含特定数据,并不断增长的数据库。区块链具有很强大的性能:
1. 一旦数据存储在数据库中,就永远不会被修改或删除。区块链上的每条记录都是永久不变的。
2. 维护该数据库的不是个人或组织; 而是数千人在维护,并且每个人都有自己的数据库副本。
那么,怎样保持每个人的数据库副本同步呢? 假设网络中有十个人,每个人都有空文件夹和一个空白页面。每当有人在网络中进行了重要操作,比如转移资金等,他们就会将此广播给网络中的每个人。
每个人都在页面上进行记录,直到页面填满。当填满时,每个人需要通过解决数学难题来对页面内容进行确认。解决数学难题可以确保每个人的页面都具有相同的内容,并且永远不会被修改。率先完成的人将获得一定数量的加密货币。
一旦页面被确认就会被添加到文件夹中,接着出现新的页面,继续持续这个过程。
区块链
随着时间的推移,包含着重要记录(交易)的页面(块)会被添加到文件夹(链),从而形成数据库(区块链)。
区块链存储着什么
区块链可用于存储任何类型的数据,当中的数据具有一定价值。比特币的区块链存储着金融交易记录,比特币的作用和美元等货币类似,而以太坊就不同了。
以太坊不仅仅是美元、英镑、比特币之类的货币。
可以把以太坊视为大型计算机。但是其运行速度特别慢,大约比普通计算机慢5到100倍,而且成本非常昂贵。“以太坊计算机"与90年代罕见的智能手机的功能差不多,因此它的能力是有限的。
这听起来似乎并不理想,那么为什么以太坊受到大量的关注呢?作为全球性的去中心化计算机,以太坊正在席卷全球。
为什么说以太坊是全球性计算机呢?让我们来看到它的运行原理。
以太坊如何运作
像其他区块链一样,以太坊需要数千人在他们的计算机上运行软件,从而驱动整个网络。网络中的每个节点(计算机)都运行着以太坊虚拟机(EVM)。可以把EVM视为一种操作系统,用于理解并执行以太坊特定编程语言编写的软件。以太坊虚拟机执行的软件或应用被称为“智能合约"。
要在这台全球性计算机上进行操作,你需要付费。但是,并不是使用美元、英镑等常规货币进行支付。而是使用网络原生的加密货币进行支付,即以太币(ether)。以太币与比特币几乎完全相同,除了前者还可以用于在以太坊执行智能合约的支付。
个人和智能合约都被视为以太坊的用户。无论人类用户做什么,智能合约也可以做。
智能合约与网络中的其他人类用户一样,两者都能发送或接受以太币。
但是与人类用户不同的是,智能合约还可以执行预定义的计算机程序,从而进行各种操作。下面让我们看到智能合约能做些什么。
智能合约能做些什么
假设我们对明天的天气打赌。我打赌明天是晴天,你打赌是雨天。我们约定输的人必须给赢家100美元。那么我们如何确保失败者会遵守诺言呢?常见的有以下三种方式:
1. 相互信任
最简单方法是相互信任。如果我们是多年的好友,彼此间十分了解,那么相互信任是很容易的。但如果我们是陌生人,那就麻烦了,我们间难以互相信任。
2. 签订法律协议
另一种方法是针对我们的赌注签订相关协议。当中详细规定赌注条款,包括如果失败方违反协议会怎么样。
该协议能够确保失败方对赢家进行支付,但这是不现实的,因为通过法律途径达成协议比赌注的成本更高。
3. 求助共同的朋友
我们还可以找到一个彼此都信任的朋友,让朋友代为保管100美元。在答案揭晓时将100美元支付给赢家。但是如果这个朋友拿着钱跑了怎么办?
现在我们有三种不同的方法,但各有缺点。陌生人难以相互信任;法律协议成本昂贵;求助共同朋友还可能存在信任方面的问题等。
这时,以太坊的智能合约就派上用场了。智能合约相当于双方的共同朋友,而且是用代码编写的。以太坊能让我们编写相关软件,让双方支付价值100美元的以太币,并在第二天用天气API检查天气,接着将价值200美元的以太币转交给获胜者。
一旦编写好智能合约,就无法进行编辑或修改。因此,无论合约中制定了什么内容,它都将被执行。
但是,智能合约是如何执行的呢?它与区块链有什么关系?
智能合约与区块链有什么关系
当执行智能合约时,它会将执行信息作为交易记录到区块上。以太坊上的交易就像这样:
当中,“数据"用于记录智能合约的创建和执行,这被称为交易。以太坊区块链上的任何区块都可以包含以下三种交易:
1. 用户间的以太币交易
这是网络中的常规比特币式交易。如果你将以太币发送给你的朋友,数据字段将被清空。
2. 没有接收方的以太币交易
如果交易中没有接收方,这意味着交易的目的是,使用"数据"字段的内容在网络中创建智能合约。“数据"字段包含的软件代码将与网络中的其他用户一致。
3. 用户与智能合约间的以太币交易
当用户或智能合约想要执行智能合约时,都必须与智能合约进行交易,并将执行指令放在'数据'字段中。
就像其他区块链一样,只要发送以上任何一种交易均会广播给整个网络,从而让每个节点进行记录。除此之外,每个节点还会执行指示的智能合约,从而让其EVM状态与网络的保持同步。
每个节点执行一个软件,从而使整个网络成为大型(但速度很慢)的分布式计算机。然后,每次执行都会永久存储在区块链中。
Gas 是什么
在上文我提到过,用户在执行智能合约时必须支付一定费用。该部分费用将支付给消耗内存、电力,进行存储和计算的节点,成本的单位称为Gas。最终,根据交换率将gas转换成以太币。
当你执行智能合约,你都必须定义要消耗的最大gas量。当完成执行或达到gas值时,执行将停止。这样是为了避免智能合约中的无限循环,防止程序被卡住而无法继续执行。
程序员的粗心会导致这种情况。每次重复将使用指定的gas,从而让无限循环成为有限循环。gas的概念有效地解决了这个问题。
结语
以太坊不仅仅是一种可交易的加密货币,其真正的价值在于它的目的。以太坊的目的是让所有者能够使用由数千个节点驱动的全球分布式计算机。
当然,因为每个操作都必须由网络中的每个节点执行,从而也导致去中心化计算机运行缓慢且成本昂贵。
相比起来,集中式计算机成本更低,但是一旦集中式计算机(服务器)发生故障或遭到黑客入侵,那么所有连接的客户端都会受到影响。去中心化计算机就不同了,只有当每个节点都出现故障才会崩溃,因此让其一直都可以使用。只要有网络,就有以太坊。
原文链接:
https://hackernoon.com/wtf-is-ethereum-c65e0d67ac09