Se você deseja apresentar criptografia de chave pública a seus pais ou amigos, sugiro que você siga algumas diretrizes. Primeiro, não fale sobre funções específicas, ninguém se importa com o SHAxxx, mantenha sua palestra conceitual. O problema resolvido pela criptografia de chave pública está permitindo que duas partes que nunca se conheceram trocem informações com segurança em um canal público. Não confunda isso com outros aplicativos alcançados pela criptografia de chave pública, como assinaturas digitais ou autenticação.
Uma ilustração simples e esclarecedora disso que eu vi é a seguinte. Suponha que duas partes tenham um balde e várias cores e queiram concordar com um composto secreto específico. Eles têm permissão para enviar um ao outro um balde com um determinado composto, mas qualquer coisa enviada é exposta a um adversário maligno. O pressuposto sublinhado é que a mistura de cores é fácil, mas a decomposição de uma mistura com seus ingredientes é difícil. Essa suposição (que é facilmente conectada ao lado formal das coisas) permite que você alcance seu objetivo. Escolha uma cor pública e permita que ambas as partes escolham uma cor secreta, vamos las por . A primeira parte envia um balde de uma mistura de . Da mesma forma, a segunda parte envia um balde contendo uma mistura deS 1 , S 2 P , S 1 P , S 2 P , S 1 , S 2PS1, S2P, S1P, S2 . Finalmente, cada lado adiciona sua cor particular à mistura que ele recebeu e agora ambas as partes têm uma mistura de , que (pela nossa suposição) permanece em segredo para qualquer bisbilhoteiro. Uma versão formal disso é o protocolo de troca de chaves Diffie-Hellman, que depende da dureza do registro discreto.P, S1, S2
Agora, meu entendimento do protocolo bitcoin é limitado, mas ao conversar com seus pais sobre isso, não vejo razão para entrar em criptografia. A maioria das explicações populares que eu vi desnecessariamente se aprofundou nos detalhes da implementação e começou a falar sobre como encontrar uma pré-imagem de um hash, de modo que o resultado tivesse um número de zeros, perdendo de vista o problema real. Como antes, sugiro manter a palestra conceitual. Que problema o bitcoin está tentando resolver e por que isso não é trivial? No meu entender, o bitcoin resolve o problema de manter um livro distribuído, evitando especificamente os gastos duplosxproblema. A motivação é evitar ter uma autoridade central, e isso pode ser alcançado permitindo que cada participante aprove uma transação (em vez de dar essa autoridade ao banco). Para evitar que participantes adversários aprovem suas próprias transações inválidas, é introduzido o conceito de prova de trabalho. O POW usa o hash como uma caixa preta, para evitar mencionar candidatos específicos.