第二! 他排中本聪与V神中间, 单靠文字就“打败”了敲代码的程序员!

出品 | 区块链大本营(blockchain_camp)



Andreas Antonopoulos 是谁/span>


他也许不是一个很好的区块链开发者,他对区块链的贡献也不在技术层面,但他真可谓是一位家喻户晓的区块链技术布道者。


在去年9月份 Strictly Crypto 站上发布的一篇名为《The Most Influential Names In Crypto 2018》文章中,他被排到中本聪与V神中间,位列第二位


究竟有多少人因他的影响开始了解区块链和比特币个庞大数字不得而知,但我们可以看一些能够统计的官方数字。


  • YouTube 上订阅者接近 17万,且每个视频都有上万的播放量;

  • Twitter 上也有48.5万关注者,推文竟然有2万+;

  • Facebook 上也有着接近3万的关注者


他还是一位高产的作家,有着奶牛一般的产量,著有包括《精通比特币》、《精通以太坊》和《精通区块链编程》等在内的15本区块链相关书籍。



姑且不说排名是否真实,但一定程度上也反映出,他在区块链领域的努力确实是被认可了。他有一种理解复杂技术细微差别的天赋,并以极其简单易懂的术语解释它们。


为什么 Andreas 写的技术书籍如此畅销完《精通以太坊》你就知道答案了,也许你会重新认识以太坊。

以太坊经常被称为“世界计算机”。但这到底是什么意思呢我们首先尝试从计算机科学的角度进行描述,接着通过与比特币和其他去中心化信息交换平台(也就是我们常说的区块链)技术的比较,从更加务实的角度分析以太坊的能力和特性。


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


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


以太坊平台使得开发者可以构建强大的去中心化应用,并且内建了经济性的功能。在提供高可用性、可审计性、透明和中立等特性的同时,减少或消除了审查、第三方介入和对手方风险。



以太坊与比特币的比较


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


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


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


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



区块链的组件


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


  • 一个连接参与方的点对点 络,用于传播交易和区块数据包,基于标准“gossip”协议。

  • 以交易形式体现的消息,代表状态的转换。

  • 一组共识规则,用于管理构成交易的内容以及实现有效的状态转换。

  • 一个状态机,根据共识规则处理交易。

  • 一组串联在一起的、由加密算法保证其安全的区块,这些区块是所有已验证和已接受的状态转换的记录日志。

  • 一个共识算法,用于在区块链上实现控制的去中心化,这类算法通过强制参与者之间的合作以实现共识规则的有效执行。

  • 在博弈论上合理的激励方案(例如,工作量证明、区块奖励),以在开放环境中经济地保护状态机。

  • 上述一个或多个开源软件实现(“客户端”)。


这些组件基本上都包含在一个单独的客户端软件中。例如,在比特币中,Bitcoin Core 开源项目开发了比特币客户端的参考实现,名为 bitcoind。相比参考实现,以太坊拥有一个参考标准—采用数学方式描述整个系统的黄皮书(详见后文的“扩展阅读”一节)。现有的很多以太坊客户端,都是根据黄皮书中的参考标准实现的。


过去,我们使用区块链来代表上述所有组件,这是对实现以上特点的技术的笼统描述。今天,市场上存在大量具有不同属性的区块链项目。我们需要一些修饰语来帮助我们理解区块链的特点,例如开放、公共、全局、去中心化、中立和抗审查性,以识别和理解这些区块链组件背后所浮现出的重要特性。


并不是所有的区块链都是一样的。当有人向你展示一个区块链时,你应该能够提出问题来明确这个区块链背后的含义。应该问清楚这个区块链所对应的上述每个组件的描述,以及这个区块链是否具备开放、公共等特征。



以太坊的诞生


所有伟大的创新都是为了解决具体的问题,以太坊也同样。当时,人们已经意识到了比特币背后这套体系的能力,并尝试在数字货币技术的基础上推广到更广泛的应用领域。但是开发者面临着一个难题:他们要么在比特币的大厦上添砖加瓦,要么就需要从头开始实现一个新的区块链。在比特币基础上构建意味着必须接受比特币 络的种种限制,并尝试找到解决办法。


比特币对数据存储的类型和规模有特殊的要求,这些要求限制了在比特币之上作为第二层解决方案可以运行的应用的类型。程序员所构建的应用只能建立在这些有限的变量、交易类型和数据之上,无法发挥公共区块链的众多优势。对于需要更多自由度和更复杂的应用,从头开始实现一个新的区块链是唯一的选择。但是从头开始实现一个新的区块链也意味着需要在基础架构、测试等领域白手起家。


2013年年末,一个年轻的程序员、比特币的狂热爱好者 Vitalik Buterin 开始思考未来如何扩展比特币和 Mastercoin(一个基于比特币之上的协议,提供初步的智能合约)。2013年10月,Vitalik 向 Mastercoin 团队提出了一个更具通用性的想法—可以用于替代Mastercoin专用合约语言的更灵活和脚本化(但还不是图灵完备)的合约机制。尽管 Mastercoin 团队很感兴趣,但是这个提议过于激进,以至于无法跟团队当前的开发计划吻合。


2013年12月,Vitalik 分享了一份白皮书,这份白皮书勾勒了以太坊背后的思想:一个图灵完备的通用目的的区块链。一些人阅读了白皮书并给 Vitalik 发回了反馈,帮助他逐步地完善这个想法。



Vitalik 在《以太坊史前回忆》一文(http://bit.ly/2T2t6zs)中写道:


“当时以太坊协议还只是我一个人的创意。但从那时起,新的参与者开始加入,Gavin Wood 在协议层的贡献是最显著的。


有些人把以太坊看作一个可编程的数字货币平台,基于区块链的合约,根据事先约定的规则持有和转移数字资产,为了改变这种看法,Gavin 起了很大作用,他使人们相信以太坊将是一个通用目的的计算平台。这起源于一些关注点和术语的微妙变化,稍后随着“Web 3”概念的深入人心而更具影响力。Web 3 把以太坊视为去中心化技术的一部分,去中心化技术的另外两个重要组成部分是 Whisper 和 Swarm。”


从2013年12月开始,Vitalik 和 Gavin 重新定义和打磨这些想法,一同构建了以太坊今后的协议层。



与Satoshi类似,Vitalik 和 Gavin 并没有发明一种新的技术,而是通过一些新奇的方式,把一些新的想法和发明与现有的技术相结合。随后,他们向全世界展示了这些想法的一个原型实现。


以太坊的创始人花了数年时间构建和完善这个愿景。2015年7月30日,第一个以太坊区块被挖矿成功。“世界计算机”开始为全世界提供服务。


Vitalik Buterin 在2017年9月撰写了一篇名为《以太坊史前回忆》的文章,以第一人称描述了以太坊早期发展的精彩历程。


你可以在这里阅读这篇文章:

http://vitalik.ca/general/2017/09/14/prehistory.html。



以太坊的四个开发阶段


以太坊的开发计划分为四个不同的阶段,每个阶段都会发生重大变化。阶段以“硬分叉”的方式发布,硬分叉意味着这次发布所做出的改变将无法后向兼容之前的旧版本。


四个主要发展阶段的代 为Frontier、Homestead、Metropolis和Serenity。到目前为止(或计划)发生的过渡性硬分叉代 为 Ice Age、DAO、Tangerine Whistle、Spurious Dragon、Byzantium 和 Constantinople。开发阶段和过渡性硬分叉都显示在以下时间轴上,按照区块高度编 的方式来标注日期:


区块高度:0

Frontier:以太坊的初始阶段,持续时间为2015年7月30日至2016年3月。


区块高度:200000

Ice Age:引入指数难度增加的硬分叉,以便在准备就绪时激励过渡到权益证明(PoS)。


区块高度:1150000

Homestead:以太坊的第二阶段,于2016年3月发布。


区块高度:1192000

DAO:一次硬分叉,用于补偿被攻击的 DAO 合约的受害者,并导致“以太坊”和“以太坊经典”分成两个互相竞争的系统。


区块高度:2463000

Tangerine Whistle:一次硬分叉,用于改变某些I/O密集型操作的 gas 计算,并消除能够利用这些操作的低 gas 成本的拒绝服务(DoS)攻击。


区块高度:2675000

Spurious Dragon:一个用于解决更多 DoS 攻击途径的硬分叉,以及另一次状态清除。同时也提供了针对重放攻击的保护机制。


区块高度:4370000

Metropolis Byzantium:这是以太坊的第三个阶段,于2017年10月推出。Byzantium 是 Metropolis 计划的两个硬分叉中的第一个。


在 Byzantium 分叉之后,还有一个 Metropolis 阶段规划的硬分叉:Constantinople。Metropolis 阶段之后将是以太坊部署的最后阶段,代 为 Serenity。



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


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



在一些通用计算机中的RAM数据存储模型就是采用同样的方式。以太坊拥有一个保存代码和数据的存储器,使用区块链来跟踪这个存储器随着时间的变化。就像通用目的存储程序计算机一样,以太坊可以把代码加载进状态机,然后运行这些代码,并把状态转换的结果保存在区块链上。


以太坊相比通用计算机的两个主要差异体现在:状态转换是由共识规则所控制的,状态是全局分布在一个共享的账本之上。如果能够基于共识规则来创建一台全局计算机,那么可以追踪任何复杂的状态变化并对状态机进行编程,这会带来什么太坊对这个问题提出了它的答案。



以太坊的组件


前文“区块链的组件”中所描述的内容,在以太坊中所对应的组件如下:


点对点(P2P) 络

以太坊运行在 Ethereum Main Network 上,这是一个通过 TCP 30303端口寻址的 络, 络层运行的协议名为 Vp2p。


共识规则

以太坊的共识规则,由以太坊黄皮书中的参考标准进行精确定义。


交易

以太坊交易是一个 络消息,主要包含交易的发送方、接收方、价值和数据载荷。


状态机

以太坊的状态转换由以太坊虚拟机(EVM)处理,这是一个基于栈的虚拟机,执行 bytecode(字节码指令)。被称为“智能合约”的 EVM 程序采用高级语言(例如 Solidity)编写,并编译为通过 EVM 执行的字节码。


数据结构

以太坊的区块链以数据库(通常采用 Google 的 LevelDB)的方式保存在每一个节点之上,区块链内包含了交易和系统的状态,经过哈希处理的数据保存在 Merkle Patricia Tree 数据结构之内。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年5月16日
下一篇 2019年5月16日

相关推荐