Aparte de los servicios de depósito en garantía mencionados por @tylerl, existen protocolos criptográficos llamados protocolos de intercambio justo que intentan lograr esta propiedad. Consulte esta página para obtener una lista de referencias a artículos de investigación relevantes.
La mayoría de los protocolos de intercambio justo hacen algo como esto:
- Los dos elementos de datos que se intercambiarán están cifrados, con pruebas de conocimiento cero que el cifrado se realizó correctamente . Las dos teclas Ka y Kb tienen bits de tamaño n .
- Las dos claves se intercambian una por una: Alicia envía el primer bit de Ka a Bob, Bob envía el primer bit de K b a Alice, Alice envía el segundo bit de Ka a Bob, y así sucesivamente.
- Si una de las partes rescata antes de completar el protocolo, el esfuerzo computacional necesario para completar las claves parcialmente obtenidas es similar para Alice y Bob (de ahí la "imparcialidad").
Estos protocolos son muy técnicos porque necesitan pruebas ZK sólidas de que lo que envían es "correcto". Si Alicia tiene la intención de rescatar, también podría intentar enviar bits de chatarra a Bob y así obtener una ventaja injusta. Las matemáticas están involucradas. También hay variantes que intentan dar cuenta de una asimetría en el poder de cómputo (si Alice tiene un grupo de 20 PC y Bob solo tiene un teléfono inteligente, es posible que Alice quiera cerrar la conexión antes). Que yo sepa, ninguno de estos protocolos ha alcanzado la etapa "estandarizada e implementada como una biblioteca fácil de usar".