codifica | decodifica | compressione

> bech32 | segwit | bc1 <

// Bech32 - codifica di indirizzi Bitcoin SegWit con rilevamento degli errori

[SEGWIT]

Indirizzi Bitcoin

Formato nativo per gli indirizzi Bitcoin SegWit che iniziano con bc1.

[ERROR-DETECTION]

Rilevamento errori avanzato

Rileva e localizza gli errori meglio del formato Base58Check.

[CASE-INSENSITIVE]

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

valueCarattere
0 8 16 24q g s c
1 9 17 25p f 3 e
2 10 18 26z 2 j 6
3 11 19 27r t n m
4 12 20 28y v 5 u
5 13 21 299 d 4 a
6 14 22 30x w k 7
7 15 23 318 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.

Altre lingue