「币圈小白进阶计划」略说以太坊之三

文/韩大楠

原文首发币乎

「币圈小白进阶计划」略说以太坊之三_第1张图片

大家好,我是大楠呀!

这是「币圈小白进阶计划」的二十九篇,希望大家多多给出建议。

谢谢大家!


写在前面

这篇是以太坊之三,再来说说以太坊。

这篇我们再来详细说说以太坊系列三,会说到以太坊虚拟机、以太坊的账户以及以太坊的全局状态。


以太坊运作方式

与其它区块链一样,以太坊需要几千人在自己的计算机上运行一个软件,为该网络提供动力。网络中的每个节点(计算机)运行一个叫做以太坊虚拟机(EVM)的软件。

将以太坊虚拟机想象成一个操作系统,它能理解并执行通过以太坊特定编程语言编写的软件。由以太坊虚拟机执行的软件/应用程序被称为“智能合约”。


什么是以太坊虚拟机?

上篇,我们说到以太坊虚拟机,我们来简单带过一下。

作为一种比较新的利用比特币技术的开发项目,以太坊致力于实施全球去中心化且无所有权的的数字技术计算机来执行点对点合约。简单来说就是,以太坊是一个你无法关闭的世界计算机。

它是一个可编程的区块链,用户可以按照自己的意愿创建复杂的操作。为不同的区块链应用提供服务。简单来说,以太坊就是一系列协议,核心是以太坊虚拟机(“EVM”),可以执行任何复杂的代码。


以太坊虚拟机是做什么的?

当以太坊区块链上有转账的时候,以太坊虚拟机会按照下面的步骤来执行:

1.确认转账是否有正确的数值,确认签名的有效性以及是否转账nonce符合特定转账数量的nonce。如果有误差,转账会被作为错误返回。

2 计算转账需要的费用,并且收取燃料费用。

3 执行数字资产转账到特定地址。

以太坊虚拟机会检测,发出者有足够的手续费用,不然转账就会退回。而且转账费用不会退回,这会支付给矿工。

如果转账失败是因为接受者地址有问题,以太坊虚拟机会把发出的资金数量以及相关的手续费,退还给发出者。

总结

以太坊虚拟机是以太坊区块链中,非常重要的部分。它在智能合约存储,执行和验证过程中,都有非常重要的作用。

有了以太坊虚拟机和智能合约,你可以通过简单地点击按键,就可以在全球进行交易,也避免了多余的费用。


以太坊的账户

以太坊的账户包括两个,一个是外部账户(EOA),还有一个是合约账户。

1、外部账户(EOA)

由私人密码控制,用户掌握了账户就掌握私钥。

外部账户没有代码,可以通过创建和签名一笔交易从一个外部账户发送消息。

2、合约账户

由合约代码来控制,只能由一个EOA账号来操作。

与外部拥有的账户不同,合约账户不能自行发起新的交易,合约帐户只能触发交易以响应其他交易。每当合约账户收到一条消息,合约内部的代码就会被激活,允许它对内部存储进行读取和写入,和发送其它消息或者创建合约。

外部账户与合约账户的区别

一个外部拥有账户可以通过创建和用自己的私钥来对交易进行签名,来发送消息给另一个外部拥有账户或合约账户。

在两个外部拥有账户之间传送的消息只是一个简单的价值转移。

从外部拥有账户到合约账户的消息会激活合约账户的代码,允许它执行各种动作。

合约账户只有在接收到一个交易之后(从一个外部拥有账户或另一个合约账户接),为了响应此交易而触发一个交易。

因此,在以太坊上任何的动作,总是被外部控制账户触发的交易所发动的。


以太坊的账户的四个部分

nonce:用于确定每笔交易只能被处理一次的随机数。如果账户是一个外部拥有账户,nonce代表从此账户地址发送的交易序号;如果账户是一个合约账户,nonce代表此账户创建的合约序号

balance:账户目前的以太币余额。1Ether=10^18Wei

storageRoot:Merkle树的根节点Hash值。Merkle 树会将此账户存储内容的Hash值进行编码,默认是空值

codeHash:此账户EVM(以太坊虚拟机)代码的hash值,对于合约账户,就是被Hash的代码并作为codeHash保存;对于外部拥有账户,codeHash域是一个空字符串的Hash值


以太坊的全局状态

以太坊的全局状态由账户地址和账户状态的映射组成,这个映射被保存在一个叫做Merkle Patricia树的数据结构中。

Merkle Patricia树由大量叶子节点、一系列中间节点、一个根节点组成。

1.树的底部包含了源数据的大量叶子节点。

2.中间节点是两个子节点的Hash值。

3.根节点同样是两个子节点的Hash值,代表着整棵树。

这棵树要求存在里面的值(value)都有一个对应的key。从树的根节点开始,key会告诉你顺着哪个子节点可以获得对应的值,这个值存在叶子节点。在以太坊中,key/value是地址和与地址相关联的账户之间状态的映射。

在以太坊的情况下,状态树的键/值映射位于地址及其相关帐户之间,包括每个帐户的balance、nonce、codeHash、storageRoot(其中storageRoot本身就是树)。


参考资料

以太坊

EthFans

《图说区块链》、《区块链:定义未来金融和经济新格局》

《白话区块链》、《区块链:从数字货币到信用社会》


写在后面

以上就是大楠的小白科普第二十九篇,略说以太坊之三,还是硬核,说到以太坊虚拟机、以太坊的账户以及以太坊的全局状态。你要是发现了什么不对的地方,要和大楠说啊,就在评论区,留言给我啦。

感谢大家啊!


大楠是谁?

一个很偶然撞进币乎的币圈小白,是个正在不断成长的大楠。

那你喜欢她么?

当然喜欢啦,大楠欢迎来撩哦。

微信:15222567477,加大楠也要备注的呢,就叫~

你可能感兴趣的:(「币圈小白进阶计划」略说以太坊之三)