El problema de los generales bizantinos, también conocido como el problema de los dos generales, se propuso en el artículo de Leslie Lambert sobre la tolerancia a fallas de la comunicación de red entre pares distribuida en 1982. En la comunicación del sistema distribuido, algunos problemas locales pueden hacer que la computadora envíe mensajes de error y destruya la consistencia del sistema. Por lo tanto, el problema de los generales bizantinos es esencialmente un problema de consenso en la comunicación punto a punto.
El Problema de los Generales Bizantinos se originó en la Edad Media. Debido al vasto territorio de Bizancio, la comunicación entre ejércitos solo puede depender de mensajeros. Si hay un traidor que tergiversa deliberadamente la información de los líderes del ejército, conducirá a planes operativos inconsistentes, lo que resultará en los "fracasos bizantinos".
Para resolver este problema, existen dos soluciones: una es enviar mensajeros entre sí por acuerdo oral, y llegar a un consenso por mayoría simple, pero es difícil distinguir a los traidores potenciales; el segundo es enviar mensajeros en forma de acuerdos escritos para entregar mensajes escritos con firmas exclusivas, que deben ser secundadas por cada ejército, pero si la transmisión es demasiado lenta, las firmas pueden perderse. Como ambas soluciones solo pueden resolver una parte del problema y se necesita demasiado tiempo y recursos para llegar a un consenso, no son útiles.
El problema de los generales bizantinos en Internet significa que en el proceso de transmisión del canal, puede ser difícil para algunos nodos lograr la sincronización de la información debido a la carga de trabajo excesiva o algunos ataques maliciosos. En 1999, Miguel Castro y Barbara Liskov propusieron la Tolerancia a fallas bizantinas (BFT). Creían que si dos tercios de los nodos del sistema funcionaban normalmente, se podía garantizar la consistencia y corrección del sistema. Más tarde, Satoshi Nakamoto propuso el mecanismo de prueba de trabajo (PoW) y el algoritmo criptográfico asimétrico de Bitcoin, que proporcionó una nueva solución al problema de los generales bizantinos.
Supongamos que hay n generales y t traidores. Digamos n=3, t=1, entonces uno de A, B y C es un traidor. Si A da la orden de [atacar], pero el traidor B le dice a C que [se retire], entonces C no puede emitir un juicio; Si el traidor B envía una orden de [ataque] a A y una orden de [retirada] a C, entonces A y C no pueden llegar a un acuerdo. Por lo tanto, cuando el número de traidores es mayor o igual a 1/3, el Problema de los Generales Bizantinos no se puede resolver.
De manera similar, suponiendo que el número total de nodos de la red es N y el número de nodos maliciosos es T, el problema se puede resolver solo cuando N>=3T+1, es decir, el número de nodos normales en la red es al menos ( 2/3) N, a fin de garantizar la consistencia de la información. En una comunicación de red confiable, la tolerancia a fallas bizantinas puede resolver el problema de la falla del nodo hasta cierto punto, para que el sistema pueda llegar a un consenso.
Supongamos que el general A primero emite el comando [ataque] y adjunta su firma. Después de recibirlo, si otros generales también planean atacar, seguirán la orden [de ataque] y su firma después de la orden del general A. Si A no ejecuta el comando [ataque] después de que A lo envía, otros generales pueden juzgar a A como un traidor y usarlo para distinguir la información correcta.
De manera similar, múltiples nodos participantes obtendrán un resultado a través de una serie de trabajos, y el primer nodo que obtenga el resultado lo transmitirá a toda la red. Si el resultado es correcto, otros nodos agregarán el resultado a sus propios libros de contabilidad para prepararse para el cálculo a fin de obtener el derecho de registrar transacciones en la cadena de bloques.
Un Hacker debe tener más del 51% de poder de cómputo para destruir la seguridad de la red o publicar bloques falsos. El costo es mucho mayor que el retorno. Por lo tanto, este mecanismo puede reducir la posibilidad de información falsa y hacer que el sistema alcance un consenso más rápido.
El cifrado y descifrado de los algoritmos de clave asimétrica necesitan dos claves secretas separadas: clave pública y clave privada, que generalmente aparecen en pares. Si A quiere enviar un mensaje a B, A necesita la clave pública de B para cifrar la información y B necesita su propia clave privada para descifrar la información. Si B quiere mostrar su identidad, puede firmar la clave privada, escribir un “texto de firma” y difundirlo. Otros pueden verificar su identidad según la clave pública de B.
Debido a que la identidad y la firma no se pueden falsificar, los algoritmos de clave asimétrica garantizan la privacidad de la transmisión y la firma confiable.
El problema de los generales bizantinos, también conocido como el problema de los dos generales, se propuso en el artículo de Leslie Lambert sobre la tolerancia a fallas de la comunicación de red entre pares distribuida en 1982. En la comunicación del sistema distribuido, algunos problemas locales pueden hacer que la computadora envíe mensajes de error y destruya la consistencia del sistema. Por lo tanto, el problema de los generales bizantinos es esencialmente un problema de consenso en la comunicación punto a punto.
El Problema de los Generales Bizantinos se originó en la Edad Media. Debido al vasto territorio de Bizancio, la comunicación entre ejércitos solo puede depender de mensajeros. Si hay un traidor que tergiversa deliberadamente la información de los líderes del ejército, conducirá a planes operativos inconsistentes, lo que resultará en los "fracasos bizantinos".
Para resolver este problema, existen dos soluciones: una es enviar mensajeros entre sí por acuerdo oral, y llegar a un consenso por mayoría simple, pero es difícil distinguir a los traidores potenciales; el segundo es enviar mensajeros en forma de acuerdos escritos para entregar mensajes escritos con firmas exclusivas, que deben ser secundadas por cada ejército, pero si la transmisión es demasiado lenta, las firmas pueden perderse. Como ambas soluciones solo pueden resolver una parte del problema y se necesita demasiado tiempo y recursos para llegar a un consenso, no son útiles.
El problema de los generales bizantinos en Internet significa que en el proceso de transmisión del canal, puede ser difícil para algunos nodos lograr la sincronización de la información debido a la carga de trabajo excesiva o algunos ataques maliciosos. En 1999, Miguel Castro y Barbara Liskov propusieron la Tolerancia a fallas bizantinas (BFT). Creían que si dos tercios de los nodos del sistema funcionaban normalmente, se podía garantizar la consistencia y corrección del sistema. Más tarde, Satoshi Nakamoto propuso el mecanismo de prueba de trabajo (PoW) y el algoritmo criptográfico asimétrico de Bitcoin, que proporcionó una nueva solución al problema de los generales bizantinos.
Supongamos que hay n generales y t traidores. Digamos n=3, t=1, entonces uno de A, B y C es un traidor. Si A da la orden de [atacar], pero el traidor B le dice a C que [se retire], entonces C no puede emitir un juicio; Si el traidor B envía una orden de [ataque] a A y una orden de [retirada] a C, entonces A y C no pueden llegar a un acuerdo. Por lo tanto, cuando el número de traidores es mayor o igual a 1/3, el Problema de los Generales Bizantinos no se puede resolver.
De manera similar, suponiendo que el número total de nodos de la red es N y el número de nodos maliciosos es T, el problema se puede resolver solo cuando N>=3T+1, es decir, el número de nodos normales en la red es al menos ( 2/3) N, a fin de garantizar la consistencia de la información. En una comunicación de red confiable, la tolerancia a fallas bizantinas puede resolver el problema de la falla del nodo hasta cierto punto, para que el sistema pueda llegar a un consenso.
Supongamos que el general A primero emite el comando [ataque] y adjunta su firma. Después de recibirlo, si otros generales también planean atacar, seguirán la orden [de ataque] y su firma después de la orden del general A. Si A no ejecuta el comando [ataque] después de que A lo envía, otros generales pueden juzgar a A como un traidor y usarlo para distinguir la información correcta.
De manera similar, múltiples nodos participantes obtendrán un resultado a través de una serie de trabajos, y el primer nodo que obtenga el resultado lo transmitirá a toda la red. Si el resultado es correcto, otros nodos agregarán el resultado a sus propios libros de contabilidad para prepararse para el cálculo a fin de obtener el derecho de registrar transacciones en la cadena de bloques.
Un Hacker debe tener más del 51% de poder de cómputo para destruir la seguridad de la red o publicar bloques falsos. El costo es mucho mayor que el retorno. Por lo tanto, este mecanismo puede reducir la posibilidad de información falsa y hacer que el sistema alcance un consenso más rápido.
El cifrado y descifrado de los algoritmos de clave asimétrica necesitan dos claves secretas separadas: clave pública y clave privada, que generalmente aparecen en pares. Si A quiere enviar un mensaje a B, A necesita la clave pública de B para cifrar la información y B necesita su propia clave privada para descifrar la información. Si B quiere mostrar su identidad, puede firmar la clave privada, escribir un “texto de firma” y difundirlo. Otros pueden verificar su identidad según la clave pública de B.
Debido a que la identidad y la firma no se pueden falsificar, los algoritmos de clave asimétrica garantizan la privacidad de la transmisión y la firma confiable.