Vitalik Buterin propone un algoritmo de consenso que requiere solo un 1% para ser honesto

0

“Si agregas más supuestos (específicamente, pides a los observadores que estén mirando activamente el consenso, y no solo que descarguen los resultados después del hecho), se puede aumentar la tolerancia de fallas hasta el 99%”.

Así lo dice Vitalik Buterin en un artículo altamente técnico revisado por Emin Gun Sirer que sugiere que en lugar de requerir un consenso de 50% de los mineros o los intrusos, puede haber un método que requiere solo de 1% de ellos para que sea honesto.

El temido ataque del 51%, por tanto, bajo este algoritmo de consenso se convertiría en un ataque de 99%, lo que significa que sería efectivamente imposible.

La forma en que lo hace, desde una perspectiva de alto nivel y hasta donde entendemos, es requiriendo nodos escucha u observadores independientes.

Probablemente estés familiarizado con la primera regla para bitcoin. Si no, puedes ver aquí cuando Satoshi Nakamoto la explicó el 17 de julio de 2010; y la citamos en su totalidad a continuación:

“Creo que una empresa de procesamiento de pagos podría ofrecer como servicio la distribución rápida de las transacciones con una verificación suficientemente buena en algo así como 10 segundos o menos.

Los nodos de red solo aceptan la primera versión de una transacción que reciben para incorporar en el bloque que intentan generar. Cuando transmites una transacción y alguien más transmite un doble gasto al mismo tiempo, es una carrera para propagarse a la mayoría de los nodos primero. Si uno tiene una ligera ventaja, se distribuirá geométricamente a través de la red más rápido y obtendrá la mayoría de los nodos.

Un ejemplo breve:

1         0
4         1
16        4
64        16
80%     20%

Entonces, si un doble gasto se demora incluso un segundo, tiene una gran desventaja.

El procesador de pagos tiene conexiones con muchos nodos. Cuando obtiene una transacción, la destruye y, al mismo tiempo, supervisa la red en busca de doble gasto. Si recibe un doble gasto en cualquiera de sus muchos nodos de escucha, entonces anuncia que la transacción es mala. Una transacción doble no llegaría muy lejos sin que uno de los escuchas lo oyera.

El doble gastador tendría que esperar hasta que la fase de audición termine, pero para entonces la emisión del procesador de pagos ha llegado a la mayoría de los nodos o está muy por delante en la propagación, tanto que el doble gastador no tiene esperanzas de captar un porcentaje significativo de los nodos restantes.”

Buterin propone algo similar, pero para bloques. En un comunicado enviado luego de la publicación de este artículo Buterin aclaró que, como lo deja en claro en su propuesta original, no inventó el consenso 99% tolerante a fallas. Lo hizo Leslie Lamport, un científico informático que recibió un premio Turing por su trabajo en sistemas distribuidos.

“Escribí un explicativo y lo adapté al contexto de la cadena de bloques”, dice Buterin.

En un documento de alto nivel escrito por Conrad Barski, un desarrollador de ethereum al que Buterin responde sin corrección, Barski menciona:

“Vitalik está proponiendo que si un observador independiente del tráfico de la red —es decir, solo el cliente blockchain que ejecuta un usuario, no un minero o validador— observa lo que está sucediendo en tiempo real y presta atención cuando aparecen los mensajes, puede detectar ‘juego sucio’ por los mineros que realizan un ataque del 51% y esto puede proporcionar garantías de seguridad adicionales que pueden proteger contra dicho ataque”.

El mismo Buterin agrega que “otro caso de uso para esto es una herramienta para detectar ataques de censura del 51% y coordinar el uso de bifurcaciones suaves minoritarias para salir de ellos, sin que la herramienta necesite mucha coordinación social impulsada por humanos para elegir una acción o la otra en casos extremos”.

Eso suena como una prueba de fraude, una criatura mítica que algunos desarrolladores de Bitcoin Core dicen que no existe. El documento de Nakamoto, sin embargo, menciona tales pruebas de fraude para explicar por qué no se deben mantener ciertos datos o por qué los nodos de luz pueden ser muy seguros.

En pocas palabras, como su nombre lo indica, las pruebas de fraude son pruebas de fraude, engaño, mala conducta o alguien que no está en consenso.

Si ejecutas un nodo completo, estás validando todo, por lo que el nodo simplemente rechaza la mala conducta. Sin embargo, si no estás validando todo porque, por ejemplo, estás utilizando un teléfono inteligente, entonces en algunas circunstancias excepcionales puedes alimentar datos incorrectos sin que tengas una forma de saber que son incorrectos.

Las pruebas de fraude ocurren de esa manera y la sugerencia aquí, si lo entendimos bien —correcciones bienvenidas de otra manera—, parece ser que puedes saber que los datos son incorrectos debido a los observadores independientes que están vigilando.

Todo esto, por supuesto, lo hace el software o el código en sí. Como el código “conoce”, algunos datos son incorrectos y, por ende, los rechaza automáticamente. Buterin dice:

“Si el 5% de los validadores son honestos, solo hay aproximadamente 1 en 1 billón de probabilidades de que ninguno de los 512 nodos seleccionados al azar sea honesto. Y, siempre que la latencia de la red más la disparidad del reloj sea inferior a D / 2, el algoritmo funcionará, coordinando correctamente los nodos en un solo valor finalizado, incluso si se presentan múltiples valores finales en conflicto porque la tolerancia a fallas del algoritmo dependiente del umbral está rota “.

El enfoque aquí es, por supuesto, en Casper, y esta propuesta parece ser una sugerencia de su incorporación potencial en la Prueba de Participación. Si funciona en ese contexto, la cadena de bloques ethereum podría ser mucho más segura.

La versión original escrita en inglés se publicó en Trustnodes.

¿Te gustó el artículo? ¡Puedes apoyar a Ricardo Florentino en Patreon!

Deje un Comentario

Su correo electrónico no será publicado.