Is there a cryptographic technique to achieve a similar result on the internet that does not require trusted infrastructure and could be achieved in a distributed way?
Ordina. Consideriamo una variante del poker in cui ogni giocatore riceve carte da un mazzo di carte separato. Quindi nessun giocatore può tenere carte duplicate, ma le carte possono essere duplicate tra tutte le mani.
Assumiamo anche che tutti abbiano una coppia di chiavi RSA e che le chiavi pubbliche siano già state condivise.
Quindi, il protocollo procede così:
- tutti generano due valori casuali A e B.
- tutti firmano A e B (separatamente) e inviano / raccolgono queste firme separate di A e B da / per tutti gli altri.
- tutti rivelano A e raccolgono valori da tutti gli altri. se una firma non corrisponde, è una soluzione.
- tutti calcolano A ', la somma di tutti i valori A.
- ognuno si offre una mano basata sull'uso di A '+ B come seme.
- (ora nessuno si conosce a vicenda perché non conoscono il valore B degli altri giocatori, inoltre nessuno è stato in grado di manipolare la mano data perché non sapeva quale sarebbe stato il valore finale di A dopo aver scelto B)
- ognuno fa il business del poker, firma le proprie mosse e qualsiasi informazione pubblica rivelata come richiesto dalle regole del nostro poker modificato.
- alla fine, tutti condividono i valori B, il che consente di verificare se qualcuno ha tradito un determinato passaggio.
- chiunque abbia tradito automaticamente perde a chiunque non abbia imbrogliato prima di farlo.
Quindi accettiamo l'inganno, ma lo applichiamo alle regole del gioco in un modo che impedisce a un imbroglione isolato di vedere un vantaggio nel farlo. Se il gioco diventa graffiante nel caso in cui venga rilevato un imbroglio, i giocatori possono imbrogliare quando credono di essere in una posizione di sconfitta.
La parte difficile di tutto questo è l'applicazione dei pagamenti alle parti perdenti.