区块链技术与应用肖臻老师笔记整理之------18-ETH-GHOST
Posted 云灬沙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链技术与应用肖臻老师笔记整理之------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 87∗coinbase奖励的出块奖励,同时矿工将uncle block每包含进去一个叔区块会额外获得奖励 1 32 ∗ c o i n b a s e \\frac{1}{32}*coinbase 321∗coinbase。一个区块最多可以包含两个uncle block
这样的设计有利于系统中出现分叉之后及时合并
但是这样设计也有缺陷:
- 如果出现第三个块怎么办?
- 如果矿池出于商业利益,故意不把uncle区块包含进去
改进之后的版本:
- 后面的区块也可以继续包含,而不再仅是unlce辈分的,可能是祖父,曾祖父等,但是也会进行限制,以太坊规定只能有6代unlce block可以被包含,在七代以内有共同的祖先才可以,隔代减少
如果不限制辈分,那么全节点需要维护的状态就太多了
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的主要内容,如果未能解决你的问题,请参考以下文章
区块链技术与应用肖臻老师笔记整理之------24-ETH-反思
区块链技术与应用肖臻老师笔记整理之------25-ETH-美链
区块链技术与应用肖臻老师笔记整理之------22-ETH-智能合约
区块链技术与应用肖臻老师笔记整理之------22-ETH-智能合约