skip to Main Content

Ci sono circostanze in cui ci serve sapere le chiavi private dell’account di una nostra criptovaluta ma non abbiamo modo di accedervi. In questo articolo vedremo come procedere per ottenerle.

Possiamo considerare le istruzioni che seguono un’integrazione alle otto guide dedicate al recupero di monete perse, presentate nel post introduttivo ‘Come Recuperare Criptovalute Perse Inviate a Blockchain, Network o Indirizzi Sbagliati‘.

Punti Chiave:
Recuperare criptovalute perse può richiedere l’utilizzo delle chiavi private del nostro wallet.
Esistono strumenti per ricavare le chiavi private a partire da qualsiasi seed. Il più noto è il convertitore di Ian Coleman.
Esporre le chiavi private può comportare la perdita di tutti i nostri asset. I procedimenti che le coinvolgono vanno gestiti con la massima cautela.

Caratteristiche dei Wallet:Per poterci muovere agilmente negli strumenti che useremo è necessaria una conoscenza di base del funzionamento dei wallet.

Chi ha già una buona familiarità con questi aspetti può dirigersi direttamente alla sezione ‘Ian Coleman’ a metà articolo.

I portafogli per criptovalute si differenziano in base a una serie di specifiche che vengono impiegate al loro interno:

  • Lo standard tecnico.
  • La seed phrase.
  • Il percorso di derivazione.

Wallet BIP32/39/44:La maggior parte dei wallet aderisce agli standard tecnici BIP32, BIP39, BIP44. BIP è l’acronimo di Bitcoin Improvement Proposal, il processo usato dalla comunità di sviluppatori di Bitcoin per proporre miglioramenti e modifiche al progetto:

  • BIP32: E’ l’aggiornamento che ha introdotto il metodo HD (Hierarchical Deterministic, gerarchico deterministico), per generare da un seed la master key e poi tutte le chiavi pubbliche e private, organizzandole in una configurazione ramificata definita.
  • BIP39: E’ lo standard che consente di generare una seed phrase, ovvero una serie di 12 o 24 parole scelte da una lista di 2048 termini mnemonici, e di trasformarla in un seed BIP32.
  • BIP44: Ha introdotto la possibilità di creare più account, strutturando la ramificazione delle chiavi secondo un metodo che consente l’uso di diversi account per diversi scopi.

Con tutta probabilità i wallet che usiamo sono compatibili con queste norme, che pur essendo nate per Bitcoin sono state poi adottate da tutto l’ecosistema cripto.

E’ per questo che siamo abituati a interagire con una singola seed phrase dalla quale vengono automaticamente ricavati indirizzi e account di tutte le nostre criptovalute.

La Seed Phrase:La seed phrase, chiamata anche recovery phrase o frase mnemonica, viene generata nel momento in cui creiamo un portafoglio BIP39 ed è il mezzo di accesso ai nostri fondi, in quanto rappresenta tutte le chiavi pubbliche e private conservate al suo interno.

E’ l’elemento più prezioso nella gestione delle nostre criptovalute perché perderla equivale a non poter in alcun modo recuperarle. Allo stesso tempo chiunque ne venga in possesso può ricreare il nostro wallet e farne ciò che vuole.

E’ quasi sempre una serie di 12 o 24 parole inglesi, un modo pratico di rappresentare e conservare le chiavi senza dover gestire lunghe stringhe di caratteri incomprensibili.

Alcuni wallet come Ledger e Trezor consentono di inserire una tredicesima o venticinquesima parola alla seed. Questa viene spesso considerata una password, ma non va confusa con la password richiesta da molti wallet per aprire l’applicazione.

Derivation Path:Gli indirizzi vengono ottenuti secondo un determinato percorso di derivazione chiamato ‘derivation path’, che varia in base allo standard usato e alla moneta specifica, e configura le regole in base alle quali un wallet viene generato a partire da una master key.

In pratica il derivation path dice a un portafoglio Hierarchical Deterministic il percorso da seguire per ricavare l’insieme delle chiavi associate.

La struttura di derivazione più utilizzata è quella dello standard BIP44, introdotta col proposito di aumentare la compatibilità tra i vari wallet. E’ organizzata in cinque livelli:

m/scopo’/criptovaluta’/account’/chain/indirizzo

In cui:

  • m: indica la master key da cui verranno derivati chiavi e indirizzi.
  • scopo: si riferisce allo standard di derivazione applicato.
  • criptovaluta: è il numero assegnato a ogni criptovaluta nello standard BIP44. Ad esempio per Bitcoin tale numero è 0, per Ethereum è 60 e per Ripple è 144 (in fondo all’articolo troviamo il link alla pagina con l’elenco completo).
  • account: indica il numero di account per la criptovaluta selezionata. 0 per il primo account, 1 per il secondo, 2 per il terzo e così via.
  • chain: può avere valore 0 o 1. Nel primo caso si riferisce a indirizzi regolari, visibili all’esterno del wallet. Nel secondo si tratta di indirizzi utilizzati internamente al wallet per gestire i resti delle transazioni.
  • indirizzo: è il numero dell’indirizzo derivato, in numerazione crescente, partendo da 0 per il primo, 1 per il secondo e così via.
  • : l’apostrofo (in alternativa una ‘h’) indica ‘hardened’ se presente e ‘non-hardened’ quando assente. Si riferisce al tipo di derivazione per quel livello: ‘hardened’ è quella standard e più sicura, tipicamente impiegata nei primi tre livelli.

Vediamo un esempio per capire meglio: m/44’/0’/2’/0/1 è il percorso di derivazione per ricavare il secondo indirizzo regolare del terzo account Bitcoin di una master key, usando il metodo BIP44 e usando derivazione hardened sui primi tre livelli.

Nella maggior parte dei casi non è necessario conoscere questi dettagli, ma nei casi in cui seed, indirizzi e chiavi non combaciano, la loro definizione è l’unico modo di venire a capo della situazione.

Private Keys:Il percorso di derivazione è in grado di generare miliardi di coppie di chiavi pubbliche e private con relativo indirizzo, che è la parte con cui siamo abituati a interagire.

La chiave pubblica è connessa matematicamente a quella privata, e l’indirizzo è una versione abbreviata della chiave pubblica.

Molti wallet non mostrano le chiavi private perché vederle non è necessario per utilizzare efficacemente i nostri account. Ci basta usare le interfacce a disposizione per compiere agilmente tutte le operazioni che vogliamo, semplicemente usando indirizzi di invio e ricezione.

In condizioni normali, se anche il nostro wallet viene perso o danneggiato, possiamo ricrearne uno identico per mezzo della seed phrase. Questa è la logica di base per una gestione sicura dei nostri capitali, ed è un sistema che funziona benissimo.

Ci sono però situazioni particolari nelle quali la seed phrase non ci è d’aiuto. Ad esempio, a causa di monete non supportate, sbagli nell’inviare o incompatibilità tra wallet e network, potremmo perdere l’accesso ai nostri fondi e non riuscire a rimediare neanche per mezzo della frase mnemonica.

Una classica situazione che si presenta è quella in cui abbiamo commesso un errore nell’inviare delle criptovalute e scopriamo che per recuperarle è necessario interagire con funzionalità che il nostro wallet non supporta.

A quel punto cerchiamo di identificare un wallet alternativo che abbia le opzioni che ci servono, così da ricreare lì l’account della criptovaluta in questione.

Troviamo il portafoglio adatto ma ci accorgiamo che la nostra seed phrase non è compatibile o per qualche oscura ragione, anche se è corretta, non genera gli stessi indirizzi.

Infatti, sebbene la maggior parte dei wallet utilizzi gli stessi metodi crittografici e sia compatibile con le specifiche BIP32/39/44, non tutti usano 12 o 24 parole, e non tutti applicano gli stessi derivation path. Purtroppo per ora non esistono standard completamente unificati attraverso le varie piattaforme e network.

Come approfondito QUI, in parecchie di queste sfortunate circostanze non ci sono alternative meno invasive, e la chiave privata del nostro indirizzo diventa l’elemento cruciale per ritrovare le relative monete. Il problema però emerge nel momento in cui ci rendiamo conto che nel wallet che usiamo non c’è alcun modo di visualizzarla.

Gran parte dei wallet operano così per ragioni di sicurezza. Siccome le chiavi private sono l’elemento principale di accesso ai nostri fondi, maneggiarle è un’operazione delicatissima che può portare alla perdita del nostro patrimonio. Di conseguenza molti strumenti adottano una filosofia prudente allo scopo di tutelare gli utenti.

Qui daremo per scontato che abbiamo già fatto una stima del rapporto rischi/benefici. Tra un attimo vedremo comunque un compendio delle precauzioni essenziali per evitare di compromettere i nostri asset.

Ian Coleman:In sintesi essere in grado di recuperare la chiave privata è l’unica via d’uscita quando:

  • Il nostro portafoglio non permette di visualizzare/esportare chiavi private.
  • Il portafoglio alternativo che abbiamo individuato utilizza una seed phrase incompatibile con quella del wallet d’origine.
  • Il portafoglio alternativo che abbiamo individuato accetta la nostra seed phrase ma, siccome usa un percorso di derivazione diverso, crea chiavi e indirizzi che non coincidono.

Per fortuna esiste uno strumento gratuito e utilissimo per superare questi ostacoli: si tratta del convertitore di Ian Coleman, sviluppatore ed esperto di Bitcoin e criptovalute. In sostanza è un software 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, applicando derivation path standard o personalizzati.

Può essere anche usato per generare un proprio wallet da zero, selezionando la lunghezza della seed desiderata e cliccando ‘Generate’.

Sicurezza:Considerato che stiamo per esporre la seed phrase del nostro portafoglio, è fortemente raccomandato seguire queste precauzioni fondamentali per minimizzare i rischi.

  • Visitiamo solo il sito ufficiale: https://iancoleman.io/bip39 (occhio agli url scam!).
  • Salviamo la pagina del convertitore sul nostro dispositivo (o scarichiamo il software dal link riportato in fondo alla pagina dell’interfaccia, che rimanda a GitHub: https://github.com/iancoleman/bip39/releases/latest).
  • Apriamo e usiamo il convertitore mentre siamo offline. Per usare Ian Coleman offline possiamo seguire le istruzioni riportate nella sezione ‘Offline Usage’ della pagina ufficiale.
  • Possibilmente apriamolo con un browser che non abbiamo mai usato e che installiamo di proposito per questa operazione.
  • Possibilmente facciamolo girare su un pc che non è mai stato online, o del quale abbiamo certezza assoluta che sia esente da qualsiasi forma di malware. Una soluzione ideale potrebbe essere usare una Virtual Machine installata di proposito.
  • In alternativa a queste procedure, spostiamo preventivamente tutti i nostri asset in un wallet di nuova creazione e usiamo questa seed phrase per un’ultima volta solo per risolvere l’emergenza e recuperare i fondi mancanti.

Un tassello importantissimo da tenere presente è il fatto che tutti i passaggi che stiamo per compiere possono essere fatti tranquillamente offline perché sia il convertitore che i wallet non sono altro che software, e quindi una volta salvati nel nostro pc funzionano perfettamente anche senza essere connessi a internet.

Le procedure che ci serve portare a termine non richiedono di interagire con la blockchain, se non alla fine delle operazioni per controllare che il wallet di destinazione effettivamente sia in grado di riconoscere le criptovalute perse.

Come Recuperare le Chiavi Private:Ora che siamo sicuri di comprendere tutti gli elementi che entrano in gioco possiamo passare all’azione.

Aprendo il convertitore notiamo una serie di finestre e opzioni. Per le operazioni di base a noi serve interagire con questi valori:

  • La lunghezza della seed phrase nel menu a tendina, che presenta opzioni da 3 a 24 parole.
  • La passphrase, che è la tredicesima o venticinquesima parola della nostra seed phrase, se l’abbiamo usata quando abbiamo creato il wallet d’origine.
  • La selezione della criptovaluta della quale vogliamo estrarre chiavi e indirizzi.
  • Il derivation path desiderato. BIP44 è lo standard selezionato di default, BIP32 consente di inserire un percorso di derivazione personalizzato e BIP84 è il path di derivazione degli indirizzi Bech32 di Bitcoin (quelli che iniziano con ‘bc1’).

Anche se situazioni simili sono state ampiamente discusse in un articolo dedicato, per questa dimostrazione immaginiamo il seguente scenario ipotetico.

Usiamo Ethereum in Exodus Wallet. Abbiamo comprato un po’ di Axie Infinity (AXS) e sapendo che sono token ERC20 li abbiamo inviati al nostro indirizzo Ethereum. Dopo un po’, notando che non li riceviamo, facciamo una ricerca e scopriamo che Exodus non supporta AXS! In teoria abbiamo perso i nostri token.

Ci ricordiamo però di aver imparato che siccome i token sono sulla blockchain e non nel wallet, se importiamo la chiave privata del nostro account Ethereum in un wallet alternativo che li riconosce, possiamo recuperarli.

Con una breve ricerca scopriamo che Guarda Wallet è uno dei portafogli che supportano AXS. Non prevede la possibilità di ricreare un wallet dalla seed phrase ma ha tra le proprie funzionalità l’opzione per importare account esterni di singole criptovalute, per mezzo delle chiavi private.

L’anello mancante è un modo per ottenere la chiave privata del nostro account Ethereum situato all’interno di Exodus: esattamente ciò che Ian Coleman ci consente di fare 😉

In sostanza procederemo così:

  • Inseriremo la seed phrase di Exodus nel convertitore.
  • Otterremo la chiave privata di Ethereum.
  • La copieremo da Ian Coleman e la importeremo in Guarda.
  • Vedremo comparire il nostro account e indirizzo Ethereum in Guarda, inclusi i nostri token AXS.
Exodus Wallet, Guarda Wallet e il convertitore Ian Coleman sono del tutto gratuiti.

Exodus Wallet è un ottimo portafoglio che in realtà tra le numerose funzionalità che offre ha anche la possibilità di esportare e importare chiavi private.

Di conseguenza in questo caso non avremmo bisogno di ricorrere al convertitore, ma per questa dimostrazione ne faremo comunque uso e torneremo poi in Exodus per avere conferma che la chiave privata che abbiamo recuperato è quella giusta.

Innanzitutto prepariamo tutto l’occorrente prima di procedere coi vari passaggi.

  • Seed Phrase: in questo caso la seed è di 12 parole, formato usato da Exodus Wallet:
    useful execute acid poem risk solution oppose prison chronic clever strategy region
  • Indirizzo della criptovaluta da recuperare: in questo caso Ethereum: 0x6467BAd60f3A833125253B1F880946b4a463Bb6E
  • Convertitore Ian Coleman pronto all’uso.
  • Wallet di destinazione: in questo caso Guarda Wallet.

Teniamo aperti simultaneamente il browser nel quale gira il convertitore e i due wallet.
Siamo pronti per inserire la seed phrase e ottenere i dati che ci servono. In tutto l’operazione richiede cinque minuti.

A dispetto delle molte opzioni presenti l’utilizzo del convertitore è elementare:

  • Selezioniamo il numero di parole della nostra seed phrase, in questo caso 12.
  • Digitiamo o incolliamo la seed phrase nella finestra ‘BIP39 Mnemonic’.
  • Selezioniamo la criptovaluta della quale vogliamo derivare indirizzi e chiavi, in questo caso ETH.
  • Se il wallet di partenza usa lo standard BIP44 (come nel caso di Exodus), lasciamo invariato il derivation path.

In un attimo abbiamo la lista di indirizzi e chiavi. L’indirizzo che ci interessa è il primo. Come possiamo vedere coincide con quello fornitoci da Exodus. La corrispondente chiave privata si trova sulla destra ed è:

0xcc2064e2051c3c3006c6dd4567e965d06a34726fee358766218f279398d0f6bb

Ora, se andiamo in Exodus Wallet e all’interno dell’account Ethereum selezioniamo ‘Export Private Key’, possiamo verificare se coincidono.

Come possiamo vedere tutto torna, il convertitore funziona perfettamente. Le chiavi private di Ethereum sono lunghe 64 caratteri, e il prefisso 0x è opzionale e serve a indicare che si tratta di una stringa esadecimale, cosa che i wallet riconoscono automaticamente.

Non ci resta che copiare la private key dall’elenco di Ian Coleman come faremmo per una qualsiasi stringa di testo.

Ora è il momento di dirigerci verso Guarda Wallet. Questo portafoglio è dotato di una interfaccia ingegnosa, nella quale le criptovalute sono organizzate per network e non solo per nome.

Questa disposizione torna molto utile, in quanto come abbiamo visto nell’articolo ‘La Differenza tra Criptovalute e Token ERC20, BEP2, BEP20, SPL e TRC20 + Come non Commettere Errori nel Prelevare‘, per chi ha meno esperienza è facilissimo sbagliare blockchain nello spostare monete.

L’account Ethereum attivo di default è collegato a ERC20 token come Shiba Inu, USDT e appunto AXS, che nel nostro scenario ipotetico è il token che questo wallet ci consentirà di recuperare.

Nelle impostazioni del portafoglio selezioniamo ‘Import’ nella riga relativa agli account di Ethereum.

Si aprirà una finestra nella quale incollare la stringa di testo della chiave privata copiata in precedenza. Inseriamola e clicchiamo su ‘Add Wallet’.

Compare immediatamente l’account relativo a quella chiave, e come notiamo l’indirizzo è esattamente quello del nostro Ethereum wallet in Exodus: 0x6467BAd60f3A833125253B1F880946b4a463Bb6E.

Clicchiamo su ‘Confirm’ per accedere.

Missione compiuta! Si aprirà la schermata del nostro account Ethereum importato, in questo caso denominato ‘Ethereum 2’ e con un’icona che indica ‘New’.

A questo punto possiamo chiudere il browser del convertitore e ricollegarci a internet.

L’indirizzo di questa dimostrazione è vuoto, ma in caso di un vero account vedremo comparire tutti i saldi relativi, in automatico, inclusi i nostri token AXS, dei quali in questo modo avremo riacquistato il controllo.

Da dentro Guarda possiamo a questo punto decidere cosa farne. E’ importante ricordare che se vorremo conservarli dovremo d’ora in avanti accedervi per mezzo di Guarda, perché anche se qui li abbiamo ritrovati Exodus andrà avanti a non vederli (a meno che in futuro il team di Exodus non deciderà di integrare AXS tra i token riconosciuti).

Portafogli alternativi nei quali possiamo portare avanti esattamente lo stesso percorso sono ad esempio MetaMask, Binance Wallet e Trust Wallet.
In uno scenario come quello descritto, chi usa wallet hardware può semplicemente accoppiarli a MetaMask, senza rivelare le chiavi private, come spiegato nella parte 2 della guida completa all’uso di MetaMask.
Strumenti Utili:

Il convertitore supporta decine di criptovalute e l’utilizzo di derivation path personalizzati, nel caso che quelli standard non facciamo al caso nostro.

Tuttavia le combinazioni possibili sono innumerevoli e potremmo trovarci in una situazione nella quale i wallet interessati usano derivation path diversi o i parametri del network della criptovaluta in questione non sono noti. Ogni volta dobbiamo adoperarci per fare il punto della situazione e stabilire la strategia per venirne a capo.

A questi link troviamo una serie di risorse che possono tornarci utili:

  • Una variante del convertitore creata dal team del wallet Coinomi per derivare criptovalute assenti nella versione originale, come Algorand e Monero: https://coinomi.github.io/tools/bip39
  • La lista ufficiale del numero assegnato a ogni criptovaluta, che come visto per Bitcoin è 0 e per Ether è 60, nel caso quella che ci serve non figuri nel menu di base del convertitore:
    https://github.com/satoshilabs/slips/blob/master/slip-0044.md
  • Un elenco dei derivation path usati dai maggiori wallet, utile per individuare e risolvere problemi di incompatibilità: https://walletsrecovery.org
  • Se gli indirizzi ricavati non combaciano proviamo a fare una ricerca su Google inserendo ‘nome wallet’ + ‘nome criptovaluta’ + ‘derivation path’. Con un po’ di impegno troveremo il derivation path di cui abbiamo bisogno.

Conclusioni:Ovviamente viene da chiedersi perché ci si debba scontrare con tutte queste conflittualità. La risposta è semplicemente che le criptovalute sono ancora agli stadi iniziali del loro sviluppo. Di conseguenza purtroppo non abbiamo ancora delle soluzioni semplificate e unificate attraverso le varie piattaforme, wallet e network.

Ancora una volta paghiamo il prezzo di essere dei precursori. Sebbene si stia andando in direzione di standard sempre più diffusi, incontriamo facilmente incongruenze e variabili difficili da gestire.

Per questo motivo, se vogliamo evitare di trovarci in situazioni critiche, è importante studiare, aggiornarsi e sperimentare. Soprattutto se le cifre che investiamo sono significative.

Risorse correlate:

Terminologia Delle Criptovalute – Glossario Veloce
10 Errori da Evitare con le Criptovalute – Guida Gratuita
Come Recuperare Criptovalute Perse Inviate a Blockchain, Network o Indirizzi Sbagliati
Come Recuperare ERC20 Token Persi o Che Non Compaiono nel Saldo del Wallet
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