L'ordine con cui ogni parte sceglie i suoi beni determina con quali beni finirà. Fissare quell'ordine in modo dimostrabilmente neutrale è quindi critico. Un sorteggio manuale — un biglietto da un'urna — funziona, ma il suo valore probatorio dipende interamente da chi era presente e da come il momento è stato documentato. Un sorteggio crittograficamente verificabile risolve il problema trasformando la neutralità in qualcosa che può essere verificato matematicamente a posteriori.
Il problema del sorteggio manuale
Un sorteggio manuale davanti a un notaio o cancelliere è giuridicamente valido, ma lascia una traccia povera. Se mesi dopo una parte afferma che il sorteggio non è stato corretto, l'unica difesa è testimoniale: i presenti devono ricordare e dichiarare quanto accaduto. La memoria è fragile e i testimoni non sono sempre disponibili. Un sorteggio verificabile, invece, lascia una traccia matematica che qualsiasi terzo può ricontrollare anni dopo.
Cos'è HMAC-SHA256
HMAC-SHA256 è una funzione crittografica che combina un seme (un numero casuale) con un messaggio (i dati di input del sorteggio) e produce un hash deterministico di 256 bit. Due proprietà chiave: dato lo stesso seme e messaggio, il risultato è sempre lo stesso (riproducibile); ed è computazionalmente impossibile prevedere il risultato senza conoscere il seme, o alterarlo senza che si noti.
Come si articola un sorteggio verificabile
- Prima del sorteggio si fissa l'insieme delle parti (con il loro identificativo) e la data-ora del sorteggio. Tali dati formano il messaggio.
- Si genera un seme casuale di 256 bit e si pubblica il suo hash (commitment) a tutte le parti.
- Al momento del sorteggio si pubblica il seme originale. Ogni parte può verificare che coincida con il commitment precedente.
- Si calcola HMAC-SHA256(seme, messaggio). Il risultato è un hash di 256 bit.
- Tale hash si usa come input deterministico di un algoritmo di mescolamento (Fisher-Yates, ad esempio) che produce l'ordine definitivo delle parti.
- Tutto viene pubblicato: seme, messaggio, hash e ordine risultante. Qualsiasi terzo può ricalcolare e verificare.
Riproducibilità: il vero valore probatorio
La differenza chiave è questa: se due anni dopo una parte impugna il sorteggio, basta prendere i dati pubblicati (seme, messaggio), applicare lo stesso algoritmo e verificare se il risultato coincide. Se coincide, il sorteggio è indiscutibile. Altrimenti, è dimostrabile la manipolazione. Non c'è bisogno di chiamare testimoni né di ricostruire il momento: la verifica è matematica.
Applicabilità reale
Questa tecnica è standard nelle applicazioni dove la verificabilità è critica: lotterie, assegnazioni accademiche, sorteggi amministrativi. Trasferirla al campo della divisione è naturale e, a nostro avviso, dovrebbe diventare prassi standard quando il procedimento è gestito digitalmente. Lo sforzo aggiuntivo per implementarla bene è minimo; la robustezza probatoria che aggiunge, enorme.