以太坊技术详解(1)概述

以太坊是什么?

以太坊(ethererum)是一个开放的区块链平台,任何人都可以基于以太坊构建和使用运行于区块链技术之上的去中心化应用程序。和比特币一样,以太坊不受任何人的控制,因为该平台是一个由世界上很多人共同构建的开源项目。但是和比特币协议不同,以太坊在设计上更加注重适应性和灵活性。在以太坊平台上创建新的应用程序很容易,并且在家园(Homestead)发布版中使用这些应用也是安全的。

次世代区块链

区块链是比特币的技术基础,最早由比特币神秘的作者中本聪在他2008年发布的白皮书《比特币:一种点对点的电子现金系统(Bitcoin: A Peer-to-Peer Electronic Cash System)》中进行了描述。虽然在白皮书中已经对区块链的更广泛使用进行了讨论,但是直到几年之后区块链才作为通用术语出现。区块链是一种分布式的计算构架,网络中的每个节点都执行并记录同样的交易,并将这些交易组成区块。同一个时间只有一个区块能够添加到区块链中,每个区块都包含了一个数学证明以验证该区块是紧跟着前一个区块的。这样,基于区块链的“分布式数据库”就能够在整个网络中保持一致性。个人用户与账簿(交易)的交互都受到强加密的安全保护。维持和验证这个网络的节点将会受到数学强化的经济激励,这种激励是直接编码到协议里面的。

比特币分布式数据库的设计构想是作为经常项目收支表、账簿、以及用比特币令牌传输的方式进行交易以促进个体之间的非信任金融。但是随着比特币吸引了越来越多开发者和技术人员的注意,新的项目开始使用比特币网络用于价值令牌传输之外的目的。很多项目以竞争币的形式出现,这些竞争币是拥有自己密码学货币的独立区块链,并且在原始比特币协议的基础上对功能和性能进行了改进。2013年底,以太坊的发明者Vitalik Buterin提出一种具备重编程实现任意复杂计算能力的单一区块链可以替代所有这些竞争币项目。

2014年,以太坊的创始人Vitalik Buterin, Gavin Wood和Jeffrey Wilcke开始次世代区块链的开发工作,以期实现一个通用且完全去信任化的智能合约平台。

以太坊虚拟机

以太坊是一个可编程的区块链。与比特币不同,以太坊并没有给用户提供一组预定义的操作(比如比特币交易),而是允许用户创建他们自己的操作,这些操作可以任意复杂。这样,以太坊成为了多种不同类型去中心化区块链的平台,包括但是不限于密码学货币。

以太坊在狭义上表示一套协议,这套协议定义了去中心化应用的平台。它的核心是以太坊虚拟机(EVM),EVM可以执行任意算法复杂度的代码。在计算机科学的术语中,以太坊是图灵完备的。开发者可以使用语法上类似JavaScript和Python的编程语言(Solidity)创建运行于EVM上的应用程序。

与其他区块链系统一样,以太坊同样包括了一个点对点(P2P)协议。以太坊区块链数据库由连接到网络的多个节点维护和更新,这个网络上的每个节点都运行EVM并且执行相同的指令。因此,以太坊也可以被称为“世界计算机”。

这种在整个以太坊网络上进行大规模并行计算并不是为了获得更高的效率。实际上,这个过程使得在以太坊上的计算比在传统计算机上要缓慢而且昂贵很多。每个以太坊节点运行EVM是为了在区块链中保持一致。去中心化一致性使得以太坊具有非常高的容错性,保证了零宕机,而且使存储在区块链上的数据永远不可改变以及无法审查。

以太坊平台自身不提供功能和价值。就像编程语言一样,由企业家和开发者来决定以太坊应该如何被使用。但是,比较明确的是不同的应用类型从以太坊得到的好处是不同的。特别地,以太坊适合那些在节点之间进行自动化直接交互的应用,或者在网络中帮助进行群组动作协调的应用。比如那些在点对点市场进行协调的应用程序,或者自动化执行复杂金融合约的应用程序。比特币允许个人直接交易现金,而不需要像金融机构、银行或政府这样的中间人参与。以太坊的影响力也许更加深远。理论上,金融互动或者任意复杂性的交易都可以被运行在以太坊上的程序自动并且可靠地实现。除了金融应用程序之外,任何需要信任、安全和永久存储的环境都可能受到以太坊平台的巨大影响,例如资产注册、选举、政府管理、以及物联网等。