Se vuoi presentare la crittografia a chiave pubblica ai tuoi genitori o amici, ti suggerisco di seguire alcune linee guida. Innanzitutto, non parlare di funzioni specifiche, a nessuno importa di SHAxxx, mantieni il tuo discorso concettuale. Il problema risolto dalla crittografia a chiave pubblica è consentire a due parti che non si sono mai incontrate prima di scambiare informazioni in modo sicuro in un canale pubblico. Non confonderlo con altre applicazioni ottenute mediante la crittografia a chiave pubblica, come le firme digitali o l'autenticazione.
Una semplice illustrazione illuminante di ciò che ho visto è la seguente. Supponiamo che due parti abbiano un secchio e un numero di colori e che vogliano concordare un composto segreto specifico. Sono autorizzati a scambiarsi l'un l'altro un secchio con un certo composto, ma tutto ciò che viene inviato viene esposto a un avversario malvagio. L'ipotesi sottolineata è che mescolare i colori è facile, ma scomporre una miscela con i suoi ingredienti è difficile. Questo presupposto (che è facilmente collegato al lato formale delle cose) ti consente di raggiungere il loro obiettivo. Scegli un colore pubblico e consenti ad entrambe le parti di scegliere un colore segreto, indichiamolo con . La prima parte invia quindi un bucket di una miscela di . Allo stesso modo, la seconda parte invia un bucket contenente una miscela diPS1,S2P,S1P,S2 . Infine, ciascuna parte aggiunge il suo colore privato alla miscela che ha ricevuto, e ora entrambe le parti hanno una miscela di , che (per nostra supposizione) rimane segreta da qualsiasi intercettatore. Una versione formale di questo è il protocollo di scambio di chiavi Diffie-Hellman, che si basa sulla durezza del registro discreto.P,S1,S2
Ora, la mia comprensione del protocollo bitcoin è limitata, ma quando ne parlo con i tuoi genitori, non vedo alcun motivo per entrare nella crittografia. La maggior parte delle spiegazioni popolari che ho visto approfondire inutilmente i dettagli di implementazione e iniziare a parlare di trovare un preimage di un hash in modo tale che il risultato avrebbe un numero di zeri, perdendo di vista il problema reale. Come prima, suggerisco di mantenere il discorso concettuale. Quale problema sta cercando di risolvere il bitcoin, e perché questo non è banale? A mio avviso, il bitcoin risolve il problema di mantenere un registro distribuito, evitando in particolare la doppia spesaxproblema. La motivazione è quella di evitare di avere un'autorità centrale, e ciò può essere ottenuto consentendo a ciascun partecipante di approvare una transazione (anziché dare questa autorità alla banca). Per evitare che i partecipanti avversari approvino le proprie transazioni non valide, viene introdotto il concetto di prova del lavoro. POW usa l'hash come una scatola nera, quindi puoi evitare di menzionare candidati specifici.