Si desea presentar criptografía de clave pública a sus padres o amigos, le sugiero que siga algunas pautas. Primero, no hable sobre funciones específicas, a nadie le importa SHAxxx, mantenga su charla conceptual. El problema resuelto por la criptografía de clave pública es permitir que dos partes que nunca se conocieron intercambien información de forma segura en un canal público. No confunda esto con otras aplicaciones que se logran mediante cifrado de clave pública, como firmas digitales o autenticación.
Una ilustración simple e iluminadora de esto que he visto es la siguiente. Suponga que dos partes tienen una cubeta y varios colores, y quieren acordar un compuesto secreto específico. Se les permite enviarse un cubo con cierto compuesto, pero cualquier cosa enviada está expuesta a un adversario malvado. La suposición de subrayado es que mezclar colores es fácil, pero descomponer una mezcla en sus ingredientes es difícil. Esta suposición (que se conecta fácilmente con el lado formal de las cosas) le permite lograr su objetivo. Elija un color público y permita que ambas partes elijan un color secreto, por . La primera parte envía un cubo de una mezcla de . Del mismo modo, la segunda parte envía un cubo que contiene una mezcla deS 1 , S 2 P , S 1 P , S 2 P , S 1 , S 2PS1,S2P,S1P,S2 . Finalmente, cada lado agrega su color privado a la mezcla que recibió, y ahora ambas partes tienen una mezcla de , que (por nuestra suposición) permanece en secreto de cualquier espía. Una versión formal de esto es el protocolo de intercambio de claves Diffie-Hellman, que se basa en la dureza del registro discreto.P,S1,S2
Ahora, mi comprensión del protocolo bitcoin es limitada, pero cuando hablo con tus padres al respecto, no veo ninguna razón para entrar en criptografía. La mayoría de las explicaciones populares que he visto profundizan innecesariamente en los detalles de implementación, y comienzan a hablar sobre encontrar una preimagen de un hash tal que el resultado tenga número de ceros, perdiendo de vista el problema real. Como antes, sugiero mantener la charla conceptual. ¿Qué problema está tratando de resolver el bitcoin y por qué no es tan trivial? A mi entender, el bitcoin resuelve el problema de mantener un libro mayor distribuido, evitando específicamente el doble gastoxproblema. La motivación es evitar tener una autoridad central, y esto se puede lograr permitiendo que cada participante apruebe una transacción (en lugar de otorgar esta autoridad al banco). Para evitar que los participantes adversarios aprueben sus propias transacciones inválidas, se introduce el concepto de prueba de trabajo. POW usa el hash como un cuadro negro, por lo que puede evitar mencionar candidatos específicos.