Come altre risposte hanno chiarito, il problema dichiarato non ha una soluzione perfetta, solo approssimazioni e disincentivi. Se è necessario stabilire prima di creare un account che l'utente non ne ha già aperto uno, non c'è altro da aggiungere.
Approccio non immediato
Tuttavia, se è accettabile creare un account senza controllare l'identità e poi gradualmente chiudere nel tempo account che sono stati identificati come duplicati, allora potresti essere in grado di portare il numero di account duplicati a un livello accettabilmente basso con meno problemi per te o per i tuoi utenti.
Se i tuoi utenti interagiscono con, ad esempio, un sito web usando il loro account su base regolare, allora il loro input può essere usato per mantenere una "impronta" del loro stile di input. Questo potrebbe essere sotto forma di velocità e frequenza dei movimenti del mouse e delle sequenze di tasti, uso di particolari parole, frasi, uso in particolari momenti della giornata e della settimana, o qualsiasi altra cosa che la vostra particolare situazione rende disponibili. Le misure più diverse che puoi includere meno sensibili sono le impronte digitali risultanti da sviste o falsi positivi.
Precauzioni etiche
Eticamente mi aspetterei che queste informazioni vengano trattate allo stesso modo delle impronte digitali effettive. L'utente deve essere informato che le informazioni vengono raccolte, avere il diritto di richiederne una copia o di averle cancellate e avere la certezza che non saranno condivise senza il loro esplicito permesso. Altrimenti potrebbe essere usato per divulgare l'identità di una persona a qualsiasi sito web non collegato che ha acquistato la propria impronta digitale.
Sebbene questa "identità" non includa il loro nome e indirizzo, solo sapere che un utente ha un account con un dato sito può essere utile per gli inserzionisti o le organizzazioni che desiderano schermare i loro utenti, quindi prenderei in considerazione la condivisione di questa impronta digitale essere non etico senza il consenso esplicito.
Lavoro precedente pertinente
Il lavoro è già stato fatto su tali impronte digitali. Ad esempio, questo documento . Il collegamento dà accesso solo all'astratto. Non sono riuscito a trovare una versione gratuita dell'articolo completo, ma i numeri forniti in astratto danno un'idea di quanto velocemente si possa essere in grado di creare un'impronta digitale accurata. Sono disponibili informazioni gratuite in questa pagina di Wikipedia . Mentre è necessario memorizzare i dati per ogni account sui server, la maggior parte del lavoro di raccolta, compressione e confronto delle impronte digitali può essere fatto sui computer degli utenti.
Queste informazioni possono essere utilizzate per evidenziare potenziali account duplicati, che possono quindi essere chiusi se sei sufficientemente certo, o sollevati con l'utente per richiedere l'identificazione se concedere loro il beneficio di qualsiasi dubbio. Se sei pronto ad accettare alcuni duplicati esistenti per il tempo necessario a identificarli, allora questo approccio consente alla maggior parte degli utenti di non dover mai fornire l'identificazione.
Punti deboli
Questo approccio non impedirà tutti i duplicati. Sarà efficace con la maggior parte degli utenti, ma il software potrebbe essere utilizzato per mascherare i modelli di battitura e anche le ore del giorno (invio di informazioni mentre l'utente dorme ad esempio). Inoltre, non c'è nulla che impedisca a un utente di aprire un nuovo account e che un amico esegua la propria digitazione (a condizione che quell'amico non abbia un proprio account che poi verrà visualizzato come duplicato).
Ci sono opportunità di falsi positivi che dovrebbero essere affrontati al fine di evitare l'esclusione di gruppi di persone. Ad esempio, esiste una grande varietà di motivi per cui un utente potrebbe non essere in grado di utilizzare la tastiera o il mouse e quindi dovrebbe avere qualcuno da digitare per loro. Se anche quella persona ha un account, verrà visualizzato come duplicato.
Tutti i problemi con l'identificazione delle persone si applicano ancora, ma questo approccio consente l'identificazione solo per un gruppo di utenti molto più piccolo.
Improbabile che si adatti al decentramento
Se desideri fornire un token in un evento singolo, senza possibilità di eliminazione dei duplicati che verranno identificati in seguito, questo non sarà di alcuna utilità per te. Se (come suggerito in uno dei commenti delle domande) stai cercando di creare un sistema decentralizzato con un account per persona, questo approccio non è strettamente incompatibile con il decentramento, ma dovrebbe avere un tasso molto basso di falsi positivi quando si elimina sospetti duplicati, specialmente se il token è collegato al valore monetario. Un altro problema importante sarebbe la protezione dei dati delle impronte digitali dall'estrazione dal software decentralizzato per l'uso altrove.