Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update BIP 21 with information about more modern usage of it #1555

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Commits on May 28, 2024

  1. Update to include newer address types

    Added bech32 and bech32m address types to reflect the newer SegWit and Taproot addresses.
    
    Co-Authored-By: Reese Russell <reese.russell@ymail.com>
    2 people authored and TheBlueMatt committed May 28, 2024
    Configuration menu
    Copy the full SHA
    d9f402e View commit details
    Browse the repository at this point in the history
  2. Update BIP 21 with information about more modern usage of it

    As Bitcoin has grown, the introduction of new address formats
    describing new forms of payment instructions has become
    increasingly fraught with compatibility issues. Not only does there
    exist traditional on-chain addresses, but some recipients wish to
    receive Lightning (when the sender supports it) or newer formats
    such as Silent Payments.
    
    This has led to increasing use of the BIP 21 query parameters to
    encode further optional payment instructions.
    
    Looking forward, as new payment instructions get adopted, it makes
    much more sense to include them in query parameters rather than
    replace the existing address field, ensuring compatibility with
    senders and recipients who may or may not be upgraded to support
    all the latest payment instructions.
    
    This updates BIP 21 to suggest that future address formats do this.
    
    Further, it updates BIP 21 to allow an empty bitcoin address in
    cases where new payment instructions have moved to becoming
    mandatory. This isn't a backwards-incompatible change any more than
    switching to a new address format is, so doesn't impact existing
    BIP 21 implementations in a new way, however provides a nice
    conclusion to the query-parameter-based upgrade path - once a form
    of payment instructions has broad adoption, senders can simply drop
    the existing address field, keeping their existing query parameter
    encoding, rather than replace the existing address field. It also
    addresses the question of what to do if a wallet no longer wishes
    to receive some legacy on-chain address, but has multiple payment
    instruction formats that they wish to include - deciding which one
    to place in the address field would be a difficult task.
    TheBlueMatt committed May 28, 2024
    Configuration menu
    Copy the full SHA
    76c8049 View commit details
    Browse the repository at this point in the history