> bech32 | segwit | bc1 <
// Bech32 - codifica di indirizzi Bitcoin SegWit con rilevamento degli errori
Indirizzi Bitcoin
Formato nativo per gli indirizzi Bitcoin SegWit che iniziano con bc1.
Rilevamento errori avanzato
Rileva e localizza gli errori meglio del formato Base58Check.
Ottimizzato per QR code
L'uso esclusivo di minuscole rende i QR code più compatti e facili da leggere.
>> dettagli tecnici
Come funziona Bech32:
Bech32 utilizza un alfabeto di 32 caratteri (escludendo quelli facilmente confondibili) insieme a un codice BCH per la rilevazione degli errori. Include una parte leggibile dall'utente (HRP), il separatore 1, i dati e un checksum di 6 caratteri.
Struttura:
bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 bc = HRP (mainnet Bitcoin) 1 = separatore qw508d = dati (gruppi da 5 bit) kv8f3t4 = checksum (ultimi 6 caratteri)
Perché usare Bech32:
- >Indirizzi Bitcoin SegWit
- >Fatture Lightning Network
- >Indirizzi di criptovalute
- >Codifica resistente agli errori
- >Ottimizzazione per QR code
>> domande frequenti
Che cos'è Bech32?
Bech32 è un formato base32 con checksum usato principalmente per gli indirizzi Bitcoin SegWit. È stato progettato per essere più affidabile dei precedenti formati di indirizzo grazie a una migliore rilevazione degli errori.
Qual è la differenza tra Bech32 e Bech32m?
Bech32m è una versione migliorata che corregge una debolezza nell'algoritmo di checksum di Bech32 originale. È usato per gli indirizzi Taproot (bc1p), mentre gli indirizzi SegWit classici utilizzano Bech32.
Perché gli indirizzi Bech32 sono in minuscolo?
Gli indirizzi solo in minuscolo producono QR code più piccoli e sono più facili da digitare. Il formato è insensitive alla distinzione tra maiuscole e minuscole, ma per convenzione si usano le minuscole per coerenza.
Che cos'è l'HRP?
HRP (Human Readable Part) identifica il tipo di indirizzo e la rete. Esempi comuni: bc per la mainnet Bitcoin, tb per la testnet, ltc per Litecoin.
// Riferimento rapido
| value | Carattere |
|---|---|
| 0 8 16 24 | q g s c |
| 1 9 17 25 | p f 3 e |
| 2 10 18 26 | z 2 j 6 |
| 3 11 19 27 | r t n m |
| 4 12 20 28 | y v 5 u |
| 5 13 21 29 | 9 d 4 a |
| 6 14 22 30 | x w k 7 |
| 7 15 23 31 | 8 0 h l |
// Esempi di codice
Charset qpzry9x8gf2tvdw0s3jn54khce6mua7l (32 symbols, no 1 b i o) Format <hrp> + "1" + <data> + <6-char checksum> (max 90 chars) HRP bc (Bitcoin) | tb (testnet) | ltc (Litecoin) | lnbc (Lightning) Checksum Bech32 constant 1 (BIP-173) | Bech32m constant 0x2bc830a3 (BIP-350) Example bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4
>> Altre domande
D: Che differenza c’è tra Bech32 e Bech32m?
R: Stesso formato e stesso set di caratteri, ma costante di checksum diversa: Bech32 (BIP-173) usa 1, Bech32m (BIP-350) usa 0x2bc830a3. Bech32m serve per SegWit v1 e successivi, cioè Taproot (bc1p…); Bech32 per la v0 (bc1q…).
D: Perché 1, b, i e o mancano nell’alfabeto Bech32?
R: I 32 caratteri qpzry9x8gf2tvdw0s3jn54khce6mua7l escludono simboli ambigui: 1 è il separatore, e b, i, o somigliano a 6, 1 e 0. Il codice è valido solo tutto minuscolo o tutto maiuscolo, mai misto.
D: Quanto bene il checksum Bech32 rileva gli errori?
R: I 6 caratteri di controllo si basano su un codice BCH. Rilevano con certezza qualsiasi errore fino a 4 caratteri e individuano i refusi molto meglio di Base58Check. La lunghezza è limitata a 90 caratteri.