skip to Main Content

Ogni volta che creiamo un wallet otteniamo una seed phrase dalla quale vengono generate coppie di chiavi pubbliche e private, e relativi indirizzi pronti per l’uso.

Abbiamo probabilmente notato che gli indirizzi di Bitcoin non sono sempre nello stesso formato e che a volte ci viene presentata l’opzione per scegliere il tipo desiderato. Questo può creare confusione in quanto, nelle varie piattaforme e portafogli con cui capita di interagire non appena si iniziano a fare un po’ di operazioni, non c’è molta continuità.

Nel 2024 esistono quattro formati. E’ facile quindi che possano sorgere dubbi e soprattutto il timore di perdere le proprie monete se mandate a un indirizzo di tipo non compatibile.

In questo articolo facciamo chiarezza sulle distinzioni che si presentano e capiamo come non commettere errori.

Punti Chiave:

Sulla blockchain di Bitcoin esistono indirizzi di quattro tipi: Legacy (inizia con 1), SegWit (inizia con 3), Native SegWit (inizia con bc1q) e Taproot (inizia con bc1p).

Le versioni più recenti si distinguono per la maggiore efficienza, velocità e risparmio di fees.

A livello di protocollo sono tutti compatibili: possiamo inviare e ricevere da un tipo all’altro senza problemi. Bisogna però verificare che il wallet/exchange/piattaforma supporti il formato che vogliamo usare.

Nel dubbio, o per movimentazioni consistenti, possiamo ricorrere all’utilissima pratica di fare una piccola transazione di prova.
Gli indirizzi non sono convertibili in un altro formato, ma dalla seed phrase di origine si può ricavare la versione equivalente. I migliori wallet consentono questa operazione direttamente al loro interno.

Come Riconoscere i Quattro Formati:Il protocollo di Bitcoin viene costantemente migliorato dagli sviluppatori, che attraverso la procedura dei Bitcoin Improvement Proposal o BIP possono proporre e introdurre nuove proprietà.

I primi indirizzi erano piuttosto rudimentali e all’aumentare del prezzo e degli utenti di Bitcoin è emersa la necessità di rendere le transazioni più leggere (e di conseguenza più veloci ed economiche), e di evitare la congestione del network.

Gli informatici hanno quindi lavorato su upgrade che hanno comportato l’introduzione di nuovi tipi di indirizzi, i quali oltre a ridurre la quantità di informazione necessaria a spendere e ricevere hanno anche permesso di aggiungere funzionalità addizionali.

Dalla creazione di Bitcoin nel 2009 ci sono stati quattro aggiornamenti in questo senso, con relativi formati e specifiche:

  • Legacy (P2PKH): gli indirizzi iniziano con 1 – in uso dal 2009.
  • SegWit (P2SH): gli indirizzi iniziano con 3 – in uso dal 2012.
  • Native SegWit (P2WPKH, Bech32): gli indirizzi iniziano con bc1q – in uso dal 2018.
  • Taproot (P2TR, Bech32m): gli indirizzi iniziano con bc1p – in uso dal 2021.

In questo grafico fornito da TransactionFees.info possiamo vedere come si è evoluta l’adozione dei diversi formati dal 2010 al 2022.

In rosso abbiamo gli indirizzi Legacy, in giallo, arancione e azzurro i SegWit, in porpora e blu gli indirizzi Native SegWit e in viola, in alto a destra, giusto un puntino di Taproot a inizio 2022.

In grigio, dal 2009 al 2013, notiamo l’utilizzo del formato P2PK (Pay To Public Key). Si tratta dello script iniziale usato da Satoshi Nakamoto nella prima versione di Bitcoin per inviare e ricevere monete, poi andato in disuso.
Le transazioni venivano effettuate utilizzando la versione estesa della chiave pubblica del destinatario, anziché un hash della stessa come nel formato P2PKH (Pay to Public Key Hash), anch’esso introdotto nel 2009 e ancora molto comune.

Mentre a livello di protocollo gli indirizzi sono tutti compatibili e quindi possiamo mandare a piacimento da un tipo all’altro, possono presentarsi problemi a livello di software o piattaforme, che potrebbero non aver integrato la possibilità di gestire un certo formato.

E’ quindi fondamentale verificare che il wallet da cui inviamo e quello del destinatario, che si tratti di portafogli o exchange, supportino il formato che desideriamo usare.

Approfondiamo ora le caratteristiche di ciascun formato.

Legacy:In uso dalla creazione di Bitcoin nel Gennaio del 2009, il formato Legacy o P2PKH (Pay To Public Key Hash) è l’originale e ancora oggi il più supportato in tutto l’ecosistema.

Questi indirizzi vengono oggi ricavati col metodo di derivazione presentato nel Bitcoin Improvement Proposal numero 44 (BIP44), e iniziano con 1. Ad esempio:

  • 1FjbwjLasVWQHuEHytysqdkUNFCBDADRtb

Ci si riferisce chiamandoli Legacy da quando sono stati introdotti i formati più recenti. La denominazione P2PKH, ovvero Pay To Public Key Hash, indica che la transazione viene generata usando un hash della chiave pubblica del destinatario.

L’hash è una funzione crittografica che produce stringe derivandole dai dati in ingresso mediante un algoritmo.

E’ ancora largamente in uso (notiamo l’ampiezza della banda rossa nel grafico di prima) grazie alla sua semplicità e integrazione universale, anche se, occupando molto spazio rispetto ai nuovi formati, è il tipo di indirizzo con transazioni più lente e costose.

I formati più recenti sono migliori da tutti i punti di vista, per cui non c’è alcun motivo di farne uso, se non per motivi di compatibilità nell’adeguarsi a exchange e wallet che non forniscono alternative.

SegWit:Introdotto nel 2012, il formato P2SH (Pay To Script Hash) è caratterizzato da indirizzi che iniziano con 3, oggi ricavati principalmente col metodo di derivazione BIP49. Ad esempio:

  • 3JTWQFhmsLa5X2R6HXeshV5FCszcz4Xeb7

La denominazione P2SH, ovvero Pay To Script Hash, indica che gli indirizzi non sono più un hash della chiave pubblica, bensì di uno script (una piccola serie di istruzioni) che include determinate condizioni affinché sia possibile eseguire la transazione.

Di fatto vengono aggiunte all’indirizzo semplici funzionalità programmabili, come ad esempio la possibilità di richiedere più di un firmatario per autorizzare una transazione (Multi Signature o MultiSig).

E’ grazie all’uso di questi script che gli indirizzi P2SH sono in grado non solo di gestire tutte le operazioni degli indirizzi Legacy ma anche di interagire con formati più recenti e transazioni SegWit.

SegWit è un upgrade del protocollo di Bitcoin attivato nel 2017, che oltre ad aver reso le transazioni più flessibili ne ha aumentato la sicurezza e ha creato le condizioni per lo sviluppo di ulteriori aggiornamenti e soluzioni come il Lightning Network.
Il termine SegWit sta per Segregated Witness, e indica la separazione delle informazioni della transazione dalla firma, riorganizzando i dati dei blocchi in due parti: la prima contenente gli indirizzi di mittente e destinatario, e la seconda i witness data (appunto la firma).
Rimuovendo questi ultimi dal blocco in scrittura, e includendoli nella blockchain in una struttura separata, si ottiene una netta riduzione delle dimensioni dei dati necessari ad archiviare una transazione e quindi la possibilità di includerne di più in un singolo blocco, con conseguente aumento della velocità e riduzione delle fees.

Successivamente all’upgrade Segregated Witness, gli indirizzi P2SH sono chiamati anche Nested SegWit, semplicemente SegWit o a volte Legacy SegWit, per via del fatto che usano spesso questa soluzione, anche se non in maniera nativa.

Si tratta di indirizzi versatili che supportano ogni tipo di transazione e si distinguono per l’ottimizzazione delle firme, la riduzione delle fees, la maggior velocità ed efficienza, e la massima compatibilità.

Le transazioni sono del 30% più economiche rispetto a quelle che coinvolgono indirizzi Legacy.

Native SegWit:Introdotto a inizio 2018 con il Bitcoin Improvement Proposal 84 (BIP84) a pochi mesi dal SegWit upgrade, il formato Native SegWit, anche detto Bech32 o P2WPKH (Pay To Witness Public Key Hash) si riconosce dagli indirizzi che iniziano con bc1q. Eccone un esempio:

  • bc1q2q7enhtvjynllkdhzg46gh2k0598mqjmutknpn

Questo tipo di indirizzi è molto veloce ed economico, ed è caratterizzato da stringhe che contengono solo lettere minuscole, per una maggior leggibilità.

Bech32 è il formato nativo di SegWit ed è ancora più efficiente nell’utilizzo dello spazio dei blocchi. In questo caso non solo la firma ma anche gli script SegWit sono esclusi dalla transazione e messi nei witness data, con ulteriore risparmio di informazioni da includere nei blocchi.

Le transazioni sono del 40% più economiche rispetto alle Legacy e del 15% rispetto alle Nested SegWit. Grazie a questi vantaggi è attualmente lo standard più utilizzato.

Taproot:Il formato più recente è attivo da Novembre 2021, si chiama Taproot e viene indicato anche con P2TR (Pay To TapRoot) o Bech32m, con indirizzi che usano le specifiche BIP86 e iniziano con bc1p, come ad esempio:

  • bc1pmzfrwwndsqmk5yh69yjr5lfgfg4ev8c0tsc06e
Sostituire la ‘q’ con una ‘p’ nel nostro indirizzo Bech32, pensando così di ‘convertirlo’ in un indirizzo Taproot, comporterà la perdita irrimediabile dei nostri fondi.

Il Taproot upgrade è composto da tre Bitcoin Improvement Proposals: BIP340, BIP341, e BIP342, anche detti BIP Taproot.

Ancora una volta abbiamo miglioramenti in termini di funzionalità e utilizzo, con maggiore scalabilità, privacy, efficienza, sicurezza e facilità di transazione.

Per gli utenti cambia pochissimo rispetto a Bech32. La più alta flessibilità garantita dalle modifiche tecniche giova soprattutto agli sviluppatori, grazie alla maggior dimensione e complessità degli Smart Contract realizzabili sul network, con nuove caratteristiche che potenzialmente rendono possibile il suo impiego anche per NFT, DAO e DeFi.

La più importante innovazione riguarda l’introduzione dell’algoritmo di firma Schnorr, che:

  • Riduce la tracciabilità e riconoscibilità delle transazioni, aumentando la privacy.
  • Snellisce le transazioni Multi Signature, permettendo di aggregare chiavi pubbliche e firme dei wallet coinvolti in una singola chiave.
  • Consente di raggruppare firme e transazioni per verificarle in serie anziché una per una, riducendo il tempo e potere computazionale necessari a processarle e di conseguenza le fees.
  • Aumenta la sicurezza delle firme.

Un upgrade importante, implementato mediante soft fork, che richiederà tempo per mostrare tutte le sue potenzialità.

Una cosa sono i formati di indirizzi sulla blockchain di Bitcoin. Questi si riferiscono tutti ancora alla moneta nativa del network.
Un altro discorso sono invece le numerosissime versioni collateralizzate di BTC, che come abbiamo visto in questo articolo di approfondimento esistono su network come Ethereum e Binance, ciascuna con indirizzi nel formato della rete specifica.
Anche i codici QR possono essere usati per rappresentare e leggere gli indirizzi di un wallet. E’ fondamentale però assicurarci che al momento della scansione l’indirizzo rilevato dal dispositivo che usiamo corrisponda a ciò che appare in formato stringa di testo sullo schermo da cui leggiamo.

Compatibilità:Abbiamo visto che i vari tipi di indirizzo gestiscono le transazioni in maniera leggermente diversa. Sono però del tutto compatibili a livello di protocollo, in quanto non c’è niente nel codice di Bitcoin che impedisca di inviare o ricevere tra diversi formati.

Se ci imbattiamo in un problema non si tratta di limiti di Bitcoin bensì di mancanze del software, wallet o piattaforma che usiamo.

Capita di sentire che, ad esempio, un indirizzo Legacy non è compatibile con SegWit. E’ vero, ma solo per quanto riguarda il fatto che un indirizzo Legacy non è in grado di inviare una transazione di tipo SegWit. Questo però non implica che non sia in grado di interagire con un indirizzo in quel formato.

Semplicemente in questi casi vengono meno i vantaggi garantiti dal tipo di transazioni più recenti, per cui al limite si paga qualcosa in più di fees e si aspetta un po’ di più. Ma i fondi arrivano a destinazione in tutta sicurezza.

Come notiamo in questa tabella comparativa, che mostra il peso in bytes di transazioni in tutte le combinazioni possibili (prima di Taproot), ogni indirizzo è in grado di ricevere e inviare da e verso ciascun tipo di formato.

La differenza è solo che, mentre un certo risparmio si ottiene anche con l’invio da indirizzi obsoleti verso standard più recenti, i maggiori benefici in termini di ottimizzazione si raggiungono esclusivamente avviando transazioni da indirizzi di nuovo tipo.

Ogni piattaforma, exchange e wallet ha integrata la compatibilità, ovvero la capacità di interagire, con alcuni o tutti i tipi di indirizzi.

E’ nostra premura verificare preliminarmente che gli strumenti con cui gestiamo le nostre monete siano in grado di riconoscere i formati con cui ci serve avere a che fare.

Come sempre, usare wallet e piattaforme della più alta qualità, e tenere tutto aggiornato, ci permette di prevenire brutte sorprese. Ad esempio, i due maggiori costruttori di hardware wallet, Ledger e Trezor, offrono totale compatibilità e supporto verso tutti i formati.

Entrambi consentono di generare indirizzi di ciascun tipo e inviare e ricevere in tutti e quattro gli standard, come possiamo vedere in questi screenshot (Ledger Live a sinistra e Trezor Suite a destra).

La transazione viene generata dal wallet che invia. Per questo la cosa importante è essere certi che sia la piattaforma che produce la transazione a poter gestire l’indirizzo di ricezione che inseriamo. Se le cose funzionano a quel livello non abbiamo nulla da temere.

Quando qualcosa non torna, inserendo il transaction hash in un blockchain explorer possiamo avere un immediato riscontro di cosa è successo e a che punto è la transazione.

Nell’ecosistema crypto si nota purtroppo una tendenza ad adeguarsi piuttosto lentamente. Anche se sono rare le situazioni in cui è supportato esclusivamente il formato Legacy, il primo tipo di indirizzi Bitcoin è ancora usatissimo, come visto prima.

Se da un a parte le infrastrutture da implementare per rendere operativi e sicuri i nuovi formati sono indubbiamente onerose, dall’altra non stare al passo crea innumerevoli potenziali conflitti e difficoltà, che viste le cifre in gioco non sono ammissibili. Anche dettagli come questi sono un indice della serietà delle piattaforme che scegliamo di usare.

Hanno fatto scalpore i due incidenti avvenuti sull’exchange Binance e nel DeFi wallet di Crypto.com (non esattamente gli ultimi della classe…), che per un loro errore nella gestione di indirizzi Taproot hanno portato alla perdita dei fondi degli utenti.

C’è inoltre poca continuità nel modo in cui diverse componenti vengono denominate, e questo aggiunge uno strato di confusione che sarebbe del tutto evitabile. Ad esempio, riferendosi a indirizzi SegWit, Trezor intende Native SegWit Bech32 che iniziano con bc1q, mentre Ledger intende i Nested SegWit che iniziano con 3, ai quali Trezor applica la denominazione Legacy SegWit (!).

In sintesi, conviene sempre verificare in anticipo di avere le idee ben chiare sulle funzionalità e opzioni disponibili nei dispositivi che usiamo.

Al momento, per la maggior efficienza e compatibilità, il formato ideale che garantisce il miglior compromesso tra efficacia, supporto e convenienza è il Bech 32.

Indicativamente non c’è ragione di affrettarsi a utilizzare uno standard appena introdotto. Quelli vecchi funzionano benissimo e sono lungamente testati. Inutile correre rischi per risparmiare qualche centesimo sulle fees.

E’ importante riconoscere che l’utente medio non ha alcun interesse a capire o rimanere aggiornato su tutte queste variabili. E a ragione, perché una tecnologia, soprattutto quando si movimentano capitali, deve funzionare in modo semplice ed essere a prova di errore. A un livello tale che dovrebbe essere impossibile confondersi e potenzialmente perdere i propri fondi.
Attualmente questo è tra i più grandi ostacoli all’adozione di massa cui le criptovalute ambiscono.

Conversione:Come detto a inizio articolo i vari formati sono ricavabili da una stessa seed phrase. Questo significa che dalla nostra seed è possibile ottenere indirizzi in ciascun formato senza creare un nuovo wallet.

Tuttavia è importante capire che gli address non sono ‘convertibili’ da un formato all’altro. Non c’è modo, avendo un indirizzo di un certo tipo, di ottenerne l’equivalente in un diverso formato, perché i derivation path e le chiavi private coinvolte sono diversi.

Ciò che è possibile fare è avvalersi di strumenti che usando lo standard crittografico specifico permettono, a partire dalla seed phrase, di ricavare un’altra versione.

Molti wallet sono attrezzati per compiere questa operazione al loro interno. Quando non è così, se ci serve un formato particolare possiamo in teoria ricorrere al convertitore di Ian Coleman, del quale abbiamo approfondito il funzionamento in un articolo dedicato.

Il convertitore di Ian Coleman è un software gratuito e open source che consente di inserire qualsiasi tipo di seed e derivare chiavi pubbliche, private e indirizzi delle principali criptovalute e nei maggiori formati disponibili.
In questo articolo di integrazione impariamo a conoscerlo e usarlo a fondo. La seed phrase della dimostrazione è stata impiegata per ricavare gli esempi di indirizzi mostrati prima, per cui possiamo allenarci e vedere se riusciamo a fare lo stesso senza compromettere una vera seed contenente fondi.

In pratica però ricavare indirizzi equivalenti ha poco senso se poi non abbiamo un’interfaccia che sia in grado di riconoscerli. Sicuramente è una pratica da evitare se pensiamo che così facendo possiamo fornire un indirizzo nel formato che ci viene richiesto e vedere arrivare le monete.

Se il nostro wallet non supporta quella versione, non le riceveremo. Non saranno perse perché sarà sufficiente inserire la seed phrase in un wallet alternativo che invece accetta quello standard. Ma a quel punto potevamo immettere la seed direttamente nel nuovo wallet.

Evidentemente sono soluzioni tutt’altro che ottimali. Invece di esporre la seed phrase è più ragionevole non toccare niente nel wallet d’origine e crearne uno nuovo capace di fornirci indirizzi del tipo di nostro interesse.

Un modo più concreto di ‘convertire’ un indirizzo Bitcoin è quello di inviare le monete che contiene a un indirizzo nel nuovo formato, generato possibilmente nello stesso portafoglio.

Supponiamo ad esempio di avere i nostri BTC in un vecchio indirizzo Legacy che vogliamo convertire in formato Bech32 per usufruire dei benefici che offre. Anche se tecnicamente non è possibile, in pratica non dobbiamo fare altro che inviarli a un indirizzo Native SegWit che controlliamo.

Il presupposto è avere wallet che supportano entrambi i formati. Non dobbiamo fare altro che creare un nuovo account del tipo desiderato, copiare l’indirizzo generato e incollarlo in una transazione di invio dall’account dove risiedono i Bitcoin. In qualche minuto le monete arriveranno al nuovo indirizzo e saranno di fatto convertite.

Notiamo che in questo caso si tratta di vere e proprie transazioni on chain, anche quando avvengono tra indirizzi appartenenti allo stesso portafoglio. Di conseguenza da una parte dovremo pagare le relative fees e attendere che la transazione sia processata. E dall’altra dobbiamo essere certi di non commettere errori, come per qualsiasi transazione che coinvolge criptovalute.
Alcuni wallet gestiscono i saldi dei diversi indirizzi sommando tra di loro i BTC che abbiamo nel tempo inviato ai vari formati e mostrando una cifra complessiva, mentre altri mantengono gli account separati.

Ovviamente possiamo procedere con la stessa operazione anche tra wallet diversi, purché siano tutti di nostra proprietà.

Ora capiamo perché è così importante scegliere accuratamente portafogli che permettono da subito di gestire ogni tipo di indirizzo.

La Transazione di Prova:Per il 100% di sicurezza la risposta a qualsiasi dubbio e la soluzione per evitare brutte esperienze consiste nella semplicissima prassi della transazione di prova.

In pratica, prima di una transazione rilevante, che sia verso un exchange o in uscita da un exchange e verso il nostro wallet, possiamo effettuare una piccola transazione iniziale, come test per assicurarci che l’operazione vada a buon fine.

Una volta che abbiamo conferma che tutto funziona perfettamente e le monete giungono a destinazione, possiamo procedere con la transazione vera e propria con la cifra totale avendo la certezza che i fondi arriveranno.

Ad esempio, i due incidenti avvenuti su Binance e Crypto.com citati prima non si sarebbero verificati se l’utente avesse aderito a questa procedura prudenziale.

Naturalmente fare una prova, comportando l’avvio di due transazioni anziché una, determina il raddoppio dei relativi costi.

Le transaction fees inviando da wallet variano dai pochi centesimi ai pochi euro a transazione. Prelevare da un exchange può invece oscillare enormemente, come vediamo in questa tabella di WithdrawalFees.com.

Si parte dai prelievi a cifre minime di Coinbase e Kraken, per arrivare agli 0.0005 o anche 0.001 BTC di exchange come Binance, Gemini o Gate.io.

A noi stabilire quando ne vale la pena.

Attenzione anche alle soglie di deposito minimo e di prelievo minimo applicate dagli exchange.

Conclusioni:

Il nostro obiettivo è sempre quello di conoscere allo scopo di evitare errori. Le distinzioni sono tante, e purtroppo ci vuole pochissimo a commettere un’ingenuità.

Memorizziamo l’aspetto dei vari indirizzi e assicuriamoci che gli strumenti che usiamo siano predisposti per gestire i formati di nostro interesse. Come sempre con le criptovalute, quel poco di lavoro in più può significare sostanziosi risparmi di tempo, stress e soprattuto denaro.

Risorse correlate:

Terminologia Delle Criptovalute – Glossario Veloce
10 Errori da Evitare con le Criptovalute – Guida Gratuita
Cos’è Bitcoin, Come Funziona, i Vantaggi, i Limiti, Cosa Permette di Fare e Perché è Importante
Come Recuperare Criptovalute Perse Inviate a Blockchain, Network o Indirizzi Sbagliati
La Differenza tra Criptovalute e Token ERC20, BEP2, BEP20, SPL e TRC20 + Come non Commettere Errori nel Prelevare


Share

CdIta

Inserisci la Tua eMail per Ricevere Contenuti Esclusivi Gratuiti.

var sc_project=12569920;
var sc_invisible=1;
var sc_security="381169ba";

Web Analytics Made Easy - StatCounter
Back To Top