第7讲 经典:以太坊是什么?

第7讲 经典:以太坊是什么?

00:00
14:32


中本聪作为一个老派C++程序员,

编程水平并不高明,

但运气不错。

——Vitalik Buterin






上一章我们谈到,如果说比特币是区块链1.0的代表产品,那么以太坊可以说是前者的升级版本,即区块链2.0,将区块链技术应用于数字货币以外的领域之中。

如果说比特币是自由主义极客的理想试验,中本聪在孤岛上建立一个“理想国”,那么以太坊则是一块新大陆,只要符合这片土地的法则,任何人都可以在这片土地上构建自己的大厦。一开始这片土地上什么都没有,只有Vitalik Buterin这个少年在勾勒草图,但现在已经有很多的高楼大厦在施工,并且日益繁荣。截至今日,更多的大型企业正在试探着如何入驻,这片土地也在逐渐成为一个欣欣向荣的世界。



【区块链2.0,以太坊的诞生】
  
以太坊的诞生与比特币有着密切联系。作为区块链1.0最重要的应用,比特币是加密货币的代表,很好地实现了支付交易等职能。在很长一段时间里,很多人以为比特币就是区块链的一切,包括Vitalik Buterin也是一样。

作为一个跟着父亲长大的孩子,Vitalik Buterin有着超越常人的成熟,很多时候我们不能认为他是一个程序员,而把他看作是一个思想者。毕竟了解比特币的程序员不在少数,但没有任何一个人像他这样能够更敏锐地了解区块链在其它方面的应用。

以太坊大大拓展了区块链的疆土,Vitalik Buterin的以太坊是想要通过智能合约和智能资产来记录和转移更多复杂的资产类型,与比特币的图灵不完备不一样,以太坊具有更强大的脚本系统——图灵完备,能够运行任何货币、协议和区块链。

其实在区块链1.0时代,也就是比特币运用的区块链技术中已经包含了智能合约的概念,可以说正是智能合约的引入,使得区块链技术进化为驱动世界的力量。但是,由于比特币区块链支撑智能合约的脚本系统不完善,导致其应用在非金融领域十分困难,数学计算已经吞噬了全网80%的算力,每个区块的大小只有1M,能够记录的信息非常有限。

2013年年末,Vitalik Buterin发布了代表他增强区块链底层协议扩展性的伟大设想和期望的以太坊初版白皮书。此后,以太坊项目正式启动,并在比特币区块链基础上进行了重大改进:

1、完善脚本系统,使智能合约能够应用在各种非金融领域,这点非常重要;
2、平衡账目实现更加精细的账目控制;
3、底层协议保持简单。

由此,以太坊的出现,使得智能合约能力被自由释放。作为一个以区块链为基础,旨在提供图灵完备脚本语言的图灵完备平台,以太坊成功地将区块链带入了以智能合约为特色的2.0时代。如果说,比特币定位于一个应用,那么,以太坊则定位于平台。






【以太坊是什么?】
  
以太坊(Ethereum)的目标是打造一个运行智能合约的去中心化平台(Platform for Smart Contract),平台上的应用按程序设定运行,不存在停机、审查、欺诈、第三方人为干预的可能。智能合约开发者可以在其上使用官方提供的工具,来开发支持以太坊区块链协议的应用(即所谓的DAPP)。


(一)以太坊区块链的特点

作为一个可编程、可视化、更易用的区块链,以太坊允许任何人编写智能合约和发行代币,并有着自己的特点,主要包括:

1.单独为智能合约指定编程语言Solidity;

2.使用了内存需求较高的哈希函数:避免出现算力矿机;


3.uncle块激励机制:降低矿池的优势,减少区块产生间隔为15秒;

4.难度调整算法:一定的自动反馈机制;

5.gas限制调整算法:限制代码执行指令数,避免循环攻击;

6.记录当前状态的哈希树的根哈希值到区块:某些情形下实现轻量级客户端;

7.为执行智能合约而设计的简化的虚拟机EVM。


(二)核心:以太坊虚拟机(“EVM”)

以太坊狭义上是指一系列定义去中心化应用平台的协议,它的核心是以太坊虚拟机(“EVM”),主要工作是执行智能合约的字节码。在计算机科学术语中,以太坊是“图灵完备的”。开发者能够使用类似于现有的JavaScript和Python等语言为模型的其他友好的编程语言,创建出在以太坊模拟机上运行的应用。

和其他区块链一样,以太坊也有一个点对点网络协议。以太坊区块链数据库由众多连接到网络的节点来维护和更新。每个网络节点都运行着以太坊模拟机并执行相同的指令。因此,人们有时形象地称以太坊为“世界电脑”。

这个贯穿整个以太坊网络的大规模并行运算并不是为了使运算更高效。实际上,这个过程使得在以太坊上的运算比在传统“电脑”上更慢更昂贵。然而,每个以太坊节点都运行着以太坊虚拟机是为了保持整个区块链的一致性。去中心化的一致使以太坊有极高的故障容错性,保证零停机,而且可以使存储在区块链上的数据保持永远不变且抗审查。

以太坊平台本身没有特点,没有价值性。和编程语言相似,它由企业家和开发者决定其用途。不过很明显,某些应用类型较之其他更能从以太坊的功能中获益。以太坊尤其适合那些在点与点之间自动进行直接交互或者跨网络促进小组协调活动的应用。

例如,协调点对点市场的应用,或是复杂财务合同的自动化。比特币使个体能够不借助金融机构、银行或政府等其他中介来进行货币交换,而以太坊的影响可能更为深远。

理论上,任何复杂的金融活动或交易都能在以太坊上用编码自动且可靠地进行。除金融类应用外,任何对信任、安全和持久性要求较高的应用场景——比如资产注册、投票、管理和物联网——都会大规模地受到以太坊平台影响。由此,以太坊就成为一个多种类型去中心化区块链应用的平台。


(三)以太坊技术架构

一般情况下,区块链由六层结构组成,如下图:




数据层:是一个区块+链表的数据结构,本质是一个分布式区块链

网络层:p2p网络

共识层:制定区块链的获取货币的机制。比如比特币用的是PoW(Proof of Work 工作量证明机制):电脑的性能越好,越容易获取到货币奖励。还有PoS(Proof of Stake 权益证明机制):类似于众筹分红的概念,会根据你持有的货币数量和时间,给持有者发放利息。还有比如超级账本用的是PBFT(拜占庭容错)。

激励层:挖矿机制

合约层:以往的区块链是没有这一层的。所以最初的区块链只能进行交易,而无法用于其他的领域或是进行其他的逻辑处理。但是合约层的出现,使得在其他领域使用区块链成为了现实,比如用于IOT。以太坊中这部分包括了EVM(以太坊虚拟机)和智能合约两部分。

应用层:区块链的展示层。如以太坊使用的是truffle和web3.js。区块链的应用层可以是移动端,web端,或是融合进现有的服务器,把当前的业务服务器当成应用层。

而以太坊架构如下图:




以太坊最上层的是DApp(分布式应用)。它通过Web3.js和智能合约层进行交换。所有的智能合约都运行在EVM(以太坊虚拟机)上,并会用到RPC的调用。在EVM和RPC下面是以太坊的四大核心内容,包括:blockchain,共识算法,挖矿以及网络层。除了DApp外,其他的所有部分都在以太坊的客户端里,目前最流行的以太坊客户端就是Geth(Go-Ethereum)。


(四)以太坊是如何工作的?

以太坊中,“智能合约”这个流行的术语指的是在合同账户中编码——交易被发送给该账户时所运行的程序。用户可以通过在区块链中部署编码来创建新的合约。

只有当外有账户发出指令时,合同账户才会执行相应的操作。所以合约账户不可能自发地执行诸如任意数码生成或应用程序界面调用等操作,只有受外有账户提示时,它才会做这些事。这是因为以太坊要求节点能够与运算结果保持一致,这就要求保证合同账户的严格确定执行。

和比特币一样,以太坊用户必须向网络支付少量交易费用。这可以使以太坊区块链免受无关紧要或恶意的运算任务干扰,比如分布式拒绝服务(DDoS)攻击或无限循环。交易的发送者必须在激活的“程序”中,每一步都进行付款,包括运算和记忆储存。费用通过以太坊自有的有价代币,即以太币的形式支付。

交易费用由节点收集,节点使网络生效。这些“矿工”就是以太坊网络中收集、传播、确认和执行交易的节点。矿工们将交易分组——包括许多以太坊区块链中账户“状态”的更新——分成的组被称为“区块”,矿工们会互相竞争,以使他们的区块可以添加到下一个区块链上。矿工们每挖到一个成功的区块就会得到以太币奖励。这就为人们带来了经济激励,促使人们为以太坊网络贡献硬件和电力。

和比特币网络一样,矿工们有解决复杂数学问题的任务以便成功地“挖”到区块,这被称为“工作量证明”。一个运算问题,如果在算法上解决,比验证解决方法需要更多数量级的资源,那么它就是工作证明的极佳选择。

为防止比特币网络中已经发生的,专门硬件(例如特定用途集成电路)造成的中心化现象,以太坊选择了难以存储的运算问题。如果问题需要存储器和CPU,事实上理想的硬件是普通的电脑。这就使以太坊的工作量证明具有抗特定用途集成电路性,和比特币这种由专门硬件控制挖矿的区块链相比,能够带来更加去中心化的安全分布。


(五) 以太币(ETH)VS比特币(BTC)

以太币作为以太坊体系里的流通货币,经过4年的发展,已成为仅次于比特币的第二大虚拟货币体系,并大有“接棒”比特币继续大涨的势头。不过,虽然两者都是数字货币,但是以太币的主要目的不是像比特币那样把自己建成为支付替代物,而是使以太坊的运营便利化且货币化,从而使得开发人员可以建立并运行分布式应用程序。

另外,以太币相较于比特币更为复杂,概要地说,以太坊的数量以Pre-mine(矿前)+Block rewards(区块奖励)+Uncle rewards(叔块奖励)+Uncle referencing rewards(叔块引用奖励)这种形式存在。


如上表所示,我们可以具体地从以下几方面看出以太币和比特币的区别:

1.从总量上看,比特币是固定2100万枚,而以太币初期发售是6000万枚,但会加上每年挖出的1800万枚左右。

2.从发行机制上看,比特币每四年减半,而以太币是固定值。这也是这两种币的最大区别。

3.从核心算法上看,两边虽然共识机制是一样的,但是各有不同的核心算法。

4.从区块时间上看,区块的时间是比特币每10分钟出一个区块,而以太坊是12秒到15秒一个区块。

5.从区块奖励上看,目前比特币的区块奖励是12.5个区块,而以太坊是5个区块。

6.从挖矿收益上看,比特币矿工的收益包括挖矿的奖励以及在区块中的交易所产生的手续费。而以太坊的收益来源则更多,除了挖矿的收益,还包括引用最近两个叔块的奖励,以及区块中运行合约的Gas。


 
【结语】
  
随着互联网的不断发展,以太坊区块链也在日益完善。自2015年11月以太坊诞生到2018年2月,短短2年半的时间,全球已有500多个以太坊应用诞生。其发展态势之好,以至于有评论称,以太坊的价值实际上更优于比特币。相比于比特币仅局限于一种单纯的数字货币,以太坊智能合约和以太坊虚拟机的商业盈利性都为以太坊的价值大添光彩。

以太坊目前已经占据区块链应用底层的半壁江山,这其中既有优于比特币的特性、以太坊抢占竞争高地带来的红利,也有包括摩根大通、微软在内的大型企业组成的以太坊企业联盟(EEA)带来的正面效果,如果以太坊继续改进优化,未来是否可期?当然,The DAO事件带来的“中心化”争议,谁是真正的“忒修斯之船”已成为以太坊的锥心之痛,虚拟猫CryptoKitties上线造成的网络拥堵,以太坊的缺陷也更明显地暴露出来。

然不管未来,以太坊是否拥有超越比特币的潜力,但我们确实通过以太坊看到区块链除了数字货币外,还有一个多元化的开发平台的精彩世界。

以上内容来自专辑
用户评论
  • 梁惜芳

    学到了知识

  • 听友9296889

    不错的节目,我要学习学习再学习,all in all