比特币面额换算:聪、微币与毫币怎么互相折算 图 1
比特币面额换算:聪、微币与毫币怎么互相折算 · 图 1

一聪有多大:先钉死换算表

比特币协议里从来没有“小数”这回事。记账的最小整数单位叫聪(satoshi,常写作 sat),一 BTC 恒定等于一亿聪。由这个整数再往外派生两档习惯叫法:一百万聪是 0.001 BTC,叫毫币(mBTC);一百聪是 0.000001 BTC,叫微币(uBTC,也写作 µBTC)。写成一张表:一 BTC = 1000 mBTC = 1000000 uBTC = 100000000 sat。任何一档换算都只是移动小数点,不存在“汇率”或其他系数。

为什么钱包底层全是整数

区块里每一笔转账的金额都是一个 64 位整数,单位就是聪。用整数而不是浮点小数,是刻意的设计:浮点运算在不同硬件和语言里会有舍入差异,而共识要求每个节点算出完全一样的结果。所以你在钱包里看到的“0.0042 BTC”,在节点眼里只是 420000 这个整数。理解这一点,很多怪现象就有了解释:所谓“精度丢失”其实不存在,只有“换算时小数点搬错了位置”。

整除截断:聪是绝对下限

协议不接受小于一聪的金额,也无法表示零点几聪。当一笔收入要按比例分给很多地址时,除不尽的部分只能有人“拿不到”——实现通常向下取整,余下的聪要么留给最后一个收款人,要么留在合约余额里。这不是丢币,是整数世界的必然:一聪不可再分。闪电网络里做汇率折算时,这类“凑不满一聪”的尾差会被明确处理,钱包会把它并进找零或当作损耗。

手续费报价为什么用聪每虚拟字节

转账费的行情价写作 sat/vB,意思是“每虚拟字节愿意付几聪”,而不是“每聪抽多少”。你的交易体积(虚拟字节 vB,大致可理解为加权后的交易大小)乘以单价,才是总费用。这也是面额知识与日常使用的交汇点:看到费率不要问“贵不贵”,要问“这笔交易多少 vB”。同样一笔两进两出的普通支付,用常见的见证方案体积约在一百多到两百多 vB 之间,具体数字取决于脚本和签名数量,以交易构造结果为准。

选错单位是真事故

历史上进错金额的头号原因是单位错位:对方要 0.005 BTC,你按 5 去理解成 mBTC 之外的另一套读法,结果差三个数量级。防错的纪律很朴素:付款前让“数字+单位”成对出现;软件里凡是金额输入框先看清标签是 BTC 还是 sat;对账单上的金额换算自己动笔验证一遍。另一个常见坑在展示层——有软件把“sat”缩写成“sats”甚至和美元符号混排,读错方向时大额变零头、零头变大额。

动手算一笔

假设你给好友转 0.021 BTC,同时这笔交易有 200 vB 大小、你选了 15 sat/vB 的费率。费用是 200 乘 15 等于 3000 聪,即 0.00003 BTC;钱包构造交易时应转出 2100000 减 3000 等于 2097000 聪(找零部分留在你的找零地址)。用聪做全程单位、最后一步才换算回 BTC,是避免小数点事故的最笨也最稳的办法。很多钱包提供“以聪显示余额”的隐藏开关,长小额收款的人值得打开。

快速问答

“清零到零”要付多少钱? 想把地址余额全部转走,是把全部聪数减去手续费后全额送出,不是转一个“整数枚”。为什么交易所提币只显示八位小数? 因为第八位正好对应一聪,再多写一位就是协议里不存在的量。聪会被继续细分吗? 现有规则里不会,任何细分都要改共识并带来全节点账本变化,讨论中存在但从未落地。

常见误区

第一,把 mBTC、微币当成“另一种币”。它们是同一种资产的不同读数,如同米和毫米。第二,以为“余额少了一聪”是被多收了——那是整除截断的会计尾差,链上每笔输出之和加手续费严格等于输入之和。第三,把 sat/vB 的费率和“每笔固定费”混淆,大额小额交易体积相近,按体积计费意味着金额本身不改变费用。

风险提示:本文只讲单位与机制,不构成任何投资建议;涉及充提操作请逐次核对金额与单位。