以太坊学习2:以太坊简介

什么是以太坊

以太坊(Ethereum)是一个开放的、可编程的区块链平台,属开源项目,它允许开发人员在其上通过编写智能合约来建立和发布“去中心化”的分布式应用。如果把比特币背后的区块链技术视为“区块链 1.0”,以太坊则被称为“区块链 2.0”。

以太坊的发展历程和未来规划

2013年末,Vitalik Buterin 第一次描述了以太坊,不久后,Vitalik 发表了以太坊白皮书(White Paper),详细描述了以太坊协议技术设计和基本原理,以及智能合约的架构,[详见附件以太坊白皮书]。

2014年1月,Vitalik 在美国佛罗里达州迈阿密举行的北美比特币会议上正式宣布了以太坊。与此同时,Vitalik 开始和 Gavin Wood 博士合作共同创建以太坊。2014 年 4 月, Gavin 发表了以太坊黄皮书(Yellow Paper),作为以太坊虚拟机(Ethereum Virtual Machine)的技术说明[详见附件:以太坊黄皮书]。

2015年5月9日,以太坊发布了试运行版(pre-release step 0),代号 Olympic testnet,该版本允许任何人在其上进行尽可能的折腾,来暴露以太坊的各种问题,并对参与测试的人有所奖励。

2015年7月30日,以太坊发布了第一个版本(Release step 1.0),代号 Frontier。该版本主要面向技术开发者,允许开发者编写智能合约和去中心化应用并部署在以太坊实时网络上。此外,矿工们开始加入以太坊网络以帮助保障以太坊区块链的安全并从挖矿中赚取以太币。

2016年3月14日,以太坊发布了第二个版本(Release step 2.0),代号 Homestead,新特性开始于区块 1,150,000,此版本被视为是第一个正式版本。该版本 实现了 EIP-2、EIP-7、EIP-8(EIP:Ethereum Improvement Proposal,以太坊改进提议)。Homestead 版本后来又历经了如下几个小版本:

  • Release step 2.1: DAO Hard Fork
  • Release step 2.2: Tangerine Whistle, aka Anti-DoS, EIP 150
  • Release step 2.3: Spurious Dragon, aka State-clearing, EIP 158/161

2017年10月16日,以太坊发布了第三个版本的第一阶段(Release Step 3.0),代号 Metropolis phase 1: Byzantium,新特性开始于区块 4,370,000,该版本解决了多项隐私问题,并带来了多项新特性,包括:EIP-140、658、196、197、198、211、214、100、649。第三个版本的第二阶段(Release Step 3.1),代号 Metropolis phase 2: Constantinople,预计将在 2018 年发布。

以太坊的第四个版本(Release Step 4.0),代号 Serenity,暂未公布发布时间, 该版本将会修改共识算法,由Proof-of-Work(PoW) 修改为 Proof-of-Stake(PoS)。

以太坊的实现版本

以太坊本身是一种协议,需要有编程语言加以实现,并且在 github 上已经有多种编程语言将其实现。比如 go-ethereum 是采用 go 语言进行开发实现的,它是以太坊官方推荐的,功能实现最完备的客户端。主流编程语言实现如下:

以太坊与比特币、超级账本的比较

以太坊相较与比特币:

  • 比特币仅支持价值转移,不支持存证、智能合约,以太坊三者都支持。
  • 比特币只适用于公链,而以太坊公链、联盟链(需要修改源码)、私链皆可。
  • 比特币在公链上发行的比特币是有限的,以太坊在公链上发行的以太币则没有限制。
  • 比特币采用 UTXO(Unspent Transaction Output)模式实现账户模型,而以太坊采用更通俗易懂的钱包余额模式,两者各有其适用场景和优缺点。
  • 两者现阶段都使用 PoW 共识算法,比特币暂无计划更改共识算法,而以太坊有计划改进。

以太坊相较与超级账本:

  • 以太坊天然支持价值转移、存证、智能合约,超级账本仅支持智能合约,价值转移、存证功能需要自行实现。
  • 以太坊需要代币(以太币)的支撑来维护网络,而超级账本不依赖任何代币,其本身也不生产代币。
  • 超级账本面向企业级的联盟链,以太坊公链、联盟链(需要修改源码)、私链皆可。
  • 以太坊仅支持单链,超级账本支持一条主链下派生多条子链(联盟链)。
  • 以太坊编写智能合约的编程语言,是新兴语言,有一定的学习成本,超级账本目前支持 Go、Java 两种主流语言编写智能合约。
  • 以太坊现阶段采用 PoW 共识算法,超级账本现阶段采用 BFT 共识算法,并且实现了可插拔。

以太坊相关资料链接

国内知名论坛/博客:

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :