Vai al contenuto

Chiave privata

Da BitcoinWiki.
Illustrazione concettuale di una chiave privata Bitcoin protetta che autorizza una firma digitale
Illustrazione concettuale della custodia della chiave privata e della firma digitale; non viene mostrato materiale di chiave utilizzabile.

Una chiave privata Bitcoin è un numero intero segreto utilizzato per autorizzare la spesa con una chiave pubblica Bitcoin. Il software Wallet utilizza una chiave privata per creare una firma digitale; I nodi Bitcoin verificano la firma con la chiave pubblica corrispondente senza apprendere la chiave privata. Chiunque ottenga una chiave privata utilizzabile può normalmente autorizzare le stesse condizioni di spesa del legittimo titolare, quindi la chiave deve rimanere segreta.

Le chiavi private non sono indirizzi Bitcoin. Un indirizzo codifica le informazioni su uno script di blocco o una condizione di spesa ed è destinato a essere condiviso per ricevere pagamenti. I portafogli moderni possono derivare molte chiavi e indirizzi da un seme protetto e alcune condizioni di spesa richiedono più chiavi anziché una.

Base matematica

Bitcoin utilizza la curva ellittica secp256k1. Una chiave segreta valida è un valore di 32 byte interpretato come un numero intero compreso tra 1 e n−1, dove n è l'ordine del generatore della curva. La chiave pubblica corrispondente viene calcolata mediante moltiplicazione dei punti della curva ellittica. Questa operazione è progettata per essere unidirezionale: BIP 32 descrive il recupero della chiave privata da una chiave pubblica come se richiedesse circa 2128 operazioni su curva ellittica con la presunta sicurezza di secp256k1.[1]

Bitcoin storicamente utilizzava le firme ECDSA. Gli output Taproot utilizzano lo schema di firma BIP 340 Schnorr, che utilizza anche secp256k1.[2] La forza matematica di una chiave non la protegge da casualità debole, generazione di nonce difettosa, malware, canali laterali o una procedura di backup non sicura.

Generazione e derivazione

I portafogli dovrebbero generare chiavi con un generatore di numeri casuali crittograficamente sicuro o ricavarle utilizzando uno schema di portafoglio deterministico rivisto. BIP 32 definisce i portafogli deterministici gerarchici (HD), in cui un seme di radice produce un albero di chiavi estese. Una chiave privata estesa include sia il materiale della chiave che un codice a catena e può derivare un intero ramo, quindi esporla potrebbe compromettere molti indirizzi anziché uno.[1]

Le parole di ripristino non sono di per sé normali chiavi private. In schemi come BIP 39, l'entropia generata dal portafoglio viene codificata come una sequenza di parole e trasformata in un seme, da cui un portafoglio HD deriva le chiavi. [3] Una frase di recupero o un seme radice è quindi sensibile almeno quanto le chiavi private derivate. Le parole scelte da una persona non sono un sostituto sicuro dell’entropia generata dal portafoglio; vedere Brainwallet.

Chiavi estese e percorsi di derivazione

Una chiave pubblica estesa può derivare e monitorare un ramo di chiavi pubbliche non rafforzate senza acquisire l'autorità di spesa ordinaria. Ciò è utile per i portafogli di sola osservazione e i sistemi di ricezione, ma rivela anche le relazioni e i saldi delle transazioni per quel ramo. Secondo BIP 32, la divulgazione di una chiave privata figlio non rafforzata insieme alla chiave pubblica estesa genitore può rivelare la chiave privata genitore; la derivazione rafforzata è progettata per prevenire quella particolare escalation.[1]

Un percorso di derivazione identifica dove si trova una chiave in un albero HD. Un seed da solo potrebbe non essere sufficiente per un ripristino diretto se il tipo di portafoglio, lo schema di derivazione, il tipo di script, gli account o la passphrase opzionale sono sconosciuti. I backup dovrebbero quindi includere i metadati del portafoglio non segreti necessari al processo di ripristino documentato del software, senza inserire materiale segreto in una nota online.

Rappresentazioni e descrizioni del portafoglio

Una chiave privata può essere memorizzata internamente come 32 byte. Il software legacy può esportare una singola chiave in Wallet Import Format (WIF), una codifica Base58Check che include informazioni sulla rete e sulla compressione della chiave pubblica. Una chiave privata estesa ha una codifica diversa, che in genere inizia con un prefisso specifico dell'implementazione come xprv.

Una codifica non rende una chiave più sicura. Esadecimale, WIF, una chiave privata estesa, un codice QR, una frase seed e un backup del portafoglio possono ciascuno rivelare l'autorità di spesa. Questo articolo non fornisce deliberatamente alcun esempio di chiave privata funzionante, perché gli esempi vengono spesso copiati, indicizzati o finanziati erroneamente.

I descrittori degli script di output forniscono una descrizione leggibile dalla macchina di come vengono derivati gli script e le chiavi del portafoglio. Un descrittore può contenere solo informazioni pubbliche per un portafoglio di sola osservazione oppure materiale di chiave privata; quest'ultimo deve essere protetto come segreto. L'interfaccia dei portafogli con descrittori di Bitcoin Core distingue i descrittori pubblici da quelli restituiti con materiale privato.[4]

Importazione, scansione e nuova scansione

Importazione una chiave privata la aggiunge a un portafoglio in modo che il portafoglio possa monitorare e spendere output rilevanti. Sweeping crea una transazione che sposta tali output su una nuova chiave controllata dal portafoglio ricevente. Il comportamento varia in base al portafoglio, al tipo di script, al supporto del descrittore e alla politica di nuova scansione. Una singola chiave importata potrebbe non ricostruire gli indirizzi del portafoglio HD correlati o la politica di backup del portafoglio originale.

Non incollare una chiave privata finanziata o una frase di ripristino in un sito Web, in un Block Explorer, in un convertitore, in una chat di supporto, in un prompt AI o in un portafoglio sconosciuto. Segui la documentazione del portafoglio che ha creato il backup. Se è necessario recuperare una chiave legacy, utilizza un software affidabile e aggiornato su un dispositivo controllato e verifica il portafoglio di destinazione prima di spostare fondi.

Accordi di custodia

Non tutti gli output Bitcoin sono controllati da una chiave privata. Gli accordi comuni includono:

  • custodia con firma singola, dove una chiave può soddisfare la condizione di spesa;
  • custodia multifirma, dove è richiesta una soglia di più chiavi;
  • firma hardware, in cui un dispositivo mantiene isolato il materiale chiave e firma le transazioni approvate;
  • coordinamento solo watch, in cui un sistema online costruisce e monitora le transazioni ma un sistema separato le firma; E
  • firma con soglia, in cui le parti creano congiuntamente una firma senza ricostruire una chiave privata completa in un unico posto.

Queste soluzioni modificano il modello di fallimento, non la necessità di backup. Un portafoglio multifirma può ridurre la dipendenza da un dispositivo, ma il ripristino richiede anche gli script o i descrittori corretti, le origini delle chiavi, la policy di soglia e un numero sufficiente di firmatari sopravvissuti. La complessità che non viene testata può essa stessa causare perdite permanenti.

Archiviazione della chiave legacy

I portafogli di carta e i bitcoin fisici spesso memorizzavano un’unica chiave privata o un record di chiave privata crittografato. BIP 38 ha specificato un formato protetto da passphrase utilizzando scrypt e AES per tali record. [5] Questi formati rimangono rilevanti durante il recupero di fondi storici, ma mancano di molte proprietà dei moderni backup HD e possono fallire a causa di compromissione della stampante, supporti illeggibili, passphrase deboli, incompatibilità del software o riutilizzo accidentale dopo una spesa parziale.

Una passphrase protegge solo la sua entropia e la sua implementazione. La crittografia non ripara una chiave che è stata prevedibilmente generata, copiata prima della crittografia o esposta durante la decrittografia.

Sicurezza e archiviazione

Le modalità di guasto comuni includono:

  • malware, sostituzione degli appunti, screenshot, registrazione o sincronizzazione cloud che rivelano un segreto;
  • generazione di numeri casuali prevedibili o distorti;
  • una frase scelta dall'utente che può essere indovinata offline;
  • riutilizzo di una chiave pubblicata nel codice sorgente, nella documentazione, nei puzzle o nei siti Web;
  • perdita, danneggiamento o backup incompleti;
  • phishing che richiede un seed o una chiave per "verificare", "sincronizzare", "richiedere" o "recuperare" un portafoglio; E
  • perdita di una chiave privata estesa o combinazione di una chiave privata secondaria non rinforzata con i relativi dati di chiave pubblica estesa in un progetto BIP 32 non sicuro.[1]

Una valida strategia di backup dipende dal portafoglio e dal modello di minaccia. Le misure di salvaguardia tipiche includono l'utilizzo di software di portafoglio gestito, la conservazione dei backup offline in posizioni fisicamente protette, il test del ripristino con dati non sensibili o di prova e l'utilizzo di dispositivi di firma hardware ove appropriato. Un backup dovrebbe tenere conto di furti, danni fisici, incapacità, eredità e obsolescenza del software senza aumentare inutilmente il numero di persone o sistemi in grado di leggere il segreto.

Sospetto compromesso

Se una chiave privata potrebbe essere stata esposta, trattala come compromessa. Su un dispositivo attendibile, crea un nuovo portafoglio con nuova entropia, verificane il backup e sposta i fondi su un nuovo indirizzo di ricezione. Per un wallet complesso o di importo elevato stabilire innanzitutto quali uscite e relative chiavi potrebbero essere interessate e ottenere assistenza qualificata senza divulgarne il segreto. Non riutilizzare la vecchia chiave dopo il trasferimento e non fare affidamento sull'eliminazione di una copia: un utente malintenzionato potrebbe già averla conservata.

Chiave privata, chiave pubblica e indirizzo

  • Una chiave privata ' crea firme e deve rimanere segreta.
  • Una chiave pubblica ' consente ai nodi di verificare le firme e può essere derivata dalla chiave privata.
  • Un indirizzo Bitcoin ' è una codifica rivolta all'utente relativa a un particolare script di output; non è semplicemente un altro nome per una chiave pubblica.
  • Una chiave estesa ' combina una chiave con un codice a catena per la derivazione deterministica e può rappresentare un intero ramo di un portafoglio.
  • Un descrittore ' descrive uno o più script di output e la loro derivazione chiave; può essere solo pubblico o contenere materiale privato.

Vedi anche

Riferimenti

  1. 1,0 1,1 1,2 1,3 BIP 32: Hierarchical Deterministic Wallets, “Conventions” and “Security”, accessed 27 August 2026.
  2. BIP 340: Schnorr Signatures for secp256k1, “Public Key Generation” and “Default Signing”, accessed 27 August 2026.
  3. BIP 39: Mnemonic code for generating deterministic keys, accessed 27 August 2026.
  4. Bitcoin Core 30.0 RPC: listdescriptors, accessed 27 August 2026.
  5. BIP 38: Passphrase-protected private key, accessed 27 August 2026.