La prueba de trabajo es la única solución al problema de los generales bizantinos

Por Oleg Andreev

Generales BizantinosDemostración de que la prueba de trabajo es la única solución al problema de los generales bizantinos

Imagina que estás sentado en un bunker. No tienes ni idea de la gente que hay fuera ni de cuáles son sus intenciones. Tú sólo recibes mensajes entrantes de desconocidos que pueden contener cualquier cosa. Pueden ser basura aleatoria o ser mensajes preparados para confundirte. No puedes saberlo ni puedes confiar en nadie.

El problema del dinero o de cualquier otro “contrato social” es que todo el mundo debe ser capaz de saber lo que la mayoría acuerda sin necesidad de confiar en un intermediario (o de otra forma estos podrían abusar de su posición ventajosa). Si todo el mundo vota por “X”, entonces tú sentado en tu bunker debes llegar a saber de alguna forma que la gente fuera ha votado “X” y no “Y” o “Z”. Pero recuerda: no puedes confiar en los mensajes de nadie, y mensajes es lo único que recibes del mundo exterior.

Cuando dos propuestas llegan a tu bunker, “X” e “Y”, no tienes referencia válida para saber cuál de las dos es la mayoritariamente votada. Sólo tienes los datos mismos que te llegan para juzgar cuál de las opciones elegir. Para hacer las cosas más sencillas, no estamos intentando aplicar un juicio subjetivo a cada una de las opciones, sino hacer que todo el mundo converja en elegir una de ellas. En el caso del Bitcoin es una asunción razonable pensar que cada uno es propietario de su dinero, y que por lo tanto a nadie le importa mucho cuál es la versión de la historia siempre y cuando su propio balance sea respetado.

Así pues ¿cómo de diferente debería ser “X” de “Y” para saber que nadie accidentalmente podría escoger “Y”, “Z” o “W”? Primera propiedad: estos datos deben ser recientes. De esa forma sabemos que no estamos sentados sobre algún viejo acuerdo mientras todo el mundo se ha mudado a otro más reciente.  Segunda propiedad: cualquiera alternativa “reciente” debe ser imposible de producir. Si es posible que sea producida, siempre existe la posibilidad de que un determinado número de personas hubiera optado por ella como alternativa. Y no tienes forma de saber cuántas alternativas existen y cuántas personas las han adoptado (porque sigues sentado en un bunker y no puedes confiar en los mensajes entrantes ni saber qué otros mensajes te estás perdiendo).

byzantine-generals-problem
Problema de los generales bizantinos

¿Como definimos imposible? Significa dos cosas: o es lógicamente imposible, o es prácticamente (económicamente) imposible. Si es lógicamente imposible, entonces podemos conocer todo los futuros acuerdos de forma anticipada (como una secuencia determinada de números), simplemente usando la inducción. Pero esto no funciona así porque tendríamos que haber llegado a alguna clase de acuerdo sobre un punto de partida en primer lugar. Así que terminamos con la imposibilidad práctica. En otras palabras, lo que necesitamos es lo siguiente:

El mensaje “X” debe ser reciente de forma probada y las alternativas han de ser prácticamente imposibles de producir.

La imposibilidad práctica puede ser redefinida en términos de “coste de oportunidad”: hay un número limitado de recursos físicos y si estos han sido asignados mayormente a X antes que a Y deberíamos podemos ver que X ha chupado para sí mismo todos los recursos de todas las demás alternativas. Porque de lo contrario, habría un gran incertidumbre en cuanto al uso de los recursos remanentes: ¿pueden haber ido a parar a Y? ¿Es posible que X no chupara todos los recursos y que aún así las alternativas no resulten posibles? Eso implicaría que X se sigue lógicamente de cualquiera sea el estado previo en el sistema y que por lo tanto no es necesario un proceso de votación.

Por lo tanto: el mensaje X debe ser reciente de forma probada y debe haber gastado –de forma probada también– una gran cantidad de recursos, suficientemente grande como para que no haya recursos para producir otras alternativas en un periodo corto de tiempo. Además, el mensaje X debe ser siempre reciente y debe siempre superar cualquier alternativa. Porque no podemos fiarnos de los mensajes recibidos anteriormente: ¿y si “Y” es un mensaje antiguo que ha llegado ahora o que ha sido producido tras X cuando hubo recursos disponibles?

Esto lógicamente nos lleva a lo siguiente: debemos aceptar sólo los mensajes con la mayor prueba-de-trabajo asociada a ellos, y esa prueba-de-trabajo debe ser tan grande como sea posible, de manera que no haya posibilidad de que una alternativa pudiera ser producida en ese corto lapso de tiempo. Y esa prueba-de-trabajo debe ser constantemente reforzada o el valor del consenso previo empezará a desvanecerse rápidamente según crece la oportunidad para otras alternativas.

Las granjas caras y altamente especializadas son la forma más fiable de llegar a un consenso. Si fuéramos a usar recursos no especializados, sería complicado que valorásemos si la mayoría de ellos están siendo en realidad usados para prueba-de-trabajo. Mediante la observación de esa enorme cantidad de trabajo aplicada a una parte muy específica y fácil de observar de la economía, podemos estimar cuán caro es producir un mensaje alternativo con el mismo grado de dificultad asociado. En el caso de las granjas de minado de Bitcoin, una alternativa requeriría una cadena de producción muy cara y compleja como para superar a otras firmas que producen chips, o bien se vería forzada a construir data-centers de uso único en los lugares con mejor ratio de costo/efectividad del planeta (con la electricidad más barata, el clima más frío, baja latencia en la conexión, etc.).

Conclusión

Si alcanzar un consenso de una forma que no implique la confianza es posible en la práctica, sólo lo es con un esquema de prueba-de-trabajo y cadenas de producción caras y altamente especializadas. Además, el consenso es solamente válido durante un corto periodo de tiempo, así que debe ser constantemente reforzado.

Leer texto original, en inglés

Imagen por y12