- OroyFinanzas.com - https://www.oroyfinanzas.com -

Consenso en Bitcoin: Bases de datos distribuidas y teoría de juegos de Arvind Narayanan (1)

(OroyFinanzas.com) – El protocolo Bitcoin a nivel técnico es una solución inteligente al problema de consenso en las ciencias informáticas. La idea del consenso es muy general: un número de participantes conjuntamente ejecutan un cálculo para llegar a un acuerdo sobre el estado del mundo, o un subconjunto del mismo que les interesa.

Debido a esto, por lo general, hay diferentes métodos para analizar y probar cosas acerca de este tipo de protocolos de consenso, procedentes de diferentes áreas de las matemáticas aplicadas y ciencias informáticas. Estos métodos utilizan diferentes lenguas y terminología y encarnan diferentes supuestos y puntos de vista. Como resultado, no siempre son consistentes entre sí. Ésta es una receta para la confusión; a menudo las personas no están de acuerdo porque han asumido implícitamente una visión del mundo u otra. En este artículo se explican los dos modelos principales que se utilizan para analizar la seguridad de consenso en Bitcoin.

Consenso para bases de datos distribuidas y su aplicación en Bitcoin

La aplicación tradicional de consenso es a base de datos distribuidos. Un buen ejemplo es un centro de datos con numerosos nodos [2] que operan con los mismos datos. El sistema debe defenderse de los fallos de sus miembros, pero los fallos son relativamente benignos – los nodos pueden caer (crash), o en el peor de los casos, comportarse de forma aleatoria. Cuando los programas maliciosos (malware) y los ataques a través de Internet se hicieron más habituales, los investigadores de los consensos distribuidos empezaron a estudiar los fallos Bizantinos en los que los nodos pueden ser tomados por un adversario y pueden comportarse de manera arbitraria. En este campo de investigación, el objetivo habitual es demostrar que el consenso es o no es posible en varios escenarios. Un porcentaje de nodos se supone que es “honesto”, lo que significa que siempre siguen un protocolo dado, y otros son “maliciosos”, lo que significa que deliberadamente pueden tratar de pervertir el protocolo.

Cuando se creó Bitcoin, la gente buscó modelos para analizar su comportamiento y el modelo de consenso bizantino parecía decente, dado que hacíamos algunos retoques. En particular, en Bitcoin cuando hablamos de fracciones de nodos debemos medirlos por la potencia de hash [3]. Éste es el modelo que el documento original utiliza para analizar la seguridad, al igual que varios trabajos de seguimiento posteriores.

Pero hay que darse cuenta de lo diferente que es Bitcoin con las aplicaciones tradicionales para las que el modelo fue diseñado. En un sistema distribuido es una buena solución que un administrador del sistema se dé cuenta de que algo está mal antes de que demasiados nodos estén comprometidos, y buscar la solución, por lo que tiene sentido suponer que buena parte de los nodos son siempre honestos. Pero, ¿qué obliga a cualquier nodo Bitcoin o minero a seguir el protoclo?

Los mineros tienen poderosos incentivos monetarios, y uno de los argumentos es que van a tratar de maximizar sus beneficios, independientemente de si eso significa que están siguiendo el protocolo. La rama de las matemáticas que estudia el comportamiento de los participantes interactuando que siguen sus incentivos se llama teoría de juegos. Éste es el otro conjunto principal de modelos que se ha aplicado a Bitcoin.

La Teoría de Juegos y su aplicación en Bitcoin

En este modelo no clasificamos nodos como honestos y maliciosos. En su lugar, se supone que cada nodo elige una estrategia (aleatoria) para maximizar su rentabilidad, teniendo en cuenta las posibles estrategias de otros nodos. Si el protocolo y los incentivos están bien, entonces la mayoría de los nodos seguirán, la mayoría de las veces, las reglas. El comportamiento “honesto” es solo una estrategia de muchas, y no le concedemos ninguna relevancia moral particular.

Este modelo tiene cierta elegancia y evita supuestos que parecen arbitrarios y difíciles de justificar, como por ejemplo que el 50% de los nodos son honestos. En la práctica hay diversidad en las implementaciones de los clientes, y el protocolo evoluciona con el tiempo, por lo que incluso designar un comportamiento tan honesto es algo arbitrario.

Pero la elegancia de la teoría no es suficiente. ¿Podemos modelar eficazmente el sistema con todos sus componentes interactuando en el lenguaje de las estrategias y maximización de la rentabilidad? ¿Es el modelo resultante manejable y podemos analizarlo matemáticamente o con simulaciones? Y lo que es más importante, ¿se ajustan sus predicciones a lo que observamos en la práctica?

Artículos Relacionados:

Bitcoin y la aplicación de la teoría de juegos con pools de minería de Arvind Narayanan (2) [4]

Bitcoin y teoría de juegos: un juego dentro de un juego de Arvind Narayanan (3) [4]

Fuente: Freedom to tinker [5]

© OroyFinanzas.com

[6]