从 Prysm 的源码实现来看,Epoch 是以太坊 PoS 中的一个基本时间单位:
2. 共识达成
// beacon-chain/core/epoch/precompute/justification_finalization.go
func processJustificationBits(state state.BeaconState, totalActiveBalance, prevEpochTargetBalance, currEpochTargetBalance uint64) {
// 检查是否达到2/3阈值
if 3*prevEpochTargetBalance >= 2*totalActiveBalance {
newBits.SetBitAt(1, true)
}
if 3*currEpochTargetBalance >= 2*totalActiveBalance {
newBits.SetBitAt(0, true)
}
}
状态转换流程:
- 更新 justification 位
- 确定是否达到 finalization 条件
- 计算并发放奖励/惩罚
- 更新验证者注册表
- 处理 slashing 惩罚
Epoch 机制是以太坊 PoS 的核心组成部分,它通过固定的时间周期来:
- 管理验证者的状态变更
- 实现网络的共识达成
- 执行奖励和惩罚机制
- 确保网络的安全性和稳定性
这种机制既保证了网络的实时性,又提供了足够的安全性保障,是 PoS 共识得以实现的重要基础。