比特币与计算机

比特币最小单位

比特币的最小单位是 聪(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 整数。

例如:


🧠 为什么不是浮点数(float/double)?

使用浮点数可能会出现精度丢失和舍入误差,比如:

0.1 + 0.2 != 0.3   // 浮点精度陷阱

这种误差对金融系统来说是致命的。


📐 为什么是 8 位小数(100,000,000)?

中本聪在最初设计时:


🔐 系统限制证明:聪是最小单位

1. 金额类型为 int64_t

即比特币中金额类型是 64 位有符号整数:

typedef int64_t CAmount;

2. 最小单位 1 Satoshi = 1:

这个 1 是 int64_t 的单位。不能再更小(例如 0.5 聪),否则无法表示。

3. 系统级约束:

试图转账 0.000000001 BTC(即 0.1 Satoshi)会失败,因为:


🔢 总量证明:

比特币发行总量最多是:

21,000,000 BTC × 100,000,000 Satoshi/BTC = 2,100,000,000,000,000 Satoshi(21*10^14)

仍然在 int64_t 可表示范围内:


🧾 总结

单位 Satoshi(聪)
最小单位值 0.00000001 BTC
每 BTC 包含 100,000,000 Satoshi
存储类型 int64_t(64位整数)
精度设计原因 防止浮点误差 + 预见升值