Home › Browse › BIP 179

BIP 179: Name for payment recipient identifiers

In plain English: Suggests replacing the word "address" with "invoice" or "invoice address." Because Bitcoin addresses are meant to be used only once, the authors argue the new term better discourages address reuse, which harms privacy.

Status
Complete
Type
Informational
Authors
Emil Engler, Luke Dashjr
Assigned
Last changed
Topics
Transactions
Source
bip-0179.mediawiki on GitHub · Markdown

Abstract

This BIP proposes a new term for 'address'

Specification

The new term is: Bitcoin Invoice Address

The Bitcoin and Address parts are optional. The address suffix should only be used as a transitional step.

A Bitcoin Invoice Address is a string of characters that can be used to indicate the intended recipient and purpose of a transaction.

Motivation

Bitcoin addresses are intended to be only used once and you should generate a new one for every new incoming payment. The term 'address' however indicates consistency because nearly everything on the internet or the offline world with the term 'address' is something that rarely or even never changes (postal address, email address, IP addresses (depends heavily on the provider), etc.) The motivation for this BIP is to change the term address to something that indicates that the address is connected to a single transaction.

Rationale

The reason why we use Bitcoin Invoice Address or just Invoice is to emphasize that it is single-use. The terms Bitcoin and Address are optional for the following reasons: For Bitcoin:

  • Useful for multicoin wallets to indicate that it belongs to Bitcoin
  • Indicates a difference between a lightning and an on-chain invoice

For Address:

  • To not confuse users with a completely new term
  • To show that it is where you send something to
  • To not break backwards compatibility

This gives us the four following possibilities:

  • Bitcoin Invoice Address
  • Bitcoin Invoice
  • Invoice Address
  • Invoice

Backwards Compatibility

To avoid issues, the 'Address' suffix is permitted, but not recommended. The suffix 'Address' remains so users should be immediately able to recognize it until the new term is widely known.

Acknowledgements

Thanks to Chris Belcher for the suggestion of the term 'Bitcoin Invoice Address'

This BIP is released under CC0-1.0 and therefore Public Domain.

Related proposals

  • BIP 11: M-of-N Standard Transactions: Deployed. Made "M-of-N" transactions, which require any M signatures out of N possible keys, a standard type that nodes relay. This enabled shared-control arrangements such as escrow or wallets needing two of…
  • BIP 12: OP_EVAL: Closed. Proposed a new script command, OP_EVAL, that would let the receiver of coins define the conditions for spending them instead of the sender. It was abandoned over security concerns and replaced by…
  • BIP 16: Pay to Script Hash: Deployed. Introduced Pay to Script Hash (P2SH), letting a sender pay to a short fingerprint of spending rules that the recipient reveals only when spending. This shifted the cost and complexity of setups like…
  • BIP 31: Pong message: Deployed. Adds a "pong" reply that a node sends back when it receives a "ping" containing a random number. This lets software reliably tell whether a connection to another node is still alive.
  • BIP 47: Reusable Payment Codes for Hierarchical Deterministic Wallets: Deployed. Introduces reusable payment codes that someone can publish once, for example on a website, without the privacy loss of reusing an address. Senders use the code to derive fresh addresses for each…
  • BIP 53: Disallow 64-byte transactions: Draft. Proposes making transactions that are exactly 64 bytes long (excluding signature data) invalid. Such transactions can be confused with internal pieces of a block's Merkle tree, the structure…