协议演进 / BIP/比特币改进提案 / BIP-172
BIP-172
正式把比特币最小不可分单位 1/100,000,000 BTC 定名为 satoshi(复数 satoshis,缩写 sats),统一全生态的用词。本 BIP 目前处于草案状态。
一、档案卡
| 编号 | BIP-172 |
|---|---|
| 标题 | Define Bitcoin Subunits as Satoshis |
| 作者 | OceanSlim <[email protected]> |
| 指定日期 | 2025-05-01 |
| 层级 | Applications(应用) |
| 类型 | Informational(信息类) |
| 状态 | Draft(草案) |
| 阅读版 | https://bips.dev/172 |
| 官方原文 | https://github.com/bitcoin/bips/blob/master/bip-0172.mediawiki |
二、放在哪一族
货币单位命名一族。它处理的是纯粹的人类语言问题:比特币最小单位早就存在于协议里(1 BTC 可分到小数点后八位),但这个单位叫什么、复数怎么写、缩写用哪个,长期靠社区习惯,没有一份正式定义。BIP-172 要补的正是这份定义。
同族的两个近邻,原文在 Rationale 中专门逐一作了对比:
BIP-176:Bits 计价单位——主张把 100 satoshis(0.000001 BTC)定为一个中间单位 bits
BIP-177:重定义比特币基本单位——主张更激进地把“bitcoin”一词改指今天所说的 1 satoshi
BIP-172 与两者的分界在于:它既不新设中间单位,也不改动 “bitcoin” 的既有含义,只把社区已经在用的最小单位名称正式登记下来。自称是三者中扰动最小的路线。
三、它要解决什么
原文 Motivation 指出,随着比特币采用面扩大,为子单位准备一套清晰、标准化的术语越来越重要。而眼下的现状是:指同一个最小单位(1/100,000,000 BTC),市面上同时流通着 “satoshi”、“satoshis”、“sat”、“sats” 等多种写法,有时干脆只写成 BTC 的小数值(0.00000001 BTC)。
术语不统一的代价,原文列了四条:
- 新进入比特币生态的人容易被搞糊涂;
- 不同应用与服务之间的用户体验不一致;
- 技术文档与讨论中产生歧义;
- 开发与实现比特币相关软件时可能出错。
把 “satoshi/satoshis” 定为标准词、把 “sats” 定为公认缩写,目标就是在沟通、界面、文档与开发各环节消除这层摩擦。
原文 Rationale 补了两层理由。其一,这个单位与名称都不是新发明:中本聪定下 1 bitcoin 可分到八位小数、即每 bitcoin 含 100,000,000 个单位;社区则已自发用 “satoshi” 称呼这个最小单位,本 BIP 是把既有惯例正式化,而不是引入新词。其二,随着比特币计价变高,用 BTC 小数表达小额越来越别扭、易错(原文举例:0.00000546 BTC 对照 546 sats,后者对人更直观)。其三,它类比了法币的两级面额体系——如美元与美分——并指出 “sat” 与 “cent” 发音相近,能给熟悉传统货币的人搭一座直觉的桥。
四、规则本身
4.1 正式定义
本 BIP 的 Specification 部分给出五条定义:
- “satoshi”(单数)/“satoshis”(复数)为 1/100,000,000 个 bitcoin(即 0.00000001 BTC)的标准名称;
- “sat”(单数)/“sats”(复数)为上述名称的标准缩写形式(注意:缩写的单复数区别在词尾 s 上,“1 sat” 与 “100 sats” 不可混写);
- 换算关系固定为:1 bitcoin(BTC)= 100,000,000 satoshis;1 satoshi = 0.00000001 bitcoin;
- 作为货币单位名称,“satoshi” 与 “sats” 不是专有名词,除句首与标题外不应大写;
- 鼓励比特币相关的应用、服务、文档与沟通采用这套标准术语,以促进全生态的一致性。
原文 Examples 一节给了对照:标准化前可能见到 0.00000100 BTC、100 satoshi、100 satoshis、100 sat、100 sats 等混杂写法;标准化后,同样的量推荐写作 “100 satoshis”(正式)或 “100 sats”(缩写)。
4.2 无障碍(Accessibility)细则
这是原文中较特别的一节,为界面与辅助技术给出具体建议:
- 读音:“sat” 读作 /sæt/、“sats” 读作 /sæts/(与 “cats” 押韵),供屏幕阅读器与语音助手使用;“satoshi” 读作 /səˈtoʊʃi/、“satoshis” 读作 /səˈtoʊʃiz/;
- 单复数要读对:“1 sat” 应朗读为 “one satoshi”,“100 sats” 应朗读为 “one hundred satoshis”;
- 格式:无障碍模式下优先使用完整词而非缩写;数字应分组书写(如 “12,345” 而非 “12345”),便于解析;
- 上下文标注:界面应使用清楚的替代文本或 aria-label,例如把一笔费用标注为 “Transaction fee: 14 satoshis per virtual byte”,让辅助技术能准确传达金额的含义。
4.3 与相邻提案的取舍(Rationale 要点)
对 BIP-176(bits):原文承认 bits 作为中间面额自有其价值,但分歧在于——本篇要正式化的是已被广泛采用的既有术语,而不是另推一个不同的单位;且聚焦于协议内不可再分的根本单位,保持 bitcoin 与 satoshi 的两级体系,不再加第三级。
对 BIP-177(重定义基本单位):原文认为其把 “bitcoin” 改指 satoshi 的做法过于激进;本篇保住 “bitcoin” 全球已确立的含义与既有系统、文档、用户认知的兼容,用标准化用词取得相近的清晰度收益,而无需从根本上重定义术语。
向后兼容:原文明确,本提案不影响比特币的技术运作与协议,纯粹是人类沟通与界面层面的术语标准化。使用其他写法的既有应用可以继续运作,但鼓励改用标准术语。
五、谁必须动
普通持币人:没有“必须”,只有推荐口径:金额较小时用 satoshis/sats 表达(如 546 sats),正式场合用全称,缩写注意单复数。
钱包与应用开发者:被鼓励的一方:在界面文案、金额展示与无障碍标注中采用标准术语与本篇的发音、分组、alt 文本建议,使不同产品之间的体验一致。
文档与内容作者:在技术文档与讨论中统一以 satoshi/satoshis 指称最小单位,减少歧义与由此产生的实现错误。
全节点、矿工与共识层:完全不动。协议内部的金额本来就以最小单位的整数计,本 BIP 不改变任何数值、规则或格式,只给这个早已存在的单位定名。
六、现在算不算数,以及一个常见误读
状态为 Draft(草案)。这意味着它仍处在提案阶段,尚未成为定稿规范——严格地说,“satoshi 是最小单位的官方版本名称”这句话目前靠的是社区长期自发形成的共识,而不是这份 BIP 的批准。本页不臆测它日后是否会转为 Deployed 或 Closed;就仓库现状而言,它是一份等待处理的草案。它所正式化的对象——1 satoshi = 0.00000001 BTC、BTC 与最小单位 1 亿比 1 的换算——则是协议自始就有的事实,不依赖本 BIP 是否通过。
常见误读:
“BIP-172 新设了比特币的最小单位,或改动了比特币的可分精度与发行规则。”
不对。八位小数的可分性与每 bitcoin 一亿个最小单位,都是中本聪最初设计的一部分,协议内部的金额计算历来以这个最小单位的整数进行。本 BIP 一个数字都没改:单位早就在那儿,它只是为这个单位登记一个统一的名字、复数和缩写。同样要分清,它也不是 BIP-177 那种把 “bitcoin” 一词改指最小单位的重定义方案——恰恰相反,它明确保留 “bitcoin” 的原义。
七、延伸
- 阅读版:https://bips.dev/172
- 官方原文:https://github.com/bitcoin/bips/blob/master/bip-0172.mediawiki
- 相关:BIP-176 Bits 计价单位、BIP-177 重定义比特币基本单位
- 仓库总目录:https://github.com/bitcoin/bips
