Cos'è un XPUB (chiave estesa)?

Disponibile come podcast
Condividi l'articolo:

Se usi il tuo portafoglio per proteggere i tuoi bitcoin, probabilmente hai già incontrato il termine «XPUB». Questo acronimo esoterico descrive semplicemente una chiave pubblica estesa. Questo tipo di chiave consente di ricavare altre chiavi secondarie pubbliche per consultare il saldo di un portafoglio, senza consentire la spesa dei bitcoin associati.

Grazie a questo articolo, capirai finalmente il ruolo di XPUB e la costruzione di una chiave estesa. Per fare ciò, è essenziale conoscere alcune nozioni su come funziona un portafoglio deterministico e gerarchico. Inoltre esamineremo insieme tutto questo.

Struttura del portafoglio HD

Se hai seguito i precedenti articoli didattici sul blog di Bitstack, ora sai che i bitcoin sono rappresentati nel protocollo dagli UTXO, che sono essenzialmente pezzi di bitcoin. Questi UTXO sono generalmente protetti da una coppia di chiavi crittografiche. Una chiave pubblica viene quindi utilizzata per ricevere bitcoin e la chiave privata corrispondente viene utilizzata per spendere questi stessi bitcoin firmando una transazione. Gli indirizzi di ricezione, invece, sono semplicemente un hash di una chiave pubblica, inserito in un formato specifico.

In teoria, sarebbe quindi possibile utilizzare una sola coppia di chiavi per gestire tutti i tuoi bitcoin. Tuttavia, questa pratica è sconsigliata in quanto pericolosa per la nostra privacy. Per mantenere una forma di riservatezza, è consigliabile generare una nuova coppia di chiavi per ogni nuova ricevuta di bitcoin.

Questa raccomandazione viene dallo stesso Satoshi Nakamoto. Ne parla nella parte 10 del Bitcoin White Paper.

Successivamente, gli sviluppatori hanno quindi progettato una struttura di portafoglio che ha facilitato la derivazione di diverse chiavi. Si tratta del cosiddetto portafoglio «deterministico gerarchico» (HD). Il suo principio è che una moltitudine di coppie di chiavi uniche vengono generate da un'unica informazione: il seme (o «seme» in inglese). Questo seme può essere codificato in una forma leggibile dall'uomo per ottenere la famosa frase di recupero di 12 o 24 parole.

➤ Scopri di più sulle diverse categorie di portafogli Bitcoin.

In questo modo, conoscendo solo la sua frase di recupero, un utente è in grado di rigenerare tutte le sue chiavi dando accesso a tutti i suoi bitcoin.

Devi immaginare un portafoglio HD come un albero. C'è un seme alla base del portafoglio che ti permette di creare un baule. Il tronco permette di creare rami. Quindi, ogni ramo può quindi creare autonomamente rami secondari e così via. I tuoi indirizzi di ricezione e le chiavi per spenderli sono quindi il risultato di diverse profondità di derivazione dal tuo seme.

Ciò che chiamo «derivazione» è semplicemente l'applicazione di una funzione crittografica unidirezionale che accetta la chiave principale come input e produce una chiave secondaria come output.

➤ Scopri la costruzione di una frase di recupero (24 parole).

La derivazione di coppie di chiavi crittografiche

Per differenziare le coppie di chiavi che si trovano nella stessa fase di derivazione, assegneremo loro un indice. È semplicemente un numero che consente di numerare ogni chiave. La prima coppia di chiavi derivata da una coppia principale avrà l'indice n. 0, la seconda coppia di chiavi derivata da una coppia principale avrà l'indice n. 1 e così via.

In questo modo, possiamo quindi ricavare una moltitudine di chiavi crittografiche diverse dal nostro seme. Tuttavia, in caso di recupero del nostro portafoglio, dobbiamo essere in grado di trovare tutti questi indici utilizzati durante la derivazione. Pertanto, il BIP43 e il BIP44 hanno stabilito uno standard di derivazione per i nostri portafogli. Un software affidabile aderisce a questa regola in modo che sia semplice migrare da un portafoglio Bitcoin a un altro, facilitando al contempo il processo di recupero in caso di perdita.

Infine, ogni fase di derivazione viene utilizzata per trasmettere informazioni in base all'indice utilizzato per derivare la chiave.

Ad esempio, l'indice 84' viene utilizzato nella prima fase di derivazione per indicare che sei su un portafoglio SegWit V0 (con indirizzi che iniziano con «bc1q...»). La seconda fase di derivazione viene utilizzata per separare le diverse criptovalute nello stesso portafoglio. E il terzo piano consente di generare diversi account separati.

È proprio questo terzo piano che ci interessa per il nostro XPUB.

Tasti estesi (xpub, zpub...)

Nelle parti precedenti, abbiamo visto che un portafoglio HD è costituito da una successione di derivazioni dalle chiavi principali, per determinare le chiavi secondarie. In realtà, per avere successo in ogni derivazione, non è sufficiente avere la chiave principale, ma è necessario utilizzare anche altre informazioni chiamate «codice a catena».

In poche parole, un codice a catena è un'informazione univoca associata a ciascuna coppia (chiave pubblica e chiave privata), che aggiunge un ulteriore livello di sicurezza al portafoglio.

Tecnicamente, quella che viene chiamata chiave estesa è un assemblaggio di una chiave crittografica con il suo codice a catena e alcuni metadati. Pertanto, la chiave estesa consente di raccogliere in un'unica stringa di caratteri tutte le informazioni necessarie per derivare le chiavi secondarie.

Per riassumere semplicemente: chiave estesa = chiave + codice stringa.

L'assemblaggio di una chiave pubblica con il relativo codice a catena ci fornisce una chiave pubblica estesa. Questo tipo di chiave consente di derivare solo le chiavi pubbliche secondarie. Questo è ciò che conosci sotto il nome di «XPUB», «ZPUB» o anche «YPUB».

L'assemblaggio di una chiave privata con il relativo codice a catena ci fornisce una chiave privata estesa. Questo tipo di chiave consente di derivare qualsiasi tipo di chiave secondaria, sia pubbliche che private.

In altre parole, una chiave privata estesa consente l'accesso a tutti i bitcoin protetti dalle chiavi secondarie, mentre la chiave pubblica estesa (XPUB) consente solo di consultare il saldo delle chiavi e di ricavare nuovi indirizzi. Ecco perché ti viene chiesto di inserire il tuo XPUB su un cosiddetto portafoglio «Watch-only».

Le chiavi estese standard si trovano solitamente nella terza fase di derivazione del portafoglio HD. È quello dedicato agli account.

📌 Lo sapevi? Contrariamente a quanto si possa pensare, è possibile ricavare una moltitudine di XPub diversi sullo stesso portafoglio. Ogni nuovo XPUB ci fornisce un nuovo account. Tuttavia, poiché la maggior parte delle persone utilizza un solo account sul proprio portafoglio Bitcoin, ha solo un XPUB su quel portafoglio.

Conclusione

Una chiave estesa è quindi una chiave principale speciale che consente di derivare coppie di chiavi secondarie. La cosiddetta chiave pubblica estesa, o «xpub», consente solo la derivazione di chiavi pubbliche secondarie e la ricezione di indirizzi.

Se hai accesso a xpub del tuo portafoglio, puoi quindi consultare il saldo del tuo portafoglio, tracciare le sue transazioni e creare nuovi indirizzi di ricezione. D'altra parte, sarà impossibile per te spendere i bitcoin ad esso associati, poiché XPUB non consente l'accesso alle chiavi private del portafoglio.

➤ Scopri di più sulla Passphrase BIP39 e sul suo ruolo in un portafoglio Bitcoin.

Disponibile come podcast

Riepilogo

Condividi l'articolo:

Potrebbero piacerti questi articoli

Bitstack SAS, una società iscritta nel Registro del Commercio e delle Società di Aix-en-Provence con il numero 899 125 090, con il nome commerciale Bitstack, è registrata come agente di Xpollens - un istituto di moneta elettronica approvato dall'ACPR (CIB 16528 - RCS Nanterre n. 501586341, 110 Avenue de France 75013 Parigi) - presso l'Autorità di controllo e risoluzione prudenziale («ACPR»).») con il numero 747088 e approvato come Crypto-Asset Service Provider («PSCA») presso l'Autorité des Marchés Financiers («AMF») come scambio di criptovalute con fondi, lo scambio di criptoasset per altri cryptoasset, esecuzione di ordini di criptoasset per conto dei clienti, custodia e amministrazione di criptoasset per conto dei clienti e fornitura di servizi di trasferimento di criptovalute per conto dei clienti con il numero A2025-003, la cui sede principale si trova al 100 Impasse des Houillères 13590 Meyreuil.

L'investimento in asset digitali comporta il rischio di perdita parziale o totale del capitale investito.
Le performance passate non sono garanzia di performance future.
SCARICA
Bitstack