đđť 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

