协议演进 / BIP/比特币改进提案 / BIP-179
BIP-179
提议把一次性使用的收款 address 改称为 invoice,强调它只对应一笔付款、而不像传统地址那样长期不变。本 BIP 目前处于已完成状态。
一、档案卡
| 编号 | BIP-179 |
|---|---|
| 标题 | Name for payment recipient identifiers |
| 作者 | Emil Engler <[email protected]>, Luke Dashjr <[email protected]> |
| 指定日期 | 2019-10-17 |
| 类型 | Informational(信息类) |
| 状态 | Complete(已完成) |
| 阅读版 | https://bips.dev/179 |
| 官方原文 | https://github.com/bitcoin/bips/blob/master/bip-0179.mediawiki |
二、放在哪一族
术语与用户教育族,是全仓库最短的提案之一:它不提任何新格式、新字段或新规则,只给一个早已存在的字符串换个名字。同族的是 BIP-176(给 100 聪命名为 bits)这类“只动称呼”的文档——它们的共同点是:改的是人脑子里的模型,不是机器执行的协议。
本篇的词源在致谢里交代: “Bitcoin Invoice Address” 一词由 Chris Belcher 提出。地址格式本身的演进见 BIP-173 等文档,与本篇无关。
三、它要解决什么
比特币地址的设计意图是只用一次:每来一笔新付款,就应生成一个新地址。
但 “address(地址)” 这个词在日常生活里恰好暗示相反的性质:邮政地址、电子邮件地址、IP 地址(视服务商而定)——几乎所有叫“地址”的东西都很少变、甚至从不变。用户带着这种直觉使用比特币,就会自然地把一个地址存下来反复收款,与一次性使用的设计意图背道而驰。
本篇的动机就是把术语换成一个能暗示“只对应一笔交易”的词,让名字本身起教育作用。
四、规则本身
4.1 新术语
新词是:
Bitcoin Invoice Address
其中 “Bitcoin” 与 “Address” 两部分都是可选的;“Address” 后缀只应作为过渡步骤使用。由此得到四种合法说法:
- Bitcoin Invoice Address
- Bitcoin Invoice
- Invoice Address
- Invoice
定义:Bitcoin Invoice Address 是可用来表明一笔交易的预期接收方与用途的字符串——注意,这与今天所说的“地址”所指的东西完全相同,变的只有名字。
4.2 为什么保留两个可选部分
原文给出的理由分两边:
保留 “Bitcoin”:方便多币种钱包标明这属于比特币;也用来区分闪电网络发票(lightning invoice)与链上发票。
保留 “Address”(过渡期):不让用户面对一个全然陌生的新词;仍能传达“这是往哪儿发东西的地方”;并保持向后兼容——用户看到带 Address 的说法应能立刻认出它是什么,直到新词广为人知。
4.3 向后兼容
为避免混乱,后缀 “Address” 被允许保留,但原文明确写的是“允许、但不推荐”(permitted, but not recommended)。也就是说,长期方向是只说 Invoice。
五、谁必须动
普通持币人:无人必须改任何操作。只是将来在钱包里看到 “Invoice” 字样时,要知道它就是收款地址,按惯例仍应一笔付款用一个、不要重复使用。
钱包开发者:可自愿在界面文案中改用 Invoice 系称呼;不改也不违反任何协议,因为本篇不设机器可执行的规则。
全节点与矿工、共识层:完全无关。地址的生成、校验与上链形式没有任何变化。
六、现在算不算数,以及一个常见误读
状态为 Complete(已完成)。对这份纯术语提案来说,Complete 表示提案文本本身已经定稿:新词及其可选组合、过渡安排都写完了。它不意味着钱包界面已经普遍改口——原文没有任何强制条款,也无法强制;某款产品今天显示 “Address” 还是 “Invoice”,只能看该产品自己的文案,不能由本篇状态推出。
常见误读:
“Invoice 是一种和 address 不同的新东西,付款时要另外生成。”
不对。本篇的定义写得很清楚:Bitcoin Invoice Address 就是指今天那个字符串本身——用来表明交易接收方与用途的那串字符。换名不换物:不需要新格式、不需要转换工具,把旧地址叫作 invoice,它的功能与用法与从前完全一致。
七、延伸
- 阅读版:https://bips.dev/179
- 官方原文:https://github.com/bitcoin/bips/blob/master/bip-0179.mediawiki
- 相关:BIP-176 Bits 计价单位(同为术语类提案)、BIP-173 地址格式本身
- 仓库总目录:https://github.com/bitcoin/bips
