mirror of
https://github.com/bitcoinbook/bitcoinbook
synced 2025-02-12 23:52:44 +00:00
Old CH07: delete section about bech32 addresses
We covered this in depth in the addresses chapter.
This commit is contained in:
parent
32d0aca1c0
commit
d7955dc284
@ -92,64 +92,6 @@ To achieve this, Bitcoin Core sets the +nLocktime+ on all new
|
|||||||
transactions to <current block # + 1> and sets the +nSequence+ on all
|
transactions to <current block # + 1> and sets the +nSequence+ on all
|
||||||
the inputs to 0xFFFFFFFE to enable +nLocktime+.((("",
|
the inputs to 0xFFFFFFFE to enable +nLocktime+.((("",
|
||||||
startref="Stimelock07")))
|
startref="Stimelock07")))
|
||||||
|
|
||||||
===== Segregated Witness addresses
|
|
||||||
|
|
||||||
Even after segwit activation, it will take some time until most wallets
|
|
||||||
are upgraded. At first, segwit will be embedded in P2SH, as we saw in
|
|
||||||
the previous section, to ease compatibility between segit-aware and
|
|
||||||
unaware wallets.
|
|
||||||
|
|
||||||
However, once wallets are broadly supporting segwit, it makes sense to
|
|
||||||
encode witness scripts directly in a native address format designed for
|
|
||||||
segwit, rather than embed it in P2SH.
|
|
||||||
|
|
||||||
The native segwit address format is defined in BIP-173:
|
|
||||||
|
|
||||||
https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki[BIP-173]::
|
|
||||||
Base32 address format for native v0-16 witness outputs
|
|
||||||
|
|
||||||
BIP-173 only encodes witness (P2WPKH and P2WSH) scripts. It is not
|
|
||||||
compatible with non-segwit P2PKH or P2SH scripts. BIP-173 is a
|
|
||||||
checksummed Base32 encoding, as compared to the Base58 encoding of a
|
|
||||||
"traditional" Bitcoin address. BIP-173 addesses are also called _bech32_
|
|
||||||
addresses, pronounced "beh-ch thirty two", alluding to the use of a
|
|
||||||
"BCH" error detection algorithm and 32-character encoding set.
|
|
||||||
|
|
||||||
BIP-173 addresses use 32 lower-case-only alphanumeric character set,
|
|
||||||
carefully selected to reduce errors from misreading or mistyping. By
|
|
||||||
choosing a lower-case-only character set, bech32 is easier to read,
|
|
||||||
speak, and 45% more efficient to encode in QR codes.
|
|
||||||
|
|
||||||
The BCH error detection algorithm is a vast improvement over the
|
|
||||||
previous checksum algorithm (from Base58Check), allowing not only
|
|
||||||
detection but also _correction_ of errors. Address-input interfaces
|
|
||||||
(such as text-fields in forms) can detect and highlight which character
|
|
||||||
was most likely mistyped when they detect an error.
|
|
||||||
|
|
||||||
From the BIP-173 specification, here are some examples of bech32 addresses:
|
|
||||||
|
|
||||||
Mainnet P2WPKH:: bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4
|
|
||||||
Testnet P2WPKH:: tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx
|
|
||||||
Mainnet P2WSH:: bc1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3qccfmv3
|
|
||||||
Testnet P2WSH:: tb1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q0sl5k7
|
|
||||||
|
|
||||||
As you can see in these examples, a segwit bech32 string is up to 90
|
|
||||||
characters long and consists of three parts:
|
|
||||||
|
|
||||||
The human readable part:: This prefix "bc" or "tb" identifying mainnet
|
|
||||||
or testnet.
|
|
||||||
|
|
||||||
The separator:: The digit "1", which is not part of the 32-character
|
|
||||||
encoding set and can only appear in this position as a separator
|
|
||||||
|
|
||||||
The data part:: A minimum of 6 alphanumeric characters, the checksum
|
|
||||||
encoded witness script
|
|
||||||
|
|
||||||
At this time, only a few wallets accept or produce native segwit bech32
|
|
||||||
addresses, but as segwit adoption increases, you will see these more and
|
|
||||||
more often.
|
|
||||||
|
|
||||||
==== Segregated Witness' New Signing Algorithm
|
==== Segregated Witness' New Signing Algorithm
|
||||||
|
|
||||||
Segregated Witness modifies the semantics of the four signature
|
Segregated Witness modifies the semantics of the four signature
|
||||||
|
Loading…
Reference in New Issue
Block a user