Assumi due nodi in una rete peer-to-peer che avvia una comunicazione.
In questa comunicazione, un nodo deve servire come "mittente", un altro come "ricevitore" (i nomi dei ruoli sono arbitrari qui).
Vorrei che i nodi affermassero entrambi i ruoli con probabilità approssimativamente uguale. Cioè, in N comunicazioni con vari altri nodi un dato nodo assumerebbe il ruolo di "mittente" all'incirca N / 2 volte. Poiché non è disponibile alcun arbitro di terze parti, i nodi devono concordare i loro ruoli scambiandosi messaggi.
Il problema è che possiamo incontrare un nodo canaglia che cercherebbe di diventare il "ricevitore" nella maggior parte o in tutti i casi, e convince l'altro lato a servire sempre come "mittente".
Sto cercando un algoritmo per assegnare ruoli ai lati della comunicazione in modo che nessuna parte possa ottenere un ruolo predeterminato con alta probabilità. Va bene per il lato che sta cercando di imbrogliare per non riuscire a comunicare.