👉🏻 Clicca qui per guardare la versione video su YouTube 👈🏻
Perché alcuni indirizzi Bitcoin iniziano con “1”, altri con “3”, e altri ancora con “bc1q” o “bc1p”? In questo episodio faremo la radiografia dei tipi di indirizzi: capiremo come funzionano, quali sono i vantaggi e quali conviene usare oggi.
Episodio 8 di 10 della serie sulla crittografia Bitcoin. Recupera qui gli altri episodi della serie 👉🏻 Caccia al tesoro
🔑 Cos’è un indirizzo Bitcoin?
Un indirizzo Bitcoin è il punto di ricezione dei tuoi BTC, il “conto corrente” pubblico dove altri possono inviarti fondi.
È il risultato di una sequenza di calcoli e funzioni matematiche che partono dalla tua chiave privata, passano per una chiave pubblica ed infine terminano nel tuo indirizzo.
L’indirizzo è una versione “hashata” della chiave pubblica, spesso con controlli (checksum) e codifiche (Base58, Bech32).
Hai mai notato quanto siano diversi gli indirizzi Bitcoin?
Non è solo una questione estetica: ogni formato racconta una storia di evoluzione tecnologica.
1...
→ Gli indirizzi “legacy”.3...
→ Script hash e multisig.bc1q...
→ L’era di SegWit.bc1p...
→ Taproot e firme Schnorr.
Dietro queste differenze ci sono scelte di sicurezza, efficienza, privacy e compatibilità.
Vediamo come tutto è iniziato.
🧩 P2PK – Pay to Public Key
Il primo tipo di indirizzo usato nei blocchi di Satoshi.
04b0bd634234abbb1ba1e986e884185c0458c8c1a6bdc4e9a4b5c34f4dea149b4c0ab2d8e91b3e3ff63f6e7a86b173360d4f4f49d13c2eecbaecd6a4d190ec16cf
In realtà qui i Bitcoin vengono “bloccati” su una chiave pubblica, non su un hash, è questo è un problema, perchè:
- La chiave pubblica è esposta prima di spendere.
- In caso di futuri computer quantistici, i fondi sarebbero vulnerabili.
- Non è scalabile né compatibile con i miglioramenti successivi.
🧩 P2PKH – Pay to Public Key Hash
L’indirizzo diventa un hash della chiave pubblica, non la chiave stessa.
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
Invece di inviare Bitcoin alla chiave pubblica, li invii all’hash della chiave pubblica.
Questo fa si che la chiave pubblica rimanga nascosta fino al momento della spesa e dunque aumentiamo nettamente la privacy.
Ma non è tutto, infatti dopo aver ottenuto l’hash della chiave pubblica lo si codifica secondo il modello “Base58Check“.
Come vedremo, questa ulteriore codifica serve per rendere maggiormente leggibile il nostro indirizzo, base58chek ed effettua anche una verifica che l’indirizzo sia valido, infatti:
- I caratteri che potrebbero confondersi l’uno con l’altro sono esclusi:
0
,O
,I
,l
(troppo simili tra loro). - L’indirizzo include un checksum, come abbiamo visto nelle lezioni passate per la chiave privata, ovvero vengono aggiunti 4 byte finali per rilevare errori di digitazione e non consentire l’invio se non è conforme.
- Gli indirizzi della stessa “famiglia” iniziano sempre con lo stesso prefisso.

🧩 P2SH – Pay to Script Hash
L’indirizzo è compatto ed il prefisso con il quale comincia è sempre “3“.
3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy
Arrivato con BIP16 (2012), P2SH permette di inviare BTC a uno script, non solo a una chiave pubblica.
Questo ha aperto le porte a
- Portafogli multifirma (detti multisig. da multisignature): dove più utenti gestiscono insieme un portafoglio e tutti, o una parte di essi in base a come si decide durante la creazione, devono essere d’accordo per muovere i fondi.
- Timelocking: la possibilità di bloccare la spesa di BTC fino ad un dato momento nel futuro.
🧩 P2WPKH – Pay to Witness Public Key Hash (SegWit)
Con l’arrivo di SegWit, gli indirizzi cambiano di nuovo.
bc1q42lja79elem0anu8q8s3h2n687re9jax556pcc
Si introduce un nuovo standard di codifica, il Bech32, dove tra le varie migliorie troviamo:
- Solo caratteri minuscoli (più leggibili)
- Totale: 32 caratteri → usa un set più semplice e uniforme
- È più leggero (a livello di parsing e per i QR code)
- Facilita la verifica automatica (checksum integrato potente)
🧩 P2WSH – Pay to Witness Script Hash
La versione SegWit di P2SH.
bc1q42lja79elem0anu8q8s3h2n687re9jax556pcc
In tutto il resto valgono le stesse regole viste in passato.
🧩 P2TR – Pay to Taproot
Taproot (2021) è lo step evolutivo più avanzato che utilizza le firme Schnorr (addio all’ECDSA) e Tapscript.
bc1p5cyxn5zv55n7000w0h2h44t0n7p5f58k07479040t72986y708f6k4s5
Taproot ha portato diverse innovazioni, e piano piano è destinato, almeno al momento, a diventare lo standard.
Tra le principali troviamo:
- Firme Schnorr: più compatte e lineari, permettono multisig indistinguibili da firme singole, in passato invece io potevo chiaramente distinguere se un portafoglio era a firma singola o multipla.
- Privacy negli script: puoi scrivere script complessi ma rivelare, quando necessario, solo il ramo di script usato.
- Nuovi smart contract: grazie al linguaggio Tapscript si possono avere condizioni di spesa sempre più complesse.
- Fee ottimizzate: nonostante le possibili siano più transazioni complesse le firme occupano meno spazio e dunque sono più economiche in termini di spazio e quindi commissioni.
🎯 Perchè il prefisso è sempre lo stesso:
Partiamo da una public key e otteniamo l’indirizzo Bitcoin legacy in formato Base58Check, seguendo passo-passo i 5 passaggi che hai citato.
- 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179
- SHA256(pubkey) ➝ ec5de…
- poi RIPEMD160(SHA256) ➝ 62e907b15cbf27d5425399ebf6f0fb50ebb88f18
- Questo è il nostro pubKeyHash → 20 byte
- Aggiungi il prefix/versione (0x00 per P2PKH) – 00+62e907b15cbf27d5425399ebf6f0fb50ebb88f18 = 0062e907b15cbf27d5425399ebf6f0fb50ebb88f18
- 👉 Totale: 21 byte
- Calcola il checksum (SHA256 doppio) – SHA256(SHA256(0062…f18)) = ad3c854da22714df48a668a5799e3fba3fdb4e43f2335ce2e79eea23149c4f5f
- Prendiamo i primi 4 byte: 👉 ad3c854d
- Aggiungi il checksum alla fine – 0062e907b15cbf27d5425399ebf6f0fb50ebb88f18ad3c854d
- 👉 Totale: 25 byte
- Codifica tutto in Base58Check – 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
- Prende i singoli byte (00,62,e9,07,ecc….) li converte in singoli bit (200 bit)
- Prende questo numero immenso e lo converte in base 58
Quello che notiamo è che in poche parole il prefisso decide qual è il primo byte dell’indirizzo e durante la codifica in Base58Check, il primo byte sarà codificato sempre allo stesso modo.
⚛️ Computer quantistico e chiavi pubbliche/private
Il fatto che la chiave pubblica venga hashata è un vantaggio anche in termini di sicurezza.
Infatti un computer quantistico POTREBBE, e mi raccomando stiamo usando il condizionale, rompere la sicurezza che non consente di risalire da una chiave pubblica ad una privata, ma NON POTREBBE rompere la funzione di hash e scoprire da un hash, una chiave pubblica.
Questo fa si che un eventuale attacco quantistico a dei Bitcoin sarebbe molto più facile su indirizzi P2PK, che sono “in chiaro” tutto il tempo, rispetto ad indirizzi P2PKH che rivelano la chiave solo per il tempo necessario a vedere la propria transazione inserita in un blocco (circa 10 minuti).
Gli algoritmi a curva ellittica (come ECDSA, usato da Bitcoin) si basano su problemi matematici ritenuti “duri” per i computer classici, come il logaritmo discreto.
Un computer quantistico, grazie all’algoritmo di Shor, potrebbe teoricamente calcolare la chiave privata partendo dalla chiave pubblica, rompendo l’ECDSA.
Tuttavia, gli hash crittografici (SHA-256, RIPEMD-160, ecc.) non sono vulnerabili all’algoritmo di Shor. Al massimo, l’algoritmo di Grover potrebbe ridurre il livello di sicurezza di un hash di 256 bit a 128 bit, ma sarebbe comunque estremamente difficile da “rompere”.
📌 Prossimo episodio:
Quali sono i rischi nel detenere una seed? Come si conserva in modo corretto? Quali errori evitare?! Questo e tanto altro nella penultima puntata della nostra serie!
Episodio 8 di 10 della serie sulla crittografia Bitcoin. Recupera qui gli altri episodi della serie 👉🏻 Caccia al tesoro
🤬 La parola di oggi è: 8. maretta