验证器不信任 template。它自行重新推导。
Veldra v2.0.0 交付 Invariant Shield:22 项规范化的重新推导检查(Phase 1),外加 mempool 真值基准(Phase 2)。它叠加在现有的 v1 策略网关(59 个 reason code)与 TOML 配置基线(61 个键)之上。
v2.0.0 已接通,已在 origin,CI 全绿。独立共识重新推导已能运行。mempool 真值基准已能运行。至于“系统在生产中于验证器这一层捕获自洽的 template-manager 篡改”这一发布主张,必须先完成生产观察周期。在那之前,对外表述会把“已接通并在 CI 中通过测试”与“在数周观察窗口内针对真实 mainnet template 完成验证”区分开。
Reason codes
每一次分歧都有名字。reason-code 表面就是契约:验证器拒绝一个 template 时会在指标流和日志行上发出什么,都有可以 grep 的权威来源。
会立即产生无效区块的缺陷。从原始区块字节重新推导。
CoinbaseValueCoinbaseHeightMerkleRootWitnessCommitmentMismatchTxCount会导致区块大概率成为孤块,或在下游被判为无效的缺陷。
TemplateWeightSigopsCoinbaseSigopsWitnessCommitmentMissingCoinbaseBip34在 v2.0.0 的生产观察周期干净完成后接入。
CoinbaseScriptLengthCoinbaseOutputCountWeightExceedsMaxSigopsExceedMaxNonCoinbaseNullPrevoutHeaderVersionLowDuplicateTx将 template 中非 coinbase 的 txid 与一份独立的 bitcoind mempool 视图交叉核对。当未知 tx 比例超过 tolerance_pct 时拒绝。
权威来源: rg-consensus::ConsensusViolation::ALL_CODES
配置
61 个基线 TOML 键,加上 v2.0.0 中 [policy.mempool] 下新增的 8 个。这 8 个全部可选并带默认值——旧配置无需改动即可继续加载。
8 个新键全部可选并带默认值,因此旧配置无需改动即可继续加载。
遥测
v2.0.0 为 Phase 2 新增 4 个 Prometheus 指标流。现有导出保持不变。
现有导出保持不变。Prometheus / Grafana / CSV / NDJSON 可观测性与现有站点所述一致。
rg-consensus facade
共识引擎的狭窄公开 API。五个重新推导入口和五个包裹 rust-bitcoin 的访问器——这就是 Class D / Class S 的全部表面。
rg-consensus 是一个可分离的 facade,把 rust-bitcoin 封装在一条窄边界之后。
re_derive_coinbase_value()re_derive_template_weight()re_derive_merkle_root()re_derive_witness_commitment()count_sigops()template_txidsparse_blocktotal_sigopscoinbase_sigopsbip34_heightPhase 2 fail-stale 状态机
运营方的 bitcoind RPC 轮询失败时会发生什么。三个状态、具名转移、不丢弃 template。
Mempool 视图状态机:验证器依据视图年龄在三个状态之间转移,随后干净降级,不丢弃 template。
max_stale_secs = 60 · sample_unknown_cap = 10威胁模型 · 上限 · 注意事项
哪些在范围内、哪些从结构上就不在范围内,以及 4% 的 mempool 容差窗口能做与不能做什么。
ReserveGrid OS v2.0.0 配合 Phase 1 与 Phase 2 可拦截 T1、T2、T3。T4 与 T5 明确不在范围内。
任何声明字段能通过运营方阈值的 template,即使底层字节是伪造的
声明值与原始字节在构造上就内部自洽的篡改
在已配置的容差窗口内运作的篡改,或在 bitcoind 自身已被攻陷时发生的篡改
- 01Phase 2 的 4% 容差窗口吸收良性的 mempool 偏离(运营方 bitcoind 与网络之间合理的传播延迟)。
- 02把阈值向 2.0 调低会收窄这个窗口,但无法在不对真实 template 产生误报的前提下把它压到零。
- 03Phase 2 从定义上就信任运营方的 bitcoind。如果这个 bitcoind 本身被攻陷,Class M 就是盲的。
接入模式
三种部署形态——Shadow(仅告警 · 免费)、Observe(需许可 · 不强制执行)、Inline(需许可 · fail-closed)。bitcoind 这一前置条件已在开头点明。
让网关运行在你现有路径之后,裁决 = 仅告警。share 流零改动。
自托管的 Docker 技术栈加许可证密钥。需要 mainnet bitcoind(或使用 rg-feed-server)。
fail-closed 强制执行。网关位于 share 路径中。
observe 与 inline 两种模式都需要运营方侧的 bitcoind:已同步、资源充足、RPC 可达,并通过环境变量或 [policy.mempool] 接通 rpc_* 凭据。
希望使用 observe 或 inline 模式的运营方,从其 veldra.org 账户(登录)获取许可证密钥。
observe 与 inline 两种模式都需要运营方侧的 bitcoind:已同步、资源充足、RPC 可达,并通过环境变量或 [policy.mempool] 接通 rpc_* 凭据。
Veldra vs SRI
唯一一处点名的产品对比。Stratum Reference Implementation 是 SV2 协议可实现的权威证明。Veldra 面向需要验证、而不只是连通性的矿池运营方。
Stratum Reference Implementation(SRI)是 SV2 协议可实现性的权威证明。Veldra 面向的是需要验证、而不只是需要连通性的矿池运营方。
DATUM 及其他矿工侧 template 协议属于生态背景。Veldra 的验证层与矿池运行哪一种矿工侧协议无关。
路线图
v2.0.0 → Phase 1.5 → v3.x。不设日历日期——里程碑取决于生产观察周期,而不是时间表。
Invariant Shield Phase 1 加上 Phase 2 的 mempool 真值基准。
v2.0.0 的生产观察周期干净完成后,七个 Tier 3 兜底不变量随之接入。
selfish mining 检测。per-tx detail 模式,加上 v2.0.0 中已交付的四项 Phase 2 指标,已经为时间序列检测备好了数据形态:检测那些未知 tx 集合在时间上聚集、且指纹在结构上彼此一致的 template。v3.x 的设计从已交付的 Phase 2 表面出发——无需协议变更,除了在运营方策略中开启 per-tx detail 之外没有迁移成本。