什么是 Stale Block?
Stale Block 是一个有效区块,但在加入主链的竞赛中落败。两个区块几乎同时被发现,网络选择了其中一个,另一个成为亚军。可以把它想像成两个收银台同时开张,人群选了你旁边的那一条。
Stale Block 不是损坏的区块。它完全有效,只是没有被网络保留为主链的一部分。交易通常不会消失;它们会在之后的区块中被确认。
Stale Block 如何工作
简短复盘,不用术语折腾:
- 步骤 1:两个不同的 矿工 在几秒内为相同区块高度发现了有效区块。
- 步骤 2:每个矿工将其区块传播给附近的 节点,这些节点会先转发它们先收到的区块。
- 步骤 3:网络会短暂出现两条分支。你的钱包或区块浏览器可能显示其中一条,你的朋友可能看到另一条。
- 步骤 4:网络随后选出的下一个区块会延长其中一条分支,共识规则决定更长或更“重”的分支获胜。
- 步骤 5:落败分支上的区块就变成 Stale Block。其包含的交易会返回内存池,通常很快会被再次打包进区块。
就是这样。一场短暂的竞赛,胜负明朗。
为什么 Stale Block 很重要
你需要关心,因为资金的流动依赖时间与信任:
- 好处:Stale Block 事件说明系统能够应对时间冲突而不至于混乱。
- 建议:如果金额较大,请等待多次确认,以免 Stale Block 重组让你措手不及。
- 影响:对于矿工来说,Stale Block 意味着失去 区块奖励 和手续费,这会影响矿池策略和硬件选择。
要发一笔大额付款吗?等待多个确认。一个区块可能会变成 Stale Block,但再多几次确认后,出现意外的概率几乎为零。
Stale Block 的主要特征
下面是其直观的定义:
- 有效:满足所有规则,只是没有被选中。
- 短暂:通常存续数秒到数分钟后被舍弃。
- 回补:其中的交易通常会在后续区块中被重新打包。
- 代价:发现者得不到奖励和手续费。
- 时机:在区块时间较短或网络暂时延迟的链上更常见。
不同称法
意思相近,但人们称呼不同:
- Stale:在竞赛中落败且不在主链上的有效区块。
- Orphan:严格来说指的是父区块未知的区块,但很多人用 orphan 来表示 Stale Block。
- Uncle:在旧版以太坊工作量证明机制中,类似的落败区块仍可作为 uncle 获得部分奖励,现称为 ommers。
Stale Block 不会永远取消你的付款。它仅表示你短暂看到的确认被替换,交易很可能很快会再次出现。
示例
两个矿工为同一高度发布区块,网络延长了其中一条分支,片刻后另一条变成 Stale Block,其交易在下一个区块被打包。
趣闻
一些区块浏览器会显示矿池的 stale 率,在繁忙时段你可能在一个下午看到多个 Stale Block 事件。是的,这很常见。
总结
一句话:Stale Block 是一个在“人气”竞赛中落败的有效区块,所以你的币仍会移动,只是需要等待下一次确认。
