¿Es posible garantizar una transacción entre dos pares contra ataques de interrupción?

2

Tomemos un ejemplo atroz de esto:

Alice y Bob quieren clonar un Pokémon.

Establecieron un intercambio entre sus dispositivos de consola. El dispositivo de Alice envía una copia de los datos al dispositivo de Bob, luego el dispositivo de Bob envía una copia de los suyos a Alice. Cuando cada dispositivo comienza a guardar los resultados, Alice apaga su dispositivo para evitar que se guarde. Bob no lo hace. Bob ahora tiene el Pokémon de Alice y aún tiene una copia en su dispositivo.

Supongamos que intentamos configurar un bit sucio antes de comenzar la transferencia y revertir los cambios en el próximo encendido si la transferencia no se ha completado. Eso tampoco parece funcionar. Una vez que ambas partes completan envían reconocimientos de finalización entre sí, Alice simplemente tiene que apagar su dispositivo mientras Bob recibe y procesa el reconocimiento. Bob obtiene el clon, el estado de la base de datos de Alice vuelve al anterior.

Me parece que es increíblemente difícil asegurar que dos pares iguales sin mediador puedan sincronizarse en una sola pieza de datos si ambos corren el riesgo de un corte de comunicación estratégicamente empleado en el momento adecuado. ¿Pero es imposible?

    
pregunta Searinox 17.12.2016 - 20:17
fuente

1 respuesta

1

La situación que describe asume que tanto Alice como Bob no tienen el control total del dispositivo y el software porque de lo contrario, Alice podría usar un software modificado que impida la eliminación del Pokémon local.
Si esta suposición es cierta, es decir, Alice no puede manipular el dispositivo y el software, uno podría hacer la transferencia en varios pasos:

  1. Alice crea una clave aleatoria y cifra el Pokémon
  2. Alice envía el Pokémon encriptado a Bob, pero todavía no la clave. Alice espera la confirmación de que Bob recibió el Pokémon encriptado.
  3. Alicia elimina el Pokémon local.
  4. Alice envía la clave de cifrado a Bob hasta que reciba una confirmación. Bob confirma después de un descifrado exitoso. Solo después de la confirmación, ambos destruyen la clave que ya no se necesita.

Si la suposición inicial no es correcta, es decir, si Alice puede modificar realmente el software que controla el intercambio, entonces necesita algún servicio externo donde todas las partes puedan verificar quién es el propietario de un Pokémon específico ahora. Si bien esto no hará que el engaño sea imposible, se puede usar para detectar si un Pokémon es usado por alguien que no lo posee. Como se indica en un comentario, Bitcoin es una forma de ejecutar dicho servicio.

    
respondido por el Steffen Ullrich 17.12.2016 - 21:27
fuente

Lea otras preguntas en las etiquetas