Vai al contenuto
buybitcoinsmart

Glossario / Indirizzi e chiavi

Chiave pubblica non compressa

Che cos'è una chiave pubblica non compressa?
Una chiave pubblica non compressa scrive entrambe le coordinate di un punto della curva dietro un prefisso 0x04, occupa 65 byte e oggi sopravvive soprattutto nelle chiavi generate prima del 2012.

Il primo software di Bitcoin registrava i valori completi di x e y, ed è per questo che i bitcoin del 2009 e del 2010 stanno dietro indirizzi derivati da chiavi da 65 byte. Poi SegWit ha chiuso la porta al formato, dato che il BIP-143 vieta le chiavi non compresse nei programmi witness di versione 0 e nessun indirizzo bc1q può usarne una. Se stai recuperando un vecchio paper wallet, è questo il dettaglio che decide se i tuoi fondi compaiono.

Come funziona

Una chiave pubblica non compressa ha una struttura tanto letterale quanto il suo nome. Un byte di prefisso 0x04 annuncia il formato, poi 32 byte danno la coordinata x, poi 32 byte danno la coordinata y, per 65 byte in tutto. Non c'è nulla da calcolare per leggerla: entrambe le metà del punto sono già lì, ed è proprio per questo che l'implementazione originale la scelse sull'hardware dell'epoca.

Le regole di validità non hanno mai riservato un trattamento particolare al formato al livello di base. Un nodo che verifica una spesa legacy pay-to-public-key-hash o pay-to-script-hash accetta una chiave non compressa senza obiezioni, e i bitcoin bloccati su una chiave del 2010 restano spendibili senza alcuna scadenza. È cambiato tutto ciò che è costruito sopra: i wallet BIP-32 derivano solo chiavi compresse, quindi una frase di recupero non può mai produrre una chiave non compressa, e SegWit le ha rese non valide nelle spese witness di versione 0.

Il costo dei 32 byte in più si paga al momento della spesa. Un input legacy con una chiave compressa occupa circa 148 vbyte; lo stesso input con una chiave non compressa occupa circa 180 vbyte, più o meno il 22 per cento in più per una spesa identica. Consolidare una dozzina di questi input durante un picco di commissioni è il caso in cui quella differenza smette di essere un dettaglio.

Dove lo vedi

Tre artefatti consegnano ancora chiavi non compresse alle persone, e tutti e tre risalgono alla stessa epoca.

I paper wallet stampati dai siti generatori dal 2011 al 2013 producevano di solito un indirizzo che iniziava con 1 e una stringa in Wallet Import Format che iniziava con 5, il marcatore del lato non compresso del formato. Le monete fisiche della serie Casascius, coniate tra il 2011 e il 2013, nascondevano lo stesso tipo di stringa sotto un ologramma a prova di manomissione. E le chiavi private esportate dal software di wallet più antico precedono del tutto il cambio.

Recuperare una vecchia chiave

La trappola non è la codifica, è che una sola chiave privata produce due indirizzi diversi. L'hash della chiave da 65 byte dà un indirizzo legacy; l'hash della versione compressa da 33 byte della stessa chiave ne dà uno completamente diverso. Se importi la chiave in un software moderno che dà per scontata la compressione, il saldo può sembrare zero mentre i bitcoin restano intatti sull'altro indirizzo.

I wallet che gestiscono bene il materiale vecchio, tra cui Electrum, controllano entrambe le derivazioni quando sposti una chiave invece di importarla. Lo spostamento è anche l'operazione più sicura: porta i bitcoin in un indirizzo di cui hai il controllo grazie alla tua frase di recupero attuale, così una stampa rimasta in un cassetto, fotografata da uno smartphone o vista da un precedente proprietario smette di poter spendere qualsiasi cosa. Controlla entrambe le forme dell'indirizzo su un block explorer prima di concludere che un recupero è fallito.

Da non confondere con

Domande frequenti

I bitcoin dietro una chiave pubblica non compressa sono ancora spendibili?

Sì. Gli output legacy accettano chiavi non compresse senza scadenza, e nulla in nessun aggiornamento lo ha cambiato. L'unica restrizione è che le spese SegWit native le rifiutano, quindi i bitcoin devono passare prima da un input legacy.

Perché la mia vecchia chiave privata mostra due indirizzi diversi?

Perché le versioni compressa e non compressa della stessa chiave sono stringhe di byte diverse, e ciascuna genera con l'hash il proprio indirizzo. Controlla il saldo di entrambi prima di concludere che un recupero è fallito.

Leggi anche

Termini correlati

Altro in Indirizzi e chiavi

Leggi questa pagina in inglese