Vai al contenuto
buybitcoinsmart

Glossario / Indirizzi e chiavi

Wallet Import Format

Noto anche come WIF.

Che cos'è Wallet Import Format?
Wallet Import Format è la codifica Base58 usata per spostare una singola chiave privata tra wallet, avvolgendo i 32 byte grezzi con un byte di rete e un checksum.

Una stringa WIF è una chiave, non un wallet: importarla sposta esattamente i bitcoin bloccati su quella chiave e nient'altro. Le chiavi della mainnet iniziano con 5 quando la chiave pubblica corrispondente è non compressa, oppure con K o L quando è compressa, e contano 51 o 52 caratteri. Tratta la stringa come tratteresti una frase di recupero, perché chiunque la legga può spendere.

Come funziona

Wallet Import Format esiste per rendere trasportabile un segreto grezzo senza errori di battitura. Prendi i 32 byte della chiave, anteponi un byte di versione (0x80 per la mainnet, 0xEF per la testnet), aggiungi 0x01 in coda se la chiave è destinata a essere usata con una chiave pubblica compressa, poi aggiungi quattro byte di checksum e codifica l'intero payload in Base58Check. Il byte di versione è ciò che impone il primo carattere riconoscibile, e il flag di compressione opzionale è ciò che allunga la stringa da 51 a 52 caratteri.

Queste due varianti contano più di quanto sembri. Lo 0x01 finale non cambia affatto la chiave; indica al wallet che la importa quale forma di chiave pubblica derivare, e quindi quale indirizzo guardare. Se sbagli, il wallet riporta un saldo pari a zero mentre i bitcoin restano al sicuro sull'altro indirizzo.

Il checksum intercetta gli errori di trascrizione prima che costino qualcosa. Un wallet che decodifica una stringa WIF e trova un checksum non corrispondente la rifiuta senza appello, così un solo carattere errato produce un messaggio di errore invece di un wallet vuoto. Ciò che nessun checksum può fare è proteggere una chiave che qualcun altro ha già letto.

Dove lo vedi

Niente di ciò che genera un wallet moderno viene fornito come stringa WIF. I wallet con frase di recupero secondo il BIP-32 contengono migliaia di chiavi e non hanno motivo di esportarne una, quindi WIF compare quasi esclusivamente in materiale più vecchio: wallet cartacei stampati da generatori nel browser, chiavi estratte da software desktop precedente al 2013, indirizzi vanity prodotti da un generatore di chiavi e le stringhe nascoste sotto gli ologrammi delle monete fisiche Casascius.

Ci sono due modi per portare una chiave del genere in un wallet attuale, e la differenza non è estetica.

Importare aggiunge la chiave al tuo wallet e la lascia in gioco. Il wallet ora può spendere quei bitcoin, ma può farlo anche chiunque altro abbia mai visto la stampa, la sua fotografia o la macchina che l'ha generata. Lo sweep costruisce una transazione che invia l'intero saldo a un indirizzo nuovo derivato dalla tua frase di recupero, dopo di che la vecchia chiave non gestisce più nulla. Fai lo sweep a meno che tu non abbia un motivo specifico per non farlo, e dai per scontato che qualsiasi chiave che sia esistita su carta, in uno screenshot o in un backup cloud sia già compromessa.

Vale la pena mantenere un'altra abitudine: una stringa WIF digitata in un sito web è persa. Le pagine generatrici, i verificatori di saldo e i "wallet validator" che ne chiedono una esistono per raccogliere chiavi, e i bitcoin di solito vengono spostati nel giro di secondi.

Wallet Import Format vs frase di recupero

Una stringa WIF porta una chiave, mentre una frase di recupero porta la radice di un intero wallet. Secondo il BIP-39 una frase di 12 parole codifica 128 bit di entropia e una frase di 24 parole ne codifica 256, e da quella radice un wallet deriva ogni chiave che userà mai, lungo ogni percorso di derivazione, per sempre. Ripristinare una frase riporta indietro l'intero wallet, compresi indirizzi che non hai mai annotato. Ripristinare un WIF riporta indietro una chiave e i suoi bitcoin, ed è per questo che l'esportazione di una chiave è uno strumento di recupero per fondi legacy e non una strategia di backup.

Da non confondere con

Domande frequenti

Devo importare o fare lo sweep di una vecchia chiave privata?

Fai lo sweep. Lo sweep invia i bitcoin a un indirizzo derivato dalla tua frase di recupero, così la vecchia chiave smette di avere importanza. Importarla mantiene viva la vecchia chiave nel tuo wallet, e chiunque l'abbia mai vista può ancora spendere.

Cosa significa quando una chiave WIF inizia con 5 invece che con K o L?

Significa che la chiave è stata creata prima che le chiavi pubbliche compresse diventassero lo standard, quindi è abbinata a una chiave non compressa di 65 byte e a un indirizzo diverso. I wallet che fanno lo sweep di chiavi vecchie di solito verificano entrambe le forme di indirizzo per te.

Leggi anche

Termini correlati

Altro in Indirizzi e chiavi

Leggi questa pagina in inglese