比特币的最小单位是 聪(Satoshi),这是比特币设计中的一个数学和系统约定。下面是其 数学定义、证明过程与设计原因:
比特币最小单位:
1 Bitcoin (BTC) = 100,000,000 Satoshi
换句话说,1 Satoshi = 0.00000001 BTC
比特币采用了**定点整数(fixed-point)**方式表示金额,而非浮点数。所有比特币数量都用整数表示单位是“聪”。
Bitcoin 源码中(bitcoin/src/amount.h)定义:
static const int64_t COIN = 100000000;这意味着:
系统内部所有金额都是以“聪”为单位存储的
int64_t整数。
例如:
1 BTC 在系统中是 1000000000.001 BTC 是 100000使用浮点数可能会出现精度丢失和舍入误差,比如:
0.1 + 0.2 != 0.3 // 浮点精度陷阱这种误差对金融系统来说是致命的。
中本聪在最初设计时:
int64_t:即比特币中金额类型是 64 位有符号整数:
typedef int64_t CAmount;这个 1 是 int64_t 的单位。不能再更小(例如 0.5
聪),否则无法表示。
试图转账 0.000000001 BTC(即 0.1
Satoshi)会失败,因为:
CAmount 无法表示;比特币发行总量最多是:
21,000,000 BTC × 100,000,000 Satoshi/BTC = 2,100,000,000,000,000 Satoshi(21*10^14)
仍然在 int64_t 可表示范围内:
int64_t 最大值:9223372036854775807(约
9.2×10^18)| 项 | 值 |
|---|---|
| 单位 | Satoshi(聪) |
| 最小单位值 | 0.00000001 BTC |
| 每 BTC 包含 | 100,000,000 Satoshi |
| 存储类型 | int64_t(64位整数) |
| 精度设计原因 | 防止浮点误差 + 预见升值 |