Torna al blog
Tecnologia7 min di lettura

Sorteggi verificabili: perché HMAC-SHA256 supera l'urna

Come funziona un sorteggio crittograficamente verificabile, in cosa si distingue da un sorteggio manuale e perché è il modo più sicuro per fissare l'ordine di scelta in una divisione.

di Equipo Lex Partis

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

  1. Prima del sorteggio si fissa l'insieme delle parti (con il loro identificativo) e la data-ora del sorteggio. Tali dati formano il messaggio.
  2. Si genera un seme casuale di 256 bit e si pubblica il suo hash (commitment) a tutte le parti.
  3. Al momento del sorteggio si pubblica il seme originale. Ogni parte può verificare che coincida con il commitment precedente.
  4. Si calcola HMAC-SHA256(seme, messaggio). Il risultato è un hash di 256 bit.
  5. Tale hash si usa come input deterministico di un algoritmo di mescolamento (Fisher-Yates, ad esempio) che produce l'ordine definitivo delle parti.
  6. 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.

Vuoi applicarlo nella tua prossima procedura?

Lex Partis struttura inventario, preferenze, sorteggio e attribuzione con la tracciabilità che si aspettano i professionisti del diritto.