来源:https://github.com/ethereumbook/ethereumbook
以太坊是什么?
以太坊通常被称为“世界计算机”,但这意味着什么?让我们从以计算机科学为中心的描述开始,然后尝试通过更实际的分析对以太坊功能和特点进行揭秘,同时将其与比特币和其他去中心化信息交换平台(或简称“区块链”)进行比较。
从计算机科学的角度来看,以太坊是一个确定性的但实际上没有边界的状态机,它由一个全局可访问的单态和一个将更改应用到该状态的虚拟机组成。
从更实际的角度来看,以太坊是一个开源的、全球分布的计算基础设施,可以执行称为智能合约的程序。它使用区块链来同步和存储系统的状态变化,以及一种称为以太币的加密货币来计量和限制执行资源成本。
以太坊平台使开发人员能够利用内置的经济功能构建强大的分布式应用程序。在提供高可用性、可审计性、透明度和中立性的同时,它还减少或消除了审查,并降低了某些交易对方的风险。
与比特币比较
许多人会带着一些加密货币的经验来到以太坊,特别是比特币。以太坊与其他开放区块链共享许多共同元素:连接参与者的P2P网络、同步状态更新的拜占庭容错共识算法(工作证明区块链)、使用加密原语(如数字签名和散列)和数字货币(以太币)。
然而,在许多方面,以太坊的目的和架构与之前的开放区块链(包括比特币)截然不同。
以太坊的目的主要不是成为一个数字货币支付网络。虽然数字货币以太币是以太坊运营不可或缺的一部分,但以太币旨在作为一种实用货币,用于支付以太坊平台作为世界计算机的使用费用。
与比特币不同,比特币的脚本语言非常有限,以太坊被设计成一个通用的可编程区块链,运行一个能够执行任意和无限复杂代码的虚拟机。然而比特币的脚本语言被有意限制为对spending条件的简单判断。以太坊的语言就是图灵完备的,这意味着以太坊可以直接作为通用计算机运行。
区块链的组成
开放的公共区块链的组成部分(通常是):
所有或大部分这些组件通常组合在一个软件客户端中。例如,在比特币中,参考实现由比特币Core开源项目开发,并实现为比特币客户端。在以太坊中,没有参考实现,而是有一个参考规范,一个系统的数学描述,在黄皮书里(见进一步阅读)。根据参考规范构建开发量了许多种客户端。
在过去,我们使用术语“区块链”来表示上述罗列的所有组件,并作为包含所有上述描述的特征的技术组合的简短参考。然而,今天有许多具有不同特性的区块链。我们需要限定符来帮助我们了解所讨论的区块链的特征,例如开放、公开、全球、去中心化、中立和抗审查,以确定“区块链”系统中这些组件表现出的紧要特性。
并非所有区块链的创建都是相同的。当有人告诉你某个东西是区块链时,你没有得到答案;相反,你需要开始问很多问题来澄清他们在使用“区块链”这个词时的含义。首先要求对前面列表中的组件进行描述,然后问这个“区块链”是否显示出开放、公开等特性。
区块链的组成
所有伟大的创新都能解决实际问题,以太坊也不例外。以太坊是在人们认识到比特币模式的威力,并试图超越加密货币应用的时候构想出来的。但开发人员面临着一个难题:他们要么需要在比特币上建立,要么创建一个新的区块链。建立在比特币之上意味着在比特币网络的有意限制下,并试图找到解决办法。有限的交易类型、数据类型和数据存储大小似乎限制了可以直接在比特币上运行的应用程序的种类;任何其他应用程序都需要额外的链外层,这立刻否定了使用公共区块链的许多优点。对于那些需要更多自由度和灵活性而保持在链上的项目,新的区块链是唯一的选择。但这意味着要做很多工作:重新设计所有基础结构元素,详尽的测试等等。
2013年底,年轻的程序员和比特币爱好者Vitalik Buterin开始考虑进一步扩展比特币和MasterCoin(一种overlay协议,扩展比特币以提供基本的智能合约)的功能。在那一年的10月,Vitalik向MasterCoin团队提出了一种更为普遍的方法,允许灵活的、可编程脚本的(但不图灵完成)合同取代MasterCoin的专用合同语言。虽然MasterCoin团队对此印象深刻,但这一提议过于激进,无法融入他们的发展路线图。
2013年12月,Vitalik开始分享一份白皮书,概述了以太坊背后的理念:图灵完整的通用区块链。几十个人看到了这个早期的草案并提供了反馈,帮助Vitalik改进了建议。
这本书的两位作者都收到了白皮书的早期草稿,并对此发表了评论。Andreas M.Antonopoulos对这个想法很感兴趣,并向Vitalik提出了许多关于使用单独的区块链来执行智能合约执行的共识规则以及图灵完整语言的含义的问题。Andreas继续以极大的兴趣关注以太坊的进展,但他正处于写《精通比特币》这本书的早期阶段,直到很晚才直接参与到以太坊中。然而,Gavin Wood博士是最先接触VITALIK的人之一,并用他的C++编程技巧提供帮助。加文成为以太坊的联合创始人、联合设计师和首席技术官。
正如维塔里克在他的“以太坊史前”文章中所述:
当时以太坊协议完全是我自己创建的。然而,从现在起,新的参与者开始加入这个组织。到目前为止,协议方面最突出的是Gavin Wood……
愿景上的细微变化很大程度上归功于Gavin,包括将以太坊视为构建可编程货币的平台,基于区块链的可以持有数字资产的合约,合约中的资产可以并根据预设规则进行transfer,以及将以太坊当作通用计算平台。这开始于重点和术语的细微变化,后来随着对“Web 3”集成的日益重视,这种影响变得更加强烈,因为“Web 3”集成将以太坊视为一套去中心化技术的一部分,另外两个则是Whisper和Swarm。
从2013年12月开始,Vitalik和Gavin完善并发展了这一理念,共同构建了后来成为以太坊的协议层。
以太坊的创始人考虑设计一个没有特定目的的区块链,通过编程可以支持多种应用程序。其想法是,通过使用像以太坊这样的通用区块链,开发人员无需开发P2P网络、区块链、共识算法等的底层机制就可以对其特定应用程序进行编程。以太坊平台旨在抽象这些细节,并为去中心化区块链应用程序提供确定的和安全的的编程环境。
就像中本聪一样,Vitalik和Gavin他们不仅发明了一项新技术;他们以一种新颖的方式将新发明与现有技术结合起来,并交付了原型代码,以向世界证明他们的想法。
创始人一起工作了多年,建立和完善了愿景。2015年7月30日,开采了第一个以太坊区块。世界计算机开始为世界服务。