新生大学2018年10月份推出了区块链技术系列课程之《树哥解读以太坊》,由树哥主讲。本简书文集记录我的学习笔记。
以太坊通过Gas机制支撑起以太坊的经济基础。在以太坊中,消耗燃料的就是虚拟机。如果把以太坊比喻成一辆车的话,虚拟机则可以比喻成发动机。虚拟机是以太坊相比于比特币最大的区别,因为有了虚拟机,以太坊才有了执行智能合约的功能。
一、以太坊虚拟机
EVM:Ethereum Virtual Machine 。它是为执行智能合约而创造的虚拟环境。比特币也可以有很简单的智能合约功能,但以太坊虚拟机又为什么而存在呢?
- 给智能合约的开发者提供一个图灵完备的执行环境。
图灵的故事(略)。(图灵奖、图灵测试、图灵机、密码学等。)
图灵完备的概念。
在可计算性理论里,如果一系列操作数据的规则(如指令集、编程语言、细胞自动机)可以用来模拟单带图灵机,那么它是图灵完备的。这个词源于引入图灵机概念的数学家艾伦·图灵。(百度百科)
可计算的问题:通过有限次运算就能得出答案的问题。
不可计算的问题:算到地老天荒,还在一直算都算不出来的问题。
图灵完备:能实现图灵机所有功能的计算机或者计算机语言。
由此来看,比特币不是图灵完备的,以太坊是图灵完备的。比特币为了安全考虑,限制了一些功能强大的循环语句和跳转语句。以太坊作为一个可编程的区块链,必须不同的用户提供执行任意程序。
- 屏蔽外界环境
以太坊网络连接着成千上万的节点,这些节点必然是各种不同的操作系统,那么以太坊如何保证这些节点都保存相同的数据,而不受外界环境影响呢?它使用了虚拟机的架构。
虚拟机可以在一台计算机上忽略硬件,完全虚拟出一个与外界隔绝的标准环境。它让智能合约有一个标准的执行环境,而不用考虑外界的软硬件环境。
那虚拟机需要具备什么样的条件,才能满足要求呢?
①简单、通用、精确;②完善的隔离机制;
二、虚拟机执行过程
转账原理笔记。其中交易创建由钱包完成,交易广播、交易记录由虚拟机完成。虚拟机还要对Gas进行校验。
给家人转账的过程:
第一步:创建这笔交易
- 私钥签名
- 序列号nonce
- gas price 燃料单价。1ETH = 10^18 wei,1 G wei = 10^9 wei
- gas limit 燃料限额。其值要大于实际消耗的总额。
- to 转给谁
- value 转账费
第二步:以太坊节点审核这笔交易
用公钥验证;确认账户余额是否大于交易起始费用。(交易起始费用 = 要转的费用 + 最大愿意支付的费用 gas limit * gas price)
注意:前面的章节提到过,gas limit 如果太小的话,虚拟机没执行完,会退回到初始状态,花费的gas不退回,这个过程不是发生在交易验证阶段,而是在交易广播出去,被矿工打包到区块中,再由虚拟机执行时才会发生。
第三步:以太坊虚拟机执行这笔交易
gas price 设置合理,矿工打包进区块并广播,节点收到后执行,并记录每一步的花销、状态。如果没有执行成,就到了gas的限额,代码会回到初始状态,消耗的gas 折算成以太币支付给矿工;如果gas limit 设置合理,消耗的gas折算为以太币支付给矿工,剩余的gas 退回给本人。
小结:
图灵不断抽象问题并把它逐渐变成通用性问题,最终形成了通用型的解决方案:图灵机,也就是通用计算机的雏形。以太坊就是将单个转账记账问题进行通用化的一个典型案例,通过把问题通用化之后形成了智能合约的概念,任何要实现的功能都可以由智能合约来实现。
以太坊是区块链世界中第一个区块链操作系统,理解以太坊虚拟机的执行过程对了解其它区块链项目的虚拟机会有很大帮助。
|
|
|
|
|
|
|
|
|
|
|

吉祥
2019年03月14日22:42:53
网友评论