跳到正文

区块时间

区块时间可以指计划时隙、工作量证明目标间隔,或规范区块之间的观测间隔。本指南说明如何分别测量这些时钟,避免与收录、确认或最终性混淆。

更新于

仅供协议教育分析。时间目标、观测间隔、交易收录和最终性是不同指标;依赖延迟估算前,应核验当前网络、分叉、规范链及服务政策。

直接答案

区块时间不是一只通用秒表。在工作量证明系统中,它通常指随机出块过程的长期目标;在基于时隙的权益证明系统中,它可能指一次提议机会的计划时长。两个规范区块之间的观测间隔是第三种指标,而交易收录、确认深度和最终性又各有独立时钟。

以太坊主网目前将时间划分为 12-second slots,每个时段包含 32 slots。提议者可能漏掉一个时隙,因此相邻已出区块可能相隔 24 seconds36 seconds 或更久,即使时隙时长仍为 12 seconds。对 Bitcoin 而言,600 seconds 是难度系统采用的目标平均间隔,并非下一个区块的截止时间。

必须说明链、网络、分叉、观察窗口和时钟口径。区块头时间戳是协议数据,并不必然等于所有节点收到该区块的时刻。较短的名义间隔可以提前最早收录机会,但本身不保证更高吞吐、更低费用、更少链重组或更快最终性。

预计等待
1.2 min
示意区间
54s - 1.5 min

结果是教育用途的近似值。除非明确展示,否则未计入交易场所规则、税费、延迟、预言机行为及其他协议参数。

工作原理

  1. 固定链、网络、层级、已激活分叉、规范链头、节点或 RPC 服务商,以及 UTC 观察窗口。记录区块哈希,不要把高度本身当成唯一标识。
  2. 计算前先定义指标:协议目标间隔、计划时隙时长、相邻规范区块时间戳差、本地接收时间差、交易收录延迟、确认深度或最终性时间。
  3. 收集每个区块的哈希、父哈希、高度或时隙、协议时间戳及本地单调时钟接收时间。把漏槽、过期区块和被重组移除的区块保留为明确状态,而不是静默删除。
  4. 沿规范链祖先关系回溯,计算相邻间隔,并公布样本数、窗口、均值、中位数、分位数、最小值、最大值和漏槽率。单一平均值无法描述偏斜的等待时间分布。
  5. 应用相应共识模型。对以太坊,应区分时隙、时段、链头、安全检查点和最终确定检查点。对 Bitcoin,应区分 600-second target、受哈希率影响的随机出块、链上累计工作量、2,016-block 调整窗口及时间戳有效性规则。
  6. 将用户延迟拆分为广播、本地内存池或排序器等待、区块提议、传播、规范链收录、确认、安全或最终确定状态,以及桥、交易平台或应用处理。
  7. 使用独立节点交叉核对,并对时钟偏差、RPC 数据缺口、提议者漏槽、哈希率变化、网络分区、链重组、最终性延迟、排序器停机和分叉参数变更进行压力测试,再设定 SLA。

实例

  • 以太坊在时隙 1,0001,003 产出区块。计划时间戳间隔为 (1,003 - 1,000) * 12 = 36 seconds;时隙 1,0011,002 被漏掉。区块高度只增加一个已产出区块,时隙编号则增加三个。
  • 300 slots 内,计划窗口是 300 * 12 = 3,600 seconds。若产出 294 canonical blocks,就有 6 missed slots,产出率为 294 / 300 = 98%,窗口速率为 294 / 3,600 = 0.0816666667 blocks/second,其倒数为 12.2448979592 seconds/block。这是窗口统计量,不是承诺。
  • 一个以太坊时段为 32 * 12 = 384 seconds = 6.4 minutes;两个时段的时长为 768 seconds = 12.8 minutes。检查点投票和参与率决定最终性,因此这项算术不是固定最终性 SLA;以太坊目前将正常最终性描述为约 15 minutes
  • 在均值为 600 seconds 的简化 Bitcoin 指数到达模型下,1,200 seconds 内没有区块的概率为 e^(-1,200/600) = e^-2 = 13.5335283237%,至少出现一个区块的概率则为 86.4664716763%。难度目标窗口为 2,016 * 600 = 1,209,600 seconds = 14 days;两项数值都不会为单个区块排定时间。

风险

  • 使用错误的链、网络、层级、分叉或历史参数。
  • 比较计划时隙、工作量证明目标或观测区块间隔等不同指标。
  • 把协议目标或样本均值当作最长等待保证。
  • 选择过短、平静或其他经过挑选的观察窗口。
  • 把区块头时间戳当作精确的产出或接收墙钟时间。
  • 混用本地时间未同步的观察者时钟。
  • 省略漏槽,或把已产出的空区块误认为漏槽。
  • 在规范间隔序列中纳入过期或被重组移除的区块。
  • 只计算高度变化而不核验哈希、父区块和祖先关系。
  • 把 RPC、索引器、WebSocket 或本地日志缺口误报为网络行为。
  • 只报告均值而不报告中位数、分位数、范围和样本数。
  • 混淆内存池或排序器等待时间与区块产出时间。
  • 混淆首次收录或一次确认与经济最终性。
  • 把确认数换算为确定的分钟数。
  • 把 Bitcoin 的 10-minute target 当作支付或挖矿 SLA。
  • 忽略哈希率变化、难度调整滞后及矿工时间戳边界。
  • 忽略较短间隔带来的传播、验证和临时分叉压力。
  • 把以太坊的 12-second slot 当作保证有非空区块。
  • 把 L2 排序器区块当作 L1 发布、结算或最终性。
  • 仅凭区块时间推断 TPS、费用、安全性或去中心化程度。

常见误区

  • 每个以太坊时隙都有区块。 时隙只是提议机会;提议者漏槽或传播失败都可能使其为空。
  • Bitcoin 恰好每十分钟产出一个区块。 十分钟是难度目标和均值模型参数,单次等待时间会大幅波动。
  • 区块时间戳就是所有节点收到区块的时刻。 协议时间戳与本地到达日志由不同主体生成,并受不同约束和时钟影响。
  • 区块时间减半会自动使安全 TPS 翻倍,并使费用或最终性时间减半。 容量、工作负载、需求、传播和共识投票仍是独立约束。
  • 快速 L2 区块已经获得以太坊最终性。 排序器收录、L1 数据发布、L1 规范链收录和最终性是不同状态。

相关主题

来源

导航

搜索知识库...