Protocolos de compromiso
# Protocolos de compromiso

Los protocolos de compromiso de bits tienen una gran importancia en el ámbito de los protocolos criptográficos. Son útiles para resolver ciertos problemas que nos encontramos habitualmente. Uno de estos problemas sería el Problema del lanzamiento de la moneda que consiste en intentar permitir que dos usuarios realicen alguna acción con un 50% de probabilidad asegurando que ninguno hace trampa. Un ejemplo de este problema es el lanzamiento de un dado. El objetivo de estos protocolos consiste en conseguir que un punto A se comprometa a mantener un valor de un bit o grupo de bits inalterable frente a otro punto B de tal forma que A no pueda alterar el valor de dicho o bit o grupo de bits y B no sea capaz de saber su valor hasta que A “abra el compromiso”.

## Protocolo

Existen diversos tipos de implementaciones sobre este tipo de protocolos, sin embargo, todas ellas deben garantizar el principio de ilegibilidad y el principio de inalterabilidad que se ha mencionado en la introducción. Además de esto, se deben de seguir las siguientes fases:

* Compromiso: Realiza el compromiso con el bit o conjunto de bits visto previamente.
* Apertura: Abre el compromiso pasando la información a B
* Verificación: El punto verifica la los datos pasados

Además de esto, el protocolo debe garantizar una serie de propiedades que nos que hagan de este, un protocolo consistente:

* No modificar el valor del bit o grupo de bits comprometidos (siguiendo con el principio de inalterabilidad de la fase de compromiso).
* El punto B no debe ser capaz de obtener de forma clara los datos comprometidos hasta el momento en el que el punto A entre en la fase de Apertura del compromiso. Además, B solo podrá obtener en claro, de la fase de Apertura, el bit o grupo de bits que hayan sido comprometidos.
* En cualquier caso, no puede haber restricción en cuanto al posible valor de los datos comprometidos.
