126 / 691WU

区块权重

BIP 141 的区块权重将有效区块限制在 4 000 000 WU 以内。它不是物理字节数,也不是 Proof of Work 的数量。

设 B 为不含 witness 的大小,T 为完整大小,则 W = 3 × B + T。计算覆盖整个序列化区块,包括区块头和 coinbase。

B 是不含 witness 数据的原始序列化大小,T 是完整序列化大小。W = 3 × B + T 结合两者,结果单位为 WU,而非字节。 [BIP 141 — Segregated Witness] [BIP 144 — SegWit peer services]

基础部分每字节计 4 WU。witness 序列化新增的每字节计 1 WU,包括 marker、flag 和这一部分的其他序列化元素。 [BIP 141 — Segregated Witness] [BIP 144 — SegWit peer services]

BIP 141 要求 W ≤ 4 000 000 WU。允许等于上限,但更高的手续费、更多 Proof of Work 或矿工同意都不能使超限合法。 [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — consensus limits] [Bitcoin Core v29.0 — validation]

示例中 B = 500 000、T = 2 500 000 时,W = 4 000 000 WU。B = 750 000、T = 1 750 000 也得到相同权重,因此满区块并没有固定的 4 MB 大小。 [BIP 141 — Segregated Witness]

区块还包括 80 字节区块头、编码后的交易数量和 coinbase。区块头与交易计数属于基础数据,不能只把其他交易的权重相加。 [Bitcoin Developer Reference — Block chain]

交易 vsize 对每笔完整交易的 W / 4 向上取整。这些取整大小相加还会遗漏部分区块开销,并非精确的共识权重计算。 [BIP 141 — Segregated Witness] [Bitcoin Developer Reference — Block chain]

Full Node 仍然验证相应签名和脚本。Witness 消耗带宽与计算资源,较低权重不意味着零成本或验证可选。 [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — validation]

除权重外,BIP 141 还将签名操作成本限制为 80 000 单位。这不是简单统计所有签名;规则取决于脚本类型,较新版本另有自身限制。 [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — consensus limits]

矿工可因运行需要选择更低的目标权重。其区块模板或节点本地策略不会改变共识上限,也不保证收录某笔交易。 [Bitcoin Core v29.0 — consensus limits] [Bitcoin Core v29.0 — validation]

Bitcoin Core v29.0 的 getblock 返回 size、strippedsize 和 weight。chainwork 则不同:它涉及链的累计工作量,而不是区块的字节权重。 [Bitcoin Developer Reference — Block chain] [Bitcoin Core — getblock RPC]

要获得更完整的理解,请将本词条与以下词条结合阅读: 虚拟字节, 见证数据, SegWit, 区块大小之争. 反向关联还来自: 虚拟字节, 见证数据.

DOC · 001BIP 141 — Segregated Witness规范DOC · 002BIP 144 — SegWit peer services规范DOC · 003Bitcoin Core v29.0 — consensus limits文档DOC · 004Bitcoin Core v29.0 — validation文档DOC · 005Bitcoin Developer Reference — Block chain文档DOC · 006Bitcoin Core — getblock RPC文档
来源优先 · 非投资建议