术语表 /交易与手续费
权重单位
又称 WU。
- 权重单位是什么?
- 权重单位是取代字节、用于比特币区块大小限制的计量单位,它按四分之一的比例计算签名数据,使 SegWit 无需硬分叉即可提高容量。
规定于 BIP-141。
旧节点统计区块剥离见证数据后的字节数,并拒绝超过1,000,000的区块;新节点统计权重,并拒绝超过4,000,000的区块。同样的区块同时满足这两条规则,这正是隔离见证(Segregated Witness)在2017年8月于区块481,824激活时成为软分叉的关键。您为转移比特币支付的一切费用,都以这一单位或其四分之一来计价。
运作方式
之所以需要权重单位,是因为运行不同软件的节点必须就区块何时已满达成一致,即使它们看到的并不是同样的字节。
从未升级的节点根本不会收到见证数据。它看到的是剥离后的区块,并沿用一贯的上限,即1,000,000字节。已升级的节点会还原完整区块,并采用4,000,000权重的上限。每个非见证字节计四个单位,每个见证字节计一个单位,这样两种检验就永远不会出现分歧:凡是在权重预算之内的区块,剥离后也一定不足一兆字节。一条只会收紧旧软件原本接受范围的规则,正是软分叉的定义,而这种计价方式使容量的提升得以纳入软分叉之中。
选择四分之一并非随意之举。见证字节就是签名,而签名是交易中的一部分:支出被深埋之后,节点可以将其丢弃;它们从不进入 UTXO 集,而 UTXO 集是每台验证机器都必须永久保存的唯一结构。为它们定低价,促使钱包转向一种能让这个昂贵集合增长更慢的格式,其做法是让负责任的选择同时成为便宜的选择。
另有第二项预算在同一尺度上运行,却很少受到关注。BIP141 将一个区块限制在80,000个签名操作单位以内,其中传统操作按四倍计算,因此,塞满旧式多重签名的区块,可能在空间用尽之前就耗尽了签名检查额度。
因此,容量是一个范围,而不是一个数字。纯传统支付的区块仍然不能超过1,000,000字节,而见证数据密集的区块可以接近四兆字节,多数区块介于一至两兆字节之间,因为多数区块是两者的混合。
在哪里会遇到它
每个区块浏览器都在区块旁标出权重单位,矿池实际优化的正是这个数字。
它最明显的体现,是一句在2017年8月不再成立的说法。比特币并没有一兆字节的区块限制,它有的是4,000,000单位的预算,您在区块浏览器上看到的区块填充条就是以此为基准衡量的。矿池通过用报酬最高的候选交易填满预算来组装区块模板,并为 coinbase 交易留出一部分,因此挖出的区块通常刚好略低于上限,而不是恰好达到上限。
权重单位也是比特币最激烈争论背后不为人知的主题。把数据存入见证空间,成本只有同样字节存放在其他位置的四分之一,这正是铭文存放在那里的原因。关于这些数据是否应当上链的争论,抛开喧嚣,本质上是围绕2015年撰写 BIP141 时所定下的比例展开的争论。
对于购买并持有比特币的人来说,这一单位只会间接遇到。您永远不会在钱包里输入权重数值,但花费旧格式的币比花费新格式的币成本更高,原因就在于此。
权重单位 vs 区块权重
权重单位是尺子,区块权重是用这把尺子量出的一个结果。交易同样有权重,区块的数值是其各笔交易的权重之和,再加上区块头和计数器,因此这两个词不能互换。当有人把4,000,000这一数字当成每笔交易的额度时,这种混淆就会代价高昂。事实并非如此:中继策略会在单笔标准交易远未接近区块上限时就将其拒绝,而共识只衡量区块。