比特币交易的字节数和虚拟大小为何不同?

 / 
6

一笔比特币交易在硬盘和网络上占用的实际字节数,和它用来计算手续费的"虚拟大小",通常不是同一个数字。原因在于 SegWit(隔离见证)升级后,比特币给交易中的一部分数据打了折扣,而虚拟大小就是打了折之后的结果。

欧易OKX交易所
全球领先的加密货币平台,适合新手与进阶交易者
新手福利:注册即享20% 交易手续费减免!

两种"大小"分别指什么

字节数(size / byteLength) 是这笔交易在网络上传输、在磁盘上存储时实际占用的空间。你把一笔交易数据完整下载下来,它有多少字节,字节数就是多少。在 SegWit 之前,比特币交易的大小就是用字节来衡量的。

虚拟大小(vsize / virtual bytes) 是 SegWit 之后引入的计量单位,专门用来计算手续费和衡量交易占用区块空间的比例。它的基本换算关系是:1 虚拟字节 = 4 个权重单位(weight units)。而权重单位的计算规则是:交易中非见证数据的每个字节算 4 个权重单位,见证数据的每个字节只算 1 个权重单位。

所以,一笔交易的虚拟大小等于它的权重除以 4(通常向上取整)。对于没有 SegWit 数据的老式交易,权重恰好是字节数的 4 倍,虚拟大小就等于字节数。但一旦交易包含 SegWit 见证数据,虚拟大小就会小于实际字节数。

为什么要有这个区别

SegWit 升级的核心目的之一,是在不硬分叉、不直接修改 1MB 区块大小上限的前提下,让区块能容纳更多交易。做法就是给见证数据"打折"。

见证数据主要是交易签名和公钥,它们用来验证谁有权花费这笔钱。节点验证完签名之后,这些数据对于后续维护区块链状态来说,并不需要像交易的其他部分那样被长期完整保存。因此协议开发者认为,见证数据对节点运行成本的贡献较小,理应在计算区块容量时获得折扣。

一个常见的误解是"SegWit 让交易变小了"。实际上,一笔 SegWit 交易在网络上传输时,字节数可能比旧式交易还略大一些。SegWit 改变的只是这些字节如何被计数,而不是字节本身消失了。一笔 300 字节的交易,在磁盘上就是 300 字节,不会因为用了 SegWit 就变成 200 字节。

一个具体的数字感受

假设一笔典型的 SegWit 交易(一个输入、两个输出),实际字节数大约是 222 字节。但它的权重只有 561 单位,除以 4 之后,虚拟大小约为 140.25 虚拟字节,向上取整为 141 vB。

如果换成结构类似的旧式交易,字节数大约 226 字节,权重是 904 单位,虚拟大小就是 226 vB。两者实际字节数相差不大,但虚拟大小差了将近 40%,这意味着在相同费率下,SegWit 交易的手续费会明显更低。

你在哪里会看到这两个数字

钱包在构造交易时,通常会同时计算出实际字节数和虚拟大小。但你在确认手续费时看到的费率单位是 sat/vB(聪每虚拟字节),乘以的是虚拟大小,而不是字节数。区块浏览器上显示的"大小"字段,有的会标注是实际字节还是虚拟字节,有的会分开列出。如果你要自己核对手续费,需要确认你用的数字是 vsize 还是 size——用错了,算出来的手续费会对不上。

另一个需要注意的地方是:一笔交易的实际字节数取决于它包含多少输入和输出。如果你要把多笔零散的小额 UTXO 合并起来花掉,输入数量增加,交易的字节数和虚拟大小都会变大,手续费也随之上升。转账金额本身不直接决定手续费,交易的构造方式才决定。

常见问题

旧式交易的字节数和虚拟大小完全一样吗?
是的。没有 SegWit 见证数据的交易,每个字节都算 4 个权重单位,权重除以 4 就回到了字节数。所以在 SegWit 普及之前,这两个概念没有区分的必要。

虚拟大小可以是小数吗?
可以。权重除以 4 可能出现小数(比如 140.25 vB)。但比特币核心在计算手续费时,通常会把虚拟大小向上取整到整数,避免因为小数导致的手续费计算歧义。

为什么钱包不直接让我看字节数,非要显示虚拟大小?
因为手续费是按虚拟大小收的。节点在决定优先打包哪些交易时,比较的是"每虚拟字节付了多少费"。显示 vsize 和 sat/vB,你才能直接判断这笔交易的费率竞争力。字节数对理解存储占用有意义,但对判断手续费是否合理,虚拟大小才是正确的口径。

欧易OKX交易所
全球领先的加密货币平台,适合新手与进阶交易者
新手福利:注册即享20% 交易手续费减免!

参考资料

  1. Bitcoin Wiki·Weight units,日期:2026-11-08
  2. Bitcoin Wiki·Block weight,日期:2026-11-08
  3. Bitcoin Wiki·Fee rate,日期:2026-11-08
  4. Bitcoin Core·mempool-terminology.md,日期:2026-11-08
  5. OKX·BTC转账别按身价算邮费,日期:2026-11-08
  6. Binance·btc交易大小单位科普,日期:2026-11-08
  7. Ledger·Sats/vB Meaning,日期:2026-11-08