区块链研习社区块链大学区块链

《锋哥论道区块链》之五区块链2.0之以太坊--概述

2019-04-29  本文已影响8人  7dfc697cf7a9

1.以太坊的产生
当中本聪在2009年1月启动比特币区块链时,他同时向世界引入了两种未经测试的革命性的新概念。一种是比特币(bitcoin),是一种去中心化的点对点的网上货币,在没有任何资产担保、内在价值或者中心发行者的情况下维持着价值。另一种是POW共识机制,基于工作量证明的区块链概念使得人们可以就交易顺序达成共识。
在比特币出现之前,阻碍去中心化数字货币发展的主要问题就是双重支付问题。例如某人有50BTC并且同时向A和B发送这50BTC,能否找到一种方式可以决定那一笔交易先到问题?中本聪的区块链是第一个可靠的去中心化解决办法。作为应用的比特币可以被描述为一个先申请(first-to-file)系统,只有被首先确认的交易才会生效。
在2013年末,以太坊的发明者Vitalik Buterin建议能够通过程序重组来运行任意复杂运算的单个区块链应该包含其他的程序。2014年,以太坊的创始人Vitalik Buterin, Gavin Wood和Jeffrey Wilcke开始研究新一代区块链,试图实现一个总体上完全无需信任基础的智能合约平台。2014年8月,以太坊(ethereum)项目通过向全世界预售以太币(ether)方式启动。由瑞士非盈利性的以太坊基金会开发。
预发布:Olympic testnet —— 2015年5月发布
发布第一个版本:Frontier —— 2015年7月30日发布
发布第二个版本: Homestead —— 2016年3月14日发布(π日)
发布第三个版本: Metropolis —— 即将宣布
发布第四个版本:Serenity –—— 即将宣布
Homestead是以太坊平台的第二个主要版本,也是以太坊发布的第一个正式版本。它包括几处协议变更和网络设计变更,使网络进一步升级成为可能。Olympic testnet阶段(Frontier发布之前)见证了很多主要的改进,紧接着就发布了Frontier。以太坊的第一个版本Frontier实际上是测试版,供开发者学习、试验并开始建立以太坊去中心化的应用和工具。以太坊区块链一旦到达1,150,000号区块,以太坊网络就会经历一个硬分叉。Homestead会自动在1,150,000号区块引入,大概会发生在2016年3月14日,也就是π日前后。
如果你正在运行一个和实时网络连接的节点,非常有必要升级到Homestead兼容的客户端。这些客户端版本列在以太坊客户端下。如果客户端不兼容,你会进入到错误的分叉,不能和网络其他部分同步。
以太坊(Ethereum)是一个建立在区块链技术之上,运行智能合约的开源的、去中心化的平台。通过其专用加密货币以太币提供去中心化的虚拟机(EVM)来处理点对点合约。它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用,这些应用运行在定制的区块链上,完全按照既定程序运行,不存在停机,审查,欺诈或第三方干扰的可能性。
以太坊的目标就是提供一个带有内置的成熟的图灵完备语言的区块链,用这种语言可以创建合约来编码任意状态转换功能,用户只要简单地用几行代码来实现逻辑,就能够创建以上提及的所有系统以及许多我们还想象不到的的其它系统。
2.以太坊分层架构模型
以太坊作为公有链,基于EVM提供新一代去中心化的智能合约平台,分层架构模型如下:


11.png

3.以太坊VS比特币
同比特币网络一样,以太坊首先也是一个区块链网络,具有区块链网络的共有特征:一个P2P网络,每个节点都保存了整个区块链的数据,区块一个个串接起来,每个区块里面存放着一笔笔的交易。但同比特币网络相比,它也有很多不同点,下面的表格大致列举了两者的一些主要区别点:


21.png 22.png 23.png

4.EVM(以太坊虚拟机)
以太坊虚拟机(EVM)是以太坊平台的核心,可以执行任意复杂算法的编码。每个网络节点都运行着以太坊虚拟机(EVM)并执行相同的指令。每个以太坊节点都运行着以太坊虚拟机是为了保持整个区块链的一致性。去中心化的一致性使以太坊有极高的故障容错性,保证零停机,而且可以使存储在区块链上的数据保持永远不变且抗审查。
5.以太币(ether)
以太币是以太坊区块链项目的电子货币。Ether币最小的单位是Wei,也是命令行默认的单位, 然后每1000个进一个单位,依次是
kwei (1000 Wei)
mwei (1000 KWei)
gwei (1000 mwei)
szabo (1000 gwei)
finney (1000 szabo)
ether (1000 finney)
简单地说就是就是1 以太币 = 10^18 Wei
6.智能合约(smart contract)
6.1智能合约的通俗解释
(1)现实生活中的合同
在现实生活中,我们做复杂的交易,通常甲方和乙方都会签订1份合同。甲方呢,出钱; 乙方呢,根据合同内容,提供对应的产品,或者项目,或者服务。在整个合同执行过程中,如果其中1方违约,怎么办呢?去法院打官司。但打官司成本很高,时间周期可能也很长,打官司付出的成本很多时候超出了违约带来的损失。所以不可能每一个现实生活中的合同违约,都闹到法院去处理。很多都是自己协商,或者不了了之。
这个问题的根源是什么呢?是因为合同的执行,是由人在执行!!!是人,就有变数,就可能违约!如果是台机器呢?严格执行某种规则的机器,那也就不会存在这个问题。试想一下,如果我们有某种强大的“机器”,可以把合约放在里面,由这个机器来保障合约的执行,而不是由人来控制执行,那不就解决了人的违约问题吗?
(2)生活中的智能合约
所谓“智能合约”,就是这种合约的执行,不是通过人来执行。而是设好规则,由机器来执行!!
“智能合约”(smart contract)这个术语呢,其实并不是有了以太坊之后才提出来的。这个术语至少可以追溯到1995年,是由多产的跨领域法律学者尼克·萨博(Nick Szabo)提出来的。
在以太坊出现之前呢,现实生活中其实也有一些智能合约的案例,只是这些案例都比较简单,应用场景很狭窄。
场景1:自动售卖机。你塞入硬币,机器吐出一瓶水或者零食什么的。 除非机器出故障,否则机器不会违约,它只会按设定的规则严格执行。
场景2:信用卡自动还款。只要你和银行约定了这个合约,到期了自动执行,不需要人干预
场景3:水电煤代扣。同场景2同样的道理
(3)以太坊的智能合约
上面这些场景呢,都比较简单,局限性很大。而尼克•萨博关于智能合约的工作理论,之所以没有能大规模的应用,一个重要原因是因为缺乏能够支持可编程合约的数字系统和技术。而以太坊技术的出现解决了该问题,不仅可以支持可编程合约,而且具有去中心化、不可篡改、过程透明可追踪等优点,天然适合于智能合约。
在以太坊中,所谓的“智能合约”就是一段代码,用Solidity语言来编写的(以太坊设计的类似于Java/C++的高级语言),这段代码被部署到区块链网络之后,就不可篡改,由网络来保证这个合约的执行。
2.2智能合约专业阐述
智能合约可以理解为在区块链上可以自动执行的(由事件驱动的)、以代码形式编写的合约(特殊的交易)。简单的说以太坊平台上的程序称之为智能合约。
智能合约是部署在区块链上的代码,区块链本身不能执行代码,代码的执行是在本地的EVM中,实际上,部署在区块链上代码是能够在本地产生原智能合约代码的代码,可以理解区块链为一个数据库,而客户端从数据库中读取了存储的运行代码,并在本地运行后,将结果写入到了区块链这个数据库中。
本质上,以太坊的钱包也是智能合约的一个应用,以太坊搭建的是一个可供编写各种应用的平台。


25.png
上一篇下一篇

猜你喜欢

热点阅读