以太坊黄皮书学习记录-1

2018-09-09  本文已影响0人  胡智威

最近在研究学习区块链虚拟机方面的技术。这自然绕不开最为经典的以太坊EVM的设计与实现,所以很有必要重新研读一下以太坊的黄皮书。本文即黄皮书学习记录的第一篇[1]

1. 引言

都是一些基本概念。略。

2. 区块链范式(The Blockchain Pradigm)

这一章节主要是以公式形式从high level的层面来描述以太坊如何设计的。具体的,可分为从交易层面、从区块层面2个方面来描述。

首先,以太坊可看作是基于交易的状态机:

\sigma_{t+1} \equiv \Upsilon(\sigma_{t}, T) \tag 1

其中,

区块链是将交易打包进区块里;区块增长即矿工挖矿的过程,可用下面的表达式来描述:

\sigma_{t+1} \equiv \Pi(\sigma_t, B) \tag 2
B \equiv (\ldots, (T_0,T_1,\ldots),\ldots) \tag 3
\Pi(\sigma,B) \equiv \Omega(B, \Upsilon(\Upsilon(\sigma,T_0),T_1)\ldots) \tag 4

其中,

另外,表达式4描述了Π的具体定义:当前状态σ通过T0、T1……等所有在B区块里的交易集合T中交易,逐个状态转换并给予矿工激励

按照黄皮书的说法,这个模型描述了包括以太坊在内的所有基于共识的去中心化交易系统

2.1. 值

本节主要讲的是换算关系,例如:1 ETH = 10^18 Wei。ETH也可写做中古英语字母Ð。Ð发音为"th"[2]

2.2. 如何确定历史

因为是分布式的结构,从创世区块开始每个节点对于下一个区块是什么都可以有自己的意见,也就是会产生分叉。所以黄皮书这里描述了区块树(tree of blocks)的概念。
而达成“共识”的过程就是所有的节点都公认唯一一条从树根(创世区块)到叶子(最新区块)的路径,以此形成“区块链”。

以太坊使用了简化版的GHOST协议,作为产生共识的机制。

GHOST是Sompolinsky和Zohar在2013年提出的一个协议,全称为Greedy Heaviest Observed Sub-Tree[3],用将比特币的最长链(longest chain)策略改为拥有最多难度的子树(heaviest sub-tree)策略。

虽然黄皮书上这么说,但也有人指出以太坊并没有使用GHOST协议,因为叔区块并不计算在总的难度值内[4]。以太坊用的是修改后的包容性协议(Inclusive Protocol[5])。
Inclusive协议的主要内容是:

所以这么看,以太坊用的是修改版的Inclusive协议:

具体以太坊目前的实现,以及与GHOST协议和Inclusive还需要进一步学习核实

3. 命名约定

黄皮书在本章主要讲了后面会将大量出现的变量是按什么规则命名的

状态集合

状态集合是坠高层级的变量:

函数

操作高级别状态的函数,用大写希腊字母来表示。例如:\Upsilon是状态转移函数

对大多数函数,也用大写字母来描述。例如:

序列相关内容

其他一些规则

参考资料:


  1. https://github.com/ethereum/yellowpaper

  2. https://www.reddit.com/r/ethereum/comments/23hys7/psa_%C3%B0_the_symbol_for_ether_is_pronounced_th_as_in/

  3. GHOST协议,https://eprint.iacr.org/2013/881.pdf

  4. https://ethereum.stackexchange.com/questions/38121/why-did-ethereum-abandon-the-ghost-protocol

  5. http://www.cs.huji.ac.il/~yoni_sompo/pubs/15/inclusive_full.pdf

上一篇 下一篇

猜你喜欢

热点阅读