La Master Public Key è una parte fondamentale dei processi all'interno dei wallet deterministici o dei wallet HD. Da questo dipende la generazione delle chiavi pubbliche di questo tipo di wallet e per questo utilizzano un sistema complesso che garantisce sicurezza in ogni momento. Pertanto, qui spieghiamo tutto ciò che devi sapere sulla chiave pubblica principale.
Enel portafogli deterministici o HD, One Master Public Key è quello chiave pubblica principal derivato da Master Private Key. Per questo usi un normale processo matematico di moltiplicazione della curva ellittica. Dalla chiave pubblica master verrà generato un numero infinito di chiavi pubbliche (Xpub) che controllano gli indirizzi di un portafoglio, ma non hanno accesso alle chiavi private di quegli indirizzi.
La Master Public Key ha la proprietà di poter generare più chiavi pubbliche. Questo senza dover accedere alle chiavi private. Pertanto, in caso di esposizione di una qualsiasi delle chiavi pubbliche o anche del file Master Public Key (MPK) stesso, non ci sarà alcun rischio di perdita o furto di fondi, nonostante la privacy. Questo perché poiché le chiavi pubbliche non hanno accesso alle chiavi private degli indirizzi, né possono essere generate queste chiavi, mostreranno solo l'importo disponibile che si trova nel portafoglio, potendo vedere la loro cronologia nella blockchain. Ma non daranno accesso per utilizzare o spendere i fondi disponibili lì.
Allo stesso modo della Master Private Key, i wallet HD devono essere intesi come un albero. Nuovi rami possono emergere da ogni ramo. Bene, ogni nodo Uno di questi rami ti permette di generare una Master Private Key, ma anche una Master Public Key. La Master Public Key ti consentirà di generare solo le chiavi pubbliche di tutti i rami "figli" generati da quel nodo. Ma non sarai in grado di conoscere gli indirizzi che potrebbero essere generati dagli altri nodi paralleli o precedenti.
La Master Public Key del nodo 0 ha il controllo per conoscere tutti gli indirizzi che verranno generati. A differenza della chiave privata principale, se riveli questa chiave non metti a rischio i tuoi fondi, ma metti a rischio la tua privacy. Questo perché con la Master Public Key puoi conoscere tutti gli indirizzi pubblici del tuo wallet. Tuttavia, questa funzionalità ha molti buoni usi di cui ti parleremo in questo articolo.
Master Public Key (MPK) e portafogli HD
I portafogli HD di BIP 32 loro hanno un struttura gerarchica e deterministica. questo permette loro una maggiore organizzazione come se fosse un albero discendente. Questa struttura consente alle borse di utilizzare un ramo dell'albero per la ricezione di fondi e transazioni e un altro ramo per la gestione di detti fondi. Questo permette ad entrambi di essere correlati ma allo stesso tempo separati l'uno dall'altro. Quindi con uno puoi vedere i fondi disponibili senza avervi accesso. E con l'altro, puoi firmare e spendere quei fondi. Questa completa separazione delle chiavi principali garantisce anche una maggiore sicurezza e affidabilità per il portafoglio.
La Master chiave pubblica (MPK) consente la generazione di un numero infinito di chiavi pubbliche (Xpub) e indirizzi ad essa correlati. Pertanto, non sarà necessario eseguire una copia di backup degli indirizzi ogni volta che ne viene generato uno nuovo. Piuttosto, partendo dal seed, a cui sono legate le chiavi master (sia pubbliche che private), si può recuperare integralmente il wallet con tutte le chiavi generate (Xpub e Xpriv), indirizzi e fondi disponibili.
Allo stesso modo, tutte le chiavi pubbliche e gli indirizzi derivati da Master Public Key Consentono, da soli, di poter visualizzare gli importi in esso disponibili. Ma impediscono l'accesso a questi fondi poiché non controllano le chiavi private associate agli indirizzi che contengono i fondi.
Questa funzione è particolarmente utile anche nei casi in cui si desidera configurare un portafoglio di celle frigorifere, ad esempio, dove è sufficiente osservare il saldo disponibile in esso. In questi portafogli, un server può essere configurato per gestire solo i file Master Public Key. Con il quale è possibile creare un numero qualsiasi di indirizzi pubblici per ricevere fondi, ma non consentirà a nessun utente malintenzionato di utilizzare tali fondi.
Generazione di chiavi pubbliche derivate (Xpub)
I portafogli HD utilizzano una funzione hash che consente loro di derivare inizialmente le chiavi pubbliche secondarie (figli) dalla chiave pubblica principale (genitore). Per il quale usa il Master Public Key, il wallet seed, il codice della catena generato tramite l'algoritmo HMAC-SHA512 e un numero di indice a 32 bit.
Tramite il codice a catena, generato dall'hash dell'algoritmo HMAC-SHA512, i dati casuali vengono aggiunti nel processo di derivazione della chiave pubblica. Ciò senza consentire all'indice di derivare da altre chiavi pubbliche. Ciò impedisce a una chiave pubblica derivata di essere in grado di individuare o trovare un'altra chiave pubblica derivata (sorella). E questo può essere fatto solo se il codice della catena è disponibile.
Quindi, tramite la funzione hash che inizialmente combina, sia la chiave pubblica master, il codice della catena e il numero di indice, vengono generate le chiavi derivate, come un hash a 512 bit. Che viene poi divisa in due metà: la metà destra diventa il codice catena della chiave derivata (figlia). E la metà sinistra da aggiungere accanto al numero di indice alla chiave privata (genitore) che creerà la chiave privata (figlio). Questo processo viene ripetuto in sequenza per creare un numero infinito di chiavi pubbliche, in cui le chiavi pubbliche figlio possono diventare genitori e generare le proprie chiavi figlio. Quindi ci può essere un numero infinito di generazioni.
In questo schema, la funzione hash unidirezionale non consente l'utilizzo di chiavi pubbliche derivate per trovare altre chiavi pubbliche sorelle. Né per individuare la chiave pubblica principale o principale. Allo stesso modo, questo schema consente di derivare le chiavi pubbliche figlio a partire dalla chiave privata figlia, oppure direttamente da una chiave pubblica genitore.
Importanza della generazione di chiavi pubbliche derivate
La derivazione delle chiavi pubbliche figlio dalle chiavi pubbliche genitore consente di creare i rami della chiave pubblica del portafoglio senza compromettere i fondi disponibili in esso. Questi non riguardano più le chiavi private in qualsiasi momento.
Pertanto, la generazione di wallet di osservazione è possibile, ad esempio per server non sicuri, dove è possibile vedere solo i fondi disponibili su di essi ma senza la possibilità di spendere i fondi memorizzati in quegli indirizzi. Questa funzione può essere molto utile per i server destinati al commercio elettronico, dove l'esposizione di chiavi private al server potrebbe essere ad alto rischio.
È anche molto utile per quei casi in cui gli utenti vogliono solo avere una cella frigorifera o un portafoglio offline. Ciò consente loro di mantenere i propri fondi al sicuro e privi di rischi. Che manterrà le chiavi private offline nel wallet, ma consentirà la trasmissione online delle chiavi pubbliche senza alcun rischio.
Generazione di chiavi pubbliche rafforzate
La capacità di derivare infinite chiavi pubbliche figlio da una chiave pubblica genitore è molto utile. Tuttavia, questo può rappresentare un potenziale rischio per la sicurezza. Perché la chiave pubblica che deriva dalle altre ha accesso al codice della catena, e se si vuole filtrare o conoscere una chiave privata figlia, si potrebbe dedurre il resto delle chiavi private figlia, compromettendo la sicurezza dei fondi.
Conoscere una chiave privata figlio insieme al codice a catena di una chiave pubblica genitore può rivelare tutte le chiavi private figlio e potrebbe anche essere usato per dedurre una chiave privata genitore. Quindi, per superare questa violazione della sicurezza, una funzione di bypass nota come bypass rinforzato. Che utilizza la chiave privata padre, invece della chiave pubblica padre, per derivare il codice catena per ogni chiave figlio. Rompere la relazione tra la chiave pubblica genitore e il codice della catena figlio. Questo genera una sorta di firewall che non consente di rilevare una sequenza padre-figlio nelle chiavi pubbliche derivate.
Quanto sai, Cryptonuta?
Le chiavi pubbliche principali sono un modo più efficiente e sicuro per proteggere i nostri portafogli di criptovaluta?Certo!
L'obiettivo della creazione della Master Public Key era fornire un mezzo per creare chiavi pubbliche che garantisse meglio sia la privacy degli utenti che la sicurezza dei portafogli, cosa che questo strumento ha perfettamente raggiunto.
Casi d'uso della chiave pubblica principale
Test di solvibilità
Immagina di essere un'azienda o anche un governo. Un portafoglio HD sarebbe perfetto per semplificare la gestione dei tuoi fondi. Infatti, se fosse anche multi-firma, aggiungerebbe sicurezza e controllo. Ma come fai a dimostrare di avere determinati fondi senza che le persone possano spenderli e senza dover inviare migliaia di indirizzi o se vuoi che le persone possano vedere come viene utilizzato il denaro in tempo reale?
Per questi e altri scenari, una chiave pubblica principale è la soluzione perfetta. Con questo si dà trasparenza assoluta, perché non c'è problema nel fornire trasparenza, poiché è ciò che si cerca, allo stesso tempo che nessuno ha la possibilità di utilizzare i fondi. Puoi anche vedere gli indirizzi che non sono stati ancora generati / utilizzati, così come il saldo e tutti i movimenti.
Anche a causa delle ramificazioni di un portafoglio HD, è possibile generare più chiavi master pubbliche per separarle per reparti.
Riuscite a immaginare che un governo fosse così trasparente da funzionare in questo modo?
Gateway di pagamento
Un altro caso d'uso è la possibilità di ricevere pagamenti tramite strumenti nel cloud. Esistono servizi che ti consentono di creare soluzioni di base per la raccolta di Bitcoin.
In questo tipo di servizio l'utente può aggiungere la propria Master Public Key in modo che, quando il servizio deve mostrare un indirizzo, lo possa generare ma tu sei quello che ha in ogni momento la chiave privata che ti permette di utilizzare quelle criptovalute ricevute.