什么是 Transaction Size?
Transaction Size 是你的加密交易占用的数据量,通常以字节或虚拟字节为单位。数据越大,在网络上存储和传输所需的空间就越多。可以把它想象成发送一封只含一个表情符号的电子邮件与发送整本相册的区别。
“如果我发送更多加密货币,Transaction Size 就更大。”并非如此。大小取决于交易包含的输入、输出和签名数量,而不是发送的币额。
Transaction Size 的工作原理
以一次比特币的简单发送为例,快速说明。
- 第 1 步:你的钱包会选择输入,这些是你之前收到的币。输入越多,通常占用的字节越多。
- 第 2 步:它会为收款方创建输出,通常还会创建一个找零输出返回给你。每个输出都会增加一些数据。
- 第 3 步:它会添加签名和脚本。像 多重签名交易 这样的功能会增加额外字节,因为需要更多密钥来签名。
- 第 4 步:钱包通过将大小与当前费率相乘来估算费用。这就是 交易费用 的来源。
- 第 5 步:矿工更偏好每字节费用更高的交易,因此在相同总费用下,较小的 Transaction Size 更有可能更快被确认。
挺直观的吧?数据越小,通过网络越顺畅。
为什么 Transaction Size 很重要
因为你关心速度和费用,矿工也一样。
- 好处:较小的 Transaction Size 往往意味着在保持相同确认目标的情况下支付更少。
- 视角:在 网络拥堵 时,费用市场升温,体积大的交易变得更昂贵,推动它们通过的成本更高。
- 关联:它与 可扩展性 有关,因为将更多交易装入区块能提升整体吞吐量。
使用支持 隔离见证 (SegWit) 的地址和钱包。它会减少那些对费用影响最大的数据,因此你的 Transaction Size(以虚拟字节计)会下降。
Transaction Size 的主要特征
哪些因素会使其增大或变小:
- 输入:更多的输入会增加签名和脚本,从而增加字节数。
- 输出:额外的收款方和找零输出会增加大小,但通常比输入的影响小。
- 脚本:复杂的脚本或支出条件会增加必须包含的数据。
- 见证数据:使用 SegWit 后,部分数据在虚拟字节计量中会被折算。
- 合并:在费用较低时合并零散小币可以减少未来的 Transaction Size。
如何计算 Transaction Size?
在比特币中,数据被序列化为字节。采用 SegWit 时,大小通常以权重和虚拟字节表示。
- 权重:非见证字节乘以4再加上见证字节。
- 虚拟字节:vbytes 等于权重除以4并向上取整。
示例:如果非见证为180字节,见证为100字节,则权重为180乘以4加100,等于820,vbytes 为820除以4,等于205。
不同表示方式
人们引用大小的不同方式:
- 字节:未折算的原始序列化长度。
- 虚拟字节:SegWit 折算后费率市场使用的单位。
- 权重:一种内部度量,对见证和非见证部分采用不同计数方式。
你发送的比特币数量不会改变 Transaction Size。决定因素是交易的结构。
示例
使用一个输入和一个输出向朋友发送,可能大约为几百虚拟字节;而使用五个小输入会使 Transaction Size 大幅增加并提高费用。
趣闻
SegWit 引入了权重和虚拟字节的概念,使得在不改变旧的一兆字节限制下可以容纳更多交易,这既是加密货币历史的一部分,也是技术上的巧思。
总结
把 Transaction Size 看作你的费用足迹。在有可能时减小它,未来在付费时你会感谢现在的自己。
