Facciamo un esempio eclatante di questo:
Alice e Bob vogliono clonare un Pokemon.
Istituiscono uno scambio tra i loro dispositivi console. Il dispositivo di Alice invia una copia dei dati al dispositivo di Bob, quindi il dispositivo di Bob invia una loro copia ad Alice. Mentre ogni dispositivo inizia a salvare i risultati, Alice spegne il suo dispositivo impedendone il salvataggio. Bob no. Bob ora ha i Pokemon di Alice e Alice ne ha ancora una copia sul suo dispositivo.
Supponiamo di provare a impostare un bit sporco prima di iniziare il trasferimento e di ripristinare le modifiche alla prossima accensione se il trasferimento non è stato completato. Neanche sembra funzionare. Dopo che entrambe le parti sono state completate, inviano riconoscimenti di completamento l'una all'altra, Alice semplicemente deve spegnere il dispositivo mentre Bob riceve ed elabora il riconoscimento. Bob ottiene il clone, lo stato del database di Alice torna al precedente.
Mi sembra incredibile che sia incredibilmente difficile assicurare che due pari pari senza alcun mediatore possano sincronizzarsi su un singolo pezzo di dati se entrambi sono a rischio di interruzione della comunicazione strategicamente impiegati al momento giusto. Ma è impossibile?