首页 / 以太坊知识 / 什么是以太坊

什么是以太坊

以太坊(Ethereum)是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币(简称“ETH”)提供去中心化的以太虚拟机(Ethereum Virtual Machine)来处理点对点合约。

从计算机科学的角度来看,以太坊是一个具备确定性但实际上却没有边际的状态机,有两个特点:具有一个全球范围可访问的单体状态;具有一个执行状态更改的虚拟机。

从更加实际的角度来看,以太坊是一个开源的、全球去中心化的计算基础架构,可以执行称为智能合约的程序。它使用区块链同步和保存系统状态,借助以太币这种数字货币来计量并控制程序执行的资源开销。

以太坊与比特币的比较

相较于以太坊,可能很多人更早接触的是数字货币,比如比特币。以太坊跟其他公共区块链有很多共同点:一个连接参与各方的点对点网络、一个用于同步状态的拜占庭容错共识算法(工作量证明)、使用数字签名和哈希等密码学原理、一种数字货币(以太币)。

但在许多方面,以太坊的目的和结构都与之前的开放式区块链(包括比特币)截然不同。

1、目的不同

以太坊的主要目的不是成为数字货币的支付网络。虽然以太币本身对于以太坊的构成和运营是不可或缺的,但以太币的主要目的是作为一种效用货币来支付使用以太坊这个“世界计算机”所产生的花费。

2、结构不同

与具有非常有限的脚本语言的比特币不同,以太坊被设计为通用可编程区块链,它的虚拟机能够执行任意和无限复杂的代码。比特币的脚本语言被故意限制为对简单的支付条件的真/假判断,以太坊的语言是图灵完备的,这意味着以太坊可以直接用作通用目的的计算机。

以太坊:一个通用目的的区块链

最初的区块链,也就是比特币背后的区块链,是用于跟踪比特币及其所有权状态的。你可以把比特币看作一个分布式的共识状态机,交易导致一次全局范围的状态转换,改变了比特币的所有权。状态转换受共识规则所限,在若干个区块被挖矿之后,允许所有的参与方(最终)对系统的状态达成一致的共识。

以太坊也是一个分布式状态机。但是不同于跟踪数字货币所有权的状态,以太坊跟踪的是一个通用目的的数据存储的状态转变。通用目的的意思是任何可以表示为键值元组的数据。基于键值的数据存储可以保存任意复杂的内容,通过一些键来引用。

以太坊拥有一个保存代码和数据的存储器,使用区块链来跟踪这个存储器随着时间的变化。就像通用目的存储程序计算机一样,以太坊可以把代码加载进状态机,然后运行这些代码,并把状态转换的结果保存在区块链上。以太坊相比通用计算机的两个主要差异体现在:状态转换是由共识规则所控制的,状态是全局分布在一个共享的账本之上。

一个公开的公共区块链通常包含以下组件:

  • 一个连接参与各方的点对点网络,用于传播交易和区块数据包,基于标准的“gossip”协议。
  • 以交易形式体现的消息,代表状态的转换。
  • 一组共识规则,用于管理构成交易的内容以及实现有效的状态转换。
  • 一个状态机,根据共识规则处理交易。
  • 一组串联在一起的、由加密算法保证其安全的区块,这些区块是所有已验证和已接受的状态转换的记录日志。
  • 一个共识算法,用于在区块链上实现控制的去中心化,这类算法通过强制参与者之间的合作以实现共识规则的有效执行。
  • 在博弈论上合理的激励方案(例如,工作量证明、区块奖励),以在开放环境中经济地保护状态机。
  • 上述一个或多个开源软件实现(“客户端”)。

以太坊通常包含以下组件:

  • 点对点(P2P):网络以太坊运行在Ethereum Main Network上,这是一个通过TCP30303端口寻址的网络,网络层运行的协议名为-D ΞVp2p。
  • 共识规则:以太坊的共识规则,由以太坊黄皮书中的参考标准进行精确定义。
  • 交易:以太坊交易是一个网络消息,主要包含交易的发送方、接收方、价值和数据载荷。
  • 状态机:以太坊的状态转换由以太坊虚拟机(EVM)处理,这是一个基于栈的虚拟机,执行bytecode(字节码指令)。被称为“智能合约”的EVM程序采用高级语言(例如Solidity)编写,并编译为通过EVM执行的字节码。
  • 数据结构:以太坊的区块链以数据库(通常采用Google的LevelDB)的方式保存在每一个节点之上,区块链内包含了交易和系统的状态,经过哈希处理的数据保存在Merkle Patricia Tree数据结构之内。
  • 共识算法:以太坊使用比特币的共识模型Nakamoto Consensus,它使用顺序单一签名块,由PoW加权重要性来确定最长链,从而确定当前状态。但是,有计划在不久的将来转向代号为Casper的PoS加权投票系统。
  • 经济安全性:以太坊当前使用名为Ethash的工作量证明算法,这个算法迟早将被放弃,并切换到PoS。
  • 客户端:以太坊有多个可以互相交互的客户端软件实现,其中最广泛使用的是Go-Ethereum(Geth)和Parity。

以太坊:图灵完备

所谓图灵完备,就是一切可计算的问题都能计算,这样的虚拟机或者编程语言就叫图灵完备的,图灵完备通常指具有无限存储能力的通用物理机器或编程语言。

以太坊能够执行存储在区块链之上的程序的能力,是由被称为EVM的状态机完成的。能够从存储中读取和写入数据让这个状态机成为图灵完备的系统,也就是满足通用图灵机的定义。在给定无限内存的情况下,以太坊可以计算任何图灵机可以计算的算法。

但在公共区块链等开放式访问系统中,图灵完备是非常危险的。图灵指出,人们无法通过在计算机上模拟的方式来判断程序的执行是否会终止。简单来说,在真正运行程序之前,人们无法预测程序的执行路径。在以太坊中,这意味着一个挑战:每一个参与以太坊的节点(客户端)都必须验证每一个交易,运行交易所调用的任何智能合约。但是根据图灵的理论,在真正运行合约之前,以太坊实际上无法预先判断一个合约是否会运行终止,或者它需要运行多久,也许这个合约会陷入死循环一直运行

无论是程序中的瑕疵,还是故意为之,智能合约都可能在一个节点试图验证它的时候永远不停地执行下去,这也就造成了一种DDoS攻击的后果。相比于可能几个毫秒就能够验证和执行完的正常智能合约,这类永远运行的恶意合约会造成资源浪费、内存消耗、CPU过载等,这就是浪费节点的资源。对于一台世界计算机而言,一个滥用资源的程序可能会蔓延到所有的节点之上,也就是对“全球”资源的浪费。

为了解决这个问题,以太坊引入了名为gas的计量机制。EVM在执行智能合约时,它会仔细地计算每一个执行指令(计算量、数据访问,等等)。每一个指令都有一个预先定义好的开销,以gas为单位。当以太坊交易触发了智能合约的执行时,交易中必须包含这个智能合约执行过程中所需要的计算资源开销的上限。如果执行过程中的资源开销量超过了交易中指定的gas上限,那么EVM就会主动终止这个合约的执行。以太坊通过gas机制,在保证图灵完备计算的同时,限制了程序可以使用的资源量。

以太坊的特点

相较于较大多数其他加密货币或区块链技术,以太坊的特点包括以下几点:

  • 智能合约(smart contract):存储在区块链上的程序,由各节点执行,需要执行程序的人支付手续费给节点的矿工或权益人。
  • 分布式应用程序:以太坊上的分布式应用程序不会停机,也不能被关掉。
  • 代币(tokens):智能合约可以创造代币供分布式应用程序使用。分布式应用程序的代币化让用户、投资者以及管理者的利益一致。代币也可以用来进行首次代币发行。
  • 叔块(uncle block):将因为速度较慢而未及时被收入母链的较短区块链并入,以提升交易量。使用的是有向无环图的相关技术。
  • 权益证明(proof-of-stake):相较于工作量证明更有效率,可节省大量在挖矿时浪费的电脑资源,并避免特殊应用集成电路造成网络中心化。平行运作中,预计2022年与主链合并。
  • 燃料(gas):由交易手续费的概念扩展,在执行各种运算(computation)时需计算燃料消耗量,并缴交燃料费,包括发送以太币或者其他代币也被视为一种运算动作。
  • 分片(sharding):减少每个节点所需纪录的资料量,并透过平行运算提升效率。预计于2022年实现。

除了在主链上执行的各种功能,为了支持智能合约所需的高运算量以及资料容量,以太坊也积极开发第二层功能来减轻主链的负担、提升交易速度、扩展其实用规模,目前的主要方案包括以下:

  • 状态通道(state channels):原理同比特币的闪雷网络,将时常交易的一些结点之间的交易给果打包后再把最终结果写入主链。实现的例子包括雷电网络(Raiden)、Connext、Kchannels等。
  • 支链:用较小的分支或平行的区块链执行一部分的运算,只将一部分的资料写入主链,以减轻主链的负担
    • 平行链:可能使用完全不同的区块链接构和验证机制,只在开头和结尾用双向桥接和主链相连。实现的例子有Skale、xDai、POA等。
    • Plasma 和 Validium支链:将大部分的合约执行和运算都移到支链上进行,只将最后交易结果写入主链。此方案由于交易资料未写入主链,安全性较差,但扩容效果较佳。实现的例子包括OMG、Polygon、Starkware、Loopring等。
    • Rollup支链:将链上资料复制一份,在链外用以太坊虚拟机(EVM)执行合约并确认后,将交易数据压缩再写入主链。主链上另有一系列合约可以验证结果正确,可再分为 Optimistic 和零知识证明两种验证方式。

从通用目的的区块链到DApp

以太坊开启了通用目的区块链用于构建多种应用的道路。很快,以太坊的愿景扩展为用于去中心化应用(DApp)的编程平台。DApp代表了更为广泛的“智能合约”。一个DApp只需要包括一个智能合约和一个Web用户界面。更广泛地说,DApp是一个构建于开放的、去中心化的、点对点的基础设施之上的Web应用程序

DApp至少包含位于区块链之上的智能合约和Web前端用户界面,除此之外,很多DApp还包括其他的去中心化组件,比如:去中心化(P2P形式)的存储协议和平台、去中心化(P2P形式)的消息协议和平台。

DApp的概念正引导着万维网走向它的下一次革命,在每一个Web应用中都引入了带有点对点协议的去中心化能力。人们使用web3这个术语来描述这场革命,意味着We b的第三个“版本”。web3这个词首先由Gavin Wood博士提出,它代表Web应用新的愿景和关注点:从集中化和统一管理的应用,到构建于去中心化协议之上的应用。

本文来自网络,不代表币懂得立场,转载请注明出处:http://www.blogboleh.com/829

币懂得作者

上一篇
下一篇

为您推荐

发表评论

您的电子邮箱地址不会被公开。

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@zhutibaba.com

工作时间:周一至周五,9:00-17:30,节假日休息
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

手机访问
手机扫一扫打开网站

手机扫一扫打开网站

返回顶部