比特币的最小单位是 聪(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
在系统中是 100000000
0.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位整数) |
精度设计原因 | 防止浮点误差 + 预见升值 |