虽然比特币和以太坊常被一同提及,实则两者差异显著。其共通点仅在于均基于区块链技术的加密资产。值得注意的是,以太坊并非仅仅是一种数字货币,它更是一个庞大的分布式计算平台。欲深入了解以太坊,首先要理解区块链的本质。若您已熟悉以太坊或已读过《区块链终极指南》(文末链接),可直接跳至下一部分。同时,请允许我提醒您,我是《Unmade》周报的主编,该报定期为您呈送关于前沿思维的精彩资讯。
区块链原理概览区块链本质上是一种特殊的数据库,其数据持续增加且具有不可篡改性:一旦数据被录入,便无法更改或删除。每一笔记录在区块链上都被永久保存,不受单一个体或机构控制,而是由成千上万持有数据库副本的人共同维护。设想一个由10人组成的网络,每人拥有一个空文件夹和一页白纸。每当发生重要事务如转账时,都会向全网广播,每个人都会在其页面上记录这一公告,直至页面填满。此时,所有人都需通过解决一道数学难题来固化页面内容,确保所有人页面内容一致且不可修改。首个解出难题者将获赠加密货币奖励。页面固化后,加入文件夹形成新链条,这一过程持续进行,构建起区块链结构。
区块链的多样性与价值随着时光流逝,载有关键交易记录的区块逐一被添入链条,构成了区块链数据库。区块链可以储存任何形式的数据,其存储的数据类型决定了其价值所在。比特币区块链记载金融交易记录,使其成为类似美元或英镑的货币工具。相比之下,以太坊远不止于货币功能。它的核心价值在于它是一台巨大的计算机,尽管运行速度较常规计算机慢5-100倍且成本高昂,其性能相当于上世纪90年代的智能手机。但这并未削弱其受欢迎程度,因为以太坊是一台分布式全球计算机。要理解以太坊区块链的工作原理,也就明白了以太坊这台世界计算机的运行方式。
以太坊的运作机制及智能合约同其他区块链系统一样,以太坊也需要数千人在各自的电脑上运行软件,为网络提供动能。网络中的每个节点(即计算机)运行着名为以太坊虚拟机(EVM)的软件,它就像一个操作系统,能够理解和执行采用以太坊特有编程语言编写的软件。这类通过EVM执行的软件/应用程序被称为“智能合约”。要在以太坊这台世界计算机上执行任何操作,都需要支付以太币作为手续费。在以太坊网络中,无论是人类用户还是智能合约都能作为使用者,智能合约不仅可以像人类用户那样发送和接收以太币,还能执行预设的计算机程序,根据触发条件执行各类操作。
举例说明智能合约的强大作用,假设你我之间就明日天气打赌。我预测明日阳光明媚,而你觉得明日将有雨。我们约定输家须付给赢家100美元。现有三种方式来进行这场赌局:
互相信任:熟人间易建立信任,但如果是陌生人,则难以互信。
签订法律合同:制定并签署详细的法律合同,虽然确立了法律约束力,但实施合同的成本可能远超赌注本身。
寻找共同信赖的朋友作为中介:各自交付100美元给中间人,待次日查看天气结果后,中间人再将赌资给赢家。但如果中间人携款潜逃怎么办呢?
面对这些问题,以太坊的智能合约为我们提供了解决方案。智能合约如同中间人的角色,但以代码形式实现。通过以太坊,我们可以编写软件,EVM负责执行此软件,从双方分别收取100美元以太币。次日,软件将调用天气应用API获取天气信息,随后将总值200美元的以太币转移给胜者。智能合约一旦执行完毕,就无法修改或编辑,因此,合约条款一定会得到严格执行。那么,智能合约如何运行以及与区块链的关系又是怎样的呢?
无论智能合约何时执行,其相关的交易信息都将被记录在区块链上。以太坊区块链的交易结构概述如下:其中“数据”字段赋予了以太坊创造和执行智能合约的独特力量。在以太坊区块链上,每个区块可包含以下三类交易:
常见的人际间以太币转账:这是网络中最普遍的交易类型,类似于比特币交易。当直接向朋友转账以太币时,“数据”字段为空。
无接收方的以太币转账:此类交易意在创建智能合约,利用“数据”字段中的内容,其中包括执行操作所需的软件代码。
用户与智能合约间的以太币转账:当用户(或智能合约)希望执行某个智能合约时,他们需要与智能合约进行一次交易,并在“数据”字段中放置执行指令。
每当上述任意一种交易发生时,都会在整个网络内广播并由每个节点记录。此外,每个节点还将执行接收到的智能合约,以确保以太坊虚拟机的状态与网络其余部分保持同步。每个节点执行的部分软件构成了一台庞大但运行速度较慢的分布式计算机。每次执行的信息都会被存储在区块链上,确保永久记录。然而,在这一切背后,还有一个关键概念——Gas。
我之前提到了智能合约执行需付费给参与执行的节点,这些费用用于消耗掉内存、硬盘、计算资源和电力。为计算智能合约所需费用,每个语句都有相应成本。例如,使用节点内存的语句具有特定成本,而使用节点硬盘存储器的语句则有额外的成本。这些特定成本的计量单位即为Gas。最终,Gas将以某一兑换率转化为以太币。每次执行智能合同时,用户必须设定一个最大Gas限额。当智能合约执行完毕或达到Gas限额时,执行将自动停止。这么做是为了防止智能合约陷入无限循环,避免程序反复执行一组语句而忽视其他合约执行。这种情况通常是由于程序员的疏忽导致的。每次重复执行都会消耗一定数量的Gas,因此将无限循环转变为有限循环。让节点陷入无限循环的重复执行并无意义,而Gas的概念正是为此问题提供了答案。
小编建议而言,以太坊远非仅限于交易的加密货币,其真正的价值在于其实现目标的能力。以太坊旨在让持币者能够利用由数千节点支持的分布式全球计算机。诚然,去中心化的分布式计算机运行速度相对较慢且成本较高,但这与那些虽然快速却受单一中心控制的服务器相比而论。为换取使用中心化计算机的低成本,我们必须放弃对其控制权。一旦中心计算机(服务器)发生故障或遭受黑客攻击,将影响所有与其相连的用户。而在去中心化计算机中,唯有当每个节点均发生故障时,整体系统才会出现问题,因而具备更高的持续运行能力。只要有网络存在,就能找到以太坊的身影。