On Sun, Jul 20, 2025 at 9:35 PM Ethan Heilman <[email protected]> wrote:

> Does anyone remember why BIP-0173 added a special rule to make Witness
> Versions legible in this way? It might be useful to document here for
> future discussions on address encoding.
>

I'm not sure what you're referring to there -- there needed to be an
_encoded_ version for the purpose of consensus rules.  1xxx addresses have
one, for example (which results in them beginning with 1).  The reason it's
5 bits is just to avoid needlessly inflating the length of addresses.. as
additional versioning, if someday required could be achieved by additional
words in the payload.

There is a _human readable_ part, but that refers to the "bc" prefix
identifying the currency/network,  not any of the technical minutia about
how the system works.  The reason for the human readable part was that
there has been instances of funds loss caused by fork coins / altcoins that
copied bitcoin wholesale and used the same addresses and we'd hoped that a
prefix that was easy to change an unambiguously associated with bitcoin
would have a chance of reducing that risk in the future.

or to restate: A recipient's script is fundamentally none of the sender's
business (except for multiparty contracts or other special cases) -- and so
generally we want the sender to be as oblivious of the details of the
script as reasonably possible.  If the sender has paid to the output the
receiver has specified then they've done their part.  Any further issues
are the recipient's responsibility.  If the sender hasn't-- e.g. say they
took apart some address and made some custom script without the receivers
consent, like turning a taproot pubkey into a legacy address-- then they
haven't made a payment to the recipient and they still owe the
recipient funds.  But this also requires that the payment be on the right
network, and while they could be informed outside of the address since it
was a frequent cause of errors we thought it critical to embed it.  The
reason for making the embedding legible was primarily so that altcoins
wouldn't just copy the prefix as they had frequently done with the version
numbers.

(and I believe so far this has proved to be successful, copies have changed
the HRP)

-- 
You received this message because you are subscribed to the Google Groups 
"Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/bitcoindev/CAAS2fgR%2BXccLeZqt0GXP%3Db-cu9ya%3D-pVZred_q6xGCrNKMLy9g%40mail.gmail.com.

Reply via email to