PoH 与 Tower BFT
Solana 把时间从投票里拆出去:Proof of History 是可验证的顺序时钟,Tower BFT 是叠在时钟上的投票锁定。PoH 不决定分叉赢家,也不是 PoS 通论 意义上的资源证明。领导者日程由质押权重生成。
PoH
领导者对前一个输出做 SHA-256,形成哈希链:
\[ x_{i+1} = \mathrm{SHA256}(x_i) \]
交易(或条目哈希)在指定计数处嵌入链中,成为该事件的顺序证明。生成必须串行;验证可把链切成片段并行重放——这与 Wesolowski 等「证明短、验证快」的 VDF 不同。PoH 常被叫成 VDF,实现上是可分段校验的迭代哈希。
数据单位:
| 单位 | 含义 |
|---|---|
| tick | 固定次数哈希,充当时钟刻度 |
| entry | 一组交易 + 嵌入时的 PoH 计数 |
| shred | entry 纠删编码后的网络分片 |
| slot | 一名领导者的出块窗口,含多个 tick |
验证者按质押抽签得到领导者日程。当前领导者在自己的 slot 内推进 PoH、打包 entry、广播 shred。下一领导者必须从上一 slot 的 PoH 输出接着写,否则哈希链对不上。
Tower BFT
投票对象是某个 PoH 高度上的区块(或该 slot 的银行哈希)。每张票附带 lockout:该票在后续 \(2^{k}\) 个 slot 内不可对冲突分支再投,\(k\) 为该验证者在此分叉上连续投票次数。连续投票使 lockout 指数增长,回滚要等锁定过期或放弃对应质押收益。
- 乐观确认:观察到足够多验证者把票打在某块及其后代上。
- rooted / finalized:lockout 已深到协议认为回滚不经济(实现里用 rooted slot 表示)。
这不是 PBFT 的 quorum 相交提交:没有「\(2f+1\) 张匹配 commit 则不可逆」的证书。安全性来自质押 + 指数锁定,重组在 lockout 未到期时仍可能发生,成本随深度上升。
与分叉选择的关系
PoH 给出全序候选;网络分区或领导者掉线会产生分叉。验证者在分叉上按 Tower 规则投票,选锁定代价更一致的那条。领导者跳过(skip)会在 PoH 上留下空洞,下一领导者从超时后的计数继续。
故障模式:领导者硬件要能持续串行哈希并播 shred,阈值高于普通 PoS 节点。日程内的单点领导者影响活性,不单独破坏已 rooted 的历史。