区块链技术与应用【肖臻老师】笔记整理之------18-ETH-GHOST

注:没有全部复原,抽取了主体知识,加入了一些自己的理解,强烈建议去学习肖臻老师的课程,这绝对算得上是国内区块链讲解的顶级教程,纯学术和技术

以太坊的出块时间10多秒,比BTC提升了将近40倍,但是也带来了一些问题:

​ BTC和ETH都是运行在应用层的共识协议,底层是P2P的Network,这个over network本身的传输时间是比较长的,因为它的拓扑协议在做flooding的时候没有考虑实际的拓扑结构,这就导致发布的区块传到其他位置需要10几秒的时间,

临时分叉产生的单块被称为orphan block/stale block(孤儿块,陈旧的块)

一个问题是Mining centralization,当矿池和普通miner同时出块的时候,矿池会在拓扑中占据有利位置(比如部署多个接口,占据有利位置等),导致的问题是其他人不会跟随着普通miner挖出来的块之后挖,而是跟随着pool,使pool所在的链成为最长合法链,对于普通的miner是不利的,会出现恶行循环,越来越集中。

GHOST协议的核心思想:挖出块虽没有采纳但是会给予一些奖励。

以太坊将orphan block称为uncle block, uncle block获得 7 8 ∗ c o i n b a s e \frac{7}{8}*coinbase 87coinbase奖励的出块奖励,同时矿工将uncle block每包含进去一个叔区块会额外获得奖励 1 32 ∗ c o i n b a s e \frac{1}{32}*coinbase 321coinbase。一个区块最多可以包含两个uncle block

这样的设计有利于系统中出现分叉之后及时合并

区块链技术与应用【肖臻老师】笔记整理之------18-ETH-GHOST_第1张图片

但是这样设计也有缺陷:

  1. 如果出现第三个块怎么办?
  2. 如果矿池出于商业利益,故意不把uncle区块包含进去

改进之后的版本

  • 后面的区块也可以继续包含,而不再仅是unlce辈分的,可能是祖父,曾祖父等,但是也会进行限制,以太坊规定只能有6代unlce block可以被包含,在七代以内有共同的祖先才可以,隔代减少

区块链技术与应用【肖臻老师】笔记整理之------18-ETH-GHOST_第2张图片

如果不限制辈分,那么全节点需要维护的状态就太多了

uncle reward :如果被miner包含进去之后,会获得出块奖励的 7 8 , 6 8 , 5 8 , 4 8 , 3 8 , 2 8 \frac{7}{8},\frac{6}{8},\frac{5}{8},\frac{4}{8},\frac{3}{8},\frac{2}{8} 87,86,85,84,83,82,注意,没有 1 8 \frac{1}{8} 81,算上coinbase本身一共七代块

但是miner无论包含那一代uncle block,获得的奖励都是$ \frac {1}{32}$

uncle block不会得到gas fee,也就是tx fee

将uncle block包含进去时不执行uncle block里面的交易,否则有些交易会成为非法交易,与主链交易冲突;

只会检查uncle block是不是符合工作量证明的,而不会去检查区块里具体交易的合法性

分叉后只有第一个区块可以获得奖励,其他的都不可以,避免分叉攻击,如果认可后面的块,那么分叉攻击的成本大幅度降低,不利于合并区块和区块链安全

区块链技术与应用【肖臻老师】笔记整理之------18-ETH-GHOST_第3张图片

你可能感兴趣的:(区块链,区块链,以太坊)