Blockchain - Crittografia a chiave pubblica
La crittografia a chiave pubblica o in breve PKI è anche nota come crittografia asimmetrica. Utilizza due coppie di chiavi: pubblica e privata. Una chiave è un numero binario lungo. La chiave pubblica è distribuita in tutto il mondo ed è veramente pubblica come suggerisce il nome. La chiave privata deve essere mantenuta strettamente privata e non la si dovrebbe mai perdere.
In caso di Bitcoin, se dovessi perdere la chiave privata del tuo portafoglio Bitcoin, l'intero contenuto dei tuoi portafogli sarebbe immediatamente vulnerabile al furto e prima che tu te ne accorga, tutti i tuoi soldi (il contenuto del tuo portafoglio) sarebbero spariti senza meccanismo nel sistema per rintracciare chi l'ha rubato: questo è l'anonimato nel sistema di cui ho parlato prima.
La PKI accompagna due funzioni: l'autenticazione e la privacy del messaggio attraverso il meccanismo di crittografia / decrittografia. Spiegherò ora entrambe queste funzioni:
Autenticazione
Quando le due parti si scambiano messaggi, è importante stabilire una fiducia tra il mittente e il destinatario. In particolare, il destinatario deve fidarsi della fonte del messaggio. Andando al nostro scenario precedente (illustrato nella Figura 1) di Bob che invia dei soldi a Lisa per l'acquisto di alcuni beni da lei, vediamo come la PKI costruisce questa fiducia tra Bob e Lisa. Guarda l'immagine qui sotto -
In primo luogo, se Bob vuole inviare del denaro a Lisa, deve creare una sua chiave pubblica / privata. Tieni presente che entrambe le chiavi sono sempre accoppiate e non puoi combinare le chiavi private e pubbliche di individui diversi o istanze diverse.
Ora, Bob dice che sta inviando $ 10 a Lisa. Quindi crea un messaggio (un messaggio di testo normale) contenente la chiave pubblica di Bob (mittente), la chiave pubblica (destinatario) di Lisa e l'importo ($ 10).
Nel messaggio viene aggiunto anche lo scopo di questa rimessa come "Voglio comprare la zucca da te". L'intero messaggio è ora firmato utilizzando la chiave privata di Bob. Quando Lisa riceve questo messaggio, utilizzerà l'algoritmo di verifica della firma di PKI e la chiave pubblica di Bob per assicurarsi che il messaggio provenga effettivamente da Bob. Il funzionamento della PKI va oltre lo scopo di questo tutorial. Il lettore interessato è rinviato a questo sito per una discussione più dettagliata su PKI. Ciò stabilisce l'autenticità del mittente del messaggio. Ora, esaminiamo la privacy del messaggio.
Privacy dei messaggi
Ora, poiché Lisa ha ricevuto il pagamento, desidera inviare il link al suo ebook che Bob desidera acquistare. Quindi Lisa creerebbe un messaggio e lo invierebbe a Bob come mostrato nell'immagine -
Lisa crea un messaggio del tipo "Ecco il collegamento al mio ebook che avevi richiesto", lo firma con la chiave pubblica di Bob che ha ricevuto nel messaggio di richiesta di Bob e crittografa anche il messaggio utilizzando una chiave segreta condivisa tra i due durante l'handshake HTTPS.
Ora, Lisa è sicura che solo Bob può decodificare il messaggio utilizzando la chiave privata detenuta da Bob da solo. Inoltre, qualcuno che intercetta il messaggio non sarebbe in grado di recuperarne il contenuto perché i contenuti sono crittografati da una chiave segreta detenuta solo da Bob e Alice. Questo garantisce a Lisa che l'accesso al suo ebook è concesso solo a Bob.
Avendo visto entrambe le funzionalità, Autenticazione e Privacy dei messaggi, implicite da PKI, andiamo avanti per vedere come Bitcoin utilizza PKI per proteggere il registro pubblico che ho menzionato nel capitolo "Che cos'è Bitcoin?".
Per tua conoscenza - Gli algoritmi PKI più popolari sono RSA ed ECDSA , Bitcoin utilizza quest'ultimo.