EL LIBRO DE SATOSHI también podría ser interceptado, lo que llevaría al segundo general a vacilar también. El primer general podría estar enviando una confirmación de la confirmación, pero ésta también podría haber sido interceptada. Por lo tanto, nuevamente, el primer general podría dudar a menos que obtenga una confirmación de esta confirmación de la primera confirmación. Este proceso podría ocurrir infinitas veces, sin que ninguno de los dos pudiera saber si los mensajes fueron enviados o si fueron interceptados por el enemigo. Para obtener más información, lea la sección "Ilustrando el problema" en el siguiente artículo de Wikipedia: http://en.wikipedia.org/wiki/Two_Generals%27_Problem Ver también este artículo sobre la tolerancia de fallas Bizantina: http://en.wikipedia.org/wiki/Byzantine_fault_tolerance Re: Papel del dinero electrónico Bitcoin P2P Satoshi Nakamoto, jueves 13 de noviembre 2008, 19:34:25 -0800 _______________________________________________________________ James A. Donald escribió: No es suficiente que todos sepan X. También necesitamos que todos sepan que todos conocen X, y que todos saben que todos saben que todos conocen X - lo que, como en el problema de los generales bizantinos, es el clásico y difícil problema del procesamiento distribuido de datos. _____________________________________________________________ La cadena de prueba de trabajo es una solución al Problema de los Generales Bizantinos. Trataré de re-expresarlo en ese contexto. Varios generales bizantinos tienen cada uno un ordenador y quieren atacar por fuerza bruta la contraseña del wi-fi del Rey, que han descubierto que tiene una cierta cantidad de caracteres. Una vez que animan a la red a generar un ataque, deben descifrar la contraseña dentro de un tiempo limitado para entrar y borrar los registros, de lo 71
EL PROBLEMA DEL GENERAL BIZANTINO contrario serán descubiertos y tendrán problemas. Solo tendrán suficiente poder de CPU para descifrarlo lo suficientemente rápido si la mayoría de ellos atacan al mismo tiempo. No les importa especialmente cuándo será el ataque, solo que todos estén de acuerdo. Se ha decidido que cualquiera que lo desee puede anunciar un momento concreto, y que cualquier momento que se escuche primero será el momento oficial de ataque. El problema es que la red no es instantánea, y si dos generales anuncian diferentes momentos de ataque casi al mismo tiempo, algunos pueden escuchar a uno primero y otros escuchar al otro primero. Usan una cadena de prueba de trabajo para resolver el problema. Una vez que cada general recibe la hora de ataque que escuchan primero, configuran su ordenador para resolver un problema de prueba de trabajo extremadamente difícil que incluye el momento de ataque en su hash. La prueba de trabajo es tan difícil que se espera que tarden 10 minutos en trabajar todos a la vez antes que uno de ellos encuentre una solución. Una vez que uno de los generales encuentra una prueba de trabajo, lo transmite a la red, y todos cambian su cómputo actual de prueba de trabajo para incluir esa prueba de trabajo en el hash en el que están trabajando. Si alguien estaba trabajando con un momento de ataque diferente, cambia a este, porque su cadena de prueba de trabajo ahora es más larga. Después de dos horas, el momento de ataque debe ser hasheado por una cadena de 12 pruebas de trabajo. Cada general, verificando la dificultad de la cadena de prueba de trabajo, puede estimar cuánta potencia de CPU paralela fue gastada por hora, y ver lo que debe de haber requerido la mayoría de los ordenadores para producir tanta prueba de trabajo en el momento asignado. Todos debieron haberlo visto porque la prueba de trabajo es prueba de que trabajaron en ello. Si la potencia de CPU exhibida por la cadena de prueba de trabajo es suficiente para descifrar la contraseña, ellos pueden atacar con seguridad a la hora acordada. La cadena de prueba de trabajo es lo que resuelve todos los problemas de sincronización, de base de datos distribuida y de visión global que pedías. _______________________________________________________________ La Lista de Correo de Criptografía 72