18.ETH-GHOST-北大肖臻老师客堂笔记

北京大学肖臻老师《区块链技术与应用》公开课第 18 讲的主题是**"以太坊的 GHOST 协议"**。

在比特币中,废弃的区块被称为"孤块"且没有任何奖励;而在以太坊中,由于出块速度快,为了安全性与公平性,引入了 GHOST 协议及其变种,将这些废弃区块称为**"叔父块" (Uncle Block)** 并给予奖励。

以下是本课内容的结构化详细总结

一、 引入 GHOST 协议的背景

  1. 出块时间差异
  • 比特币:平均 10 分钟出一个块。
  • 以太坊:平均 15 秒出一个块。
  1. 带来的问题
  • 高分叉率 (High Stale Rate):出块太快,导致区块还在网络传播时,别的矿工可能已经挖出了另一个块。这会导致大量的"孤块"产生。
  • 安全性降低:如果大量算力浪费在孤块上,真正维护主链安全的算力比例就会下降,攻击者更容易发动 51% 攻击。
  • 中心化风险:大型矿池拥有更好的网络连接,能更快接收和广播区块,产生孤块的概率低;而个体矿工很容易挖出孤块(白干)。久而久之,个体矿工会不得不加入大矿池,导致算力集中。

二、 GHOST 协议的核心思想

  • 全称:Greedy Heaviest Observed Subtree (贪婪最重观察子树)。
  • 原版 GHOST 逻辑
  • 在比特币的"最长链原则"中,只看哪条链最长。
  • GHOST 提出,应该选择**"包含工作量最多"**的那条路径。也就是说,在判断哪条链是主链时,不仅要看主链上的区块,还要把该链产生的"分叉区块"(孤块/叔块)的算力也加进去计算权重。
  • 好处:即使有人攻击主链,但他很难伪造出大量的"叔块"来增加自己链的权重。

三、 以太坊中的 GHOST 实现 (Modified GHOST)

以太坊并没有完全照搬原始的 GHOST 协议(即主链选择依然主要依赖最长链逻辑),而是借鉴了其精神 ,引入了叔父块 (Uncle Block) 机制并给予奖励。

1. 什么是叔父块?
  • 如果一个矿工挖出的区块是合法的,但因为网络延迟等原因没有成为主链区块(被其他人抢先了),这个区块在比特币里是"废块",但在以太坊里可以被下一个主链区块"收留",成为叔父块
  • 定义 :当前区块的祖父节点直接子节点(即父亲的兄弟)。
2. 叔父块的规则
  • 收留限制 :一个主链区块最多只能包含 2 个 叔父块。
  • 代数限制 :叔父块必须是当前区块的 7 代以内 的直系亲属(从爷爷辈到太爷爷...最多追溯 7 代)。
  • 合法性:叔父块必须是合法的区块头(Header),不要求交易合法(全节点只检查叔块头,不执行叔块里的交易)。
3. 奖励机制 (Incentive)

为了鼓励矿工引用叔父块,以太坊设计了双向奖励:

  • 对于"挖出叔父块"的矿工 (Uncle Reward)

  • 虽然你的块没进主链,但系统依然给你发钱。

  • 公式:。

  • 其中 是叔块与当前区块的距离(辈分)。

  • 如果是直接叔叔 (),拿 7/8 的奖励。

  • 如果是隔代叔叔 (),拿 6/8,以此类推。

  • 直到 ,拿 1/8。

  • 目的:补偿因网络延迟落败的矿工,特别是小矿工,减少算力中心化。

  • 对于"包含叔父块"的矿工 (Inclusion Reward)

  • 主链矿工每收留一个叔块,可以多拿 1/32 的出块奖励。

  • 目的:鼓励主链矿工积极把这些"流浪在外"的叔块捡回来,增加主链的权重(在 GHOST 语境下)。

四、 真实案例与补充

  1. 交易处理 :叔父块里的交易不会被执行。如果执行的话会造成严重的双花和状态混乱。叔父块仅仅是贡献了区块头和 PoW 工作量证明。
  2. 分叉攻击难度增加:由于全网大部分算力(包括挖出废块的算力)都被计入了主链(或通过叔块机制间接增强了主链的合法性共识),攻击者想要在算力上压倒主链变得更难。

🧠 核心逻辑图解:叔父块奖励

叔父块
正常链
指向父节点
引用 (Inclusion)
区块 N
区块 N-1
区块 N-2
叔父块 U
挖出 Uncle 的人:\n获得 7/8 奖励
挖出 Block N-1 的人:\n额外获得 1/32 奖励

💡 总结

第 18 讲的核心是**"妥协与平衡"**。

以太坊为了追求更快的出块速度(15秒),不得不面对随之而来的高分叉率。通过引入 GHOST 协议和叔父块机制,以太坊成功地变废为宝,既保证了系统效率,又维护了去中心化的公平性与安全性。

相关推荐
今儿敲了吗2 小时前
11| 子集
c++·笔记·算法
Gain_chance2 小时前
29-学习笔记尚硅谷数仓搭建-DWD层交易域下单事务事实表和交易域支付成功事务事实表
数据仓库·hive·笔记·学习·datagrip
云游云记2 小时前
php 高精度数学扩展 bcmath 知识笔记
笔记·php·bcmath
宵时待雨2 小时前
数据结构(初阶)笔记归纳10:二叉树
数据结构·笔记·算法
今天你TLE了吗2 小时前
JVM学习笔记:第一章——JVM&Java体系结构
java·jvm·笔记·学习
后来后来啊2 小时前
2026.2.2 & 2.3学习笔记
数据结构·笔记·学习·算法·leetcode
AI视觉网奇2 小时前
ue5 绑定 鞋子 blender绑定
笔记·学习·ue5
脑洞代码2 小时前
协议头部格式详解:IP、TCP、UDP与MAC帧结构
网络·笔记·学习
历程里程碑2 小时前
Linux 18 进程控制
linux·运维·服务器·开发语言·数据结构·c++·笔记