ELI5

ELI5 · Parte 5 di 7

Chi può leggerlo, e cosa resta privato

A volte non vuoi dimostrare qualcosa al mondo intero, ma solo a poche persone. I coautori di una scoperta che non sei ancora pronto ad annunciare. Le parti di un contratto riservato. Un amico a cui affidi una ricetta segreta. Vuoi comunque il timestamp permanente e a prova di manomissione che ti dà una blockchain. Soltanto, non vuoi che degli sconosciuti leggano di nascosto.

Le prove sigillate di Label 309 risolvono proprio questo. Chiudi a chiave il contenuto in modo che solo le persone che scegli possano aprirlo, e intanto ancori comunque sul registro pubblico un record con tanto di timestamp. Il dubbio che sorge spontaneo è: ma è un registro pubblico, chiunque può sbirciare. Quindi, cosa vede davvero?

La risposta onesta è: sorprendentemente poco. Ma non niente, e Label 309 ci tiene a essere preciso su questa differenza.

Immagina una fila di cassette chiuse a chiave

Immagina di mettere il tuo messaggio sigillato in una parete di cassette di sicurezza davanti a cui tutti possono passare. Su quella parete c'è una fila di piccole cassette chiuse a chiave, tutte uguali, una per ogni persona a cui stai inviando. Ogni cassetta custodisce una chiave che apre lo stesso messaggio, ma può essere aperta soltanto dalla chiave privata di una persona ben precisa.

Un passante vede la parete. Vede che c'è una fila di cassette. Può perfino contarle. Quello che non può fare è aprirne una, capire quale chiave apra quale, o leggere una sola parola di ciò che c'è dentro.

È quasi esattamente così che funziona la sigillatura in Label 309.

Cosa può vedere uno sconosciuto

  • Che qualcosa è stato sigillato. Il record segnala apertamente di portare con sé contenuto chiuso a chiave, anziché in chiaro. (Un osservatore può perfino capire se hai usato la chiusura ordinaria o quella sicura contro i computer quantistici, ma nulla di più.)
  • Il timestamp, cioè il momento in cui la rete ha riconosciuto l'esistenza del record, preciso al secondo. È proprio questo lo scopo: è pensato per essere pubblico.
  • L'impronta del contenuto, lo stesso codice a senso unico di una prova di esistenza ordinaria. Non rivela nulla del contenuto stesso e non può essere ricondotta a esso.
  • All'incirca quanti sono i destinatari, cioè il numero di cassette chiuse a chiave. È l'unica cosa che trapela, e ci torniamo tra poco.

Cosa resta nascosto

  • Il contenuto vero e proprio. Non sta mai sul registro: sul registro ci sono solo la sua impronta e le cassette chiuse a chiave, mentre il file cifrato vive off-chain (fuori dalla blockchain). Senza una delle chiavi private corrispondenti, il contenuto è soltanto rumore.
  • Chi sono i destinatari. Label 309 non mette il nome né la chiave pubblica di alcun destinatario in nessun punto del record. Non c'è un campo "a:" da leggere. Un destinatario scopre che un messaggio è suo solo provando in silenzio la propria chiave su ogni cassetta, finché una non si apre. (Una precisazione onesta: se un osservatore possiede già l'indirizzo pubblico esatto di qualcuno che sospetta, la chiusura classica X25519 non glielo conferma comunque, ma la chiusura post-quantistica predefinita non offre quella particolare promessa. Vedi l'avvertenza più sotto.)
  • Chi l'ha inviato, se scegli di non firmare. In Label 309 firmare la propria paternità è sempre facoltativo. Tralasciala e il record non porta con sé nulla che lo ricolleghi a te: ogni cassetta contiene solo materiale crittografico nuovo e monouso, che non punta a nessuno.

E due protezioni più sottili contano altrettanto:

  • I destinatari non possono vedersi tra loro. Aprire la tua cassetta non ti dice nulla su quella di nessun altro. Non puoi scoprire chi altro è stato incluso, e gli altri non possono scoprire di te.
  • L'ordine è rimescolato. Prima della pubblicazione, le cassette vengono mescolate in ordine casuale. Così nemmeno la posizione di una cassetta (prima, ultima) lascia trapelare un indizio su chi sia il destinatario "principale" o su come sia disposto il gruppo.

L'unica avvertenza onesta

Il numero è visibile. Uno sconosciuto non può capire chi siano i tuoi destinatari, ma può contare le cassette e scoprire quanti sono. Per la maggior parte degli usi è innocuo: tre coautori, le due parti di un contratto. Ma se persino il numero è delicato, puoi attenuarlo: aggiungi qualche cassetta in più come riempimento, oppure spezza l'invio in record separati. Label 309 non nasconde il numero al posto tuo, perciò quando conta, è una mossa che spetta a te.

Ancora una precisazione sul nascondere per chi è una cassetta. La chiusura classica X25519 è dimostrabilmente "riservata sulla chiave": persino un osservatore che ha in mano una lista degli indirizzi pubblici dei presunti destinatari non può verificare quale cassetta, se mai ce n'è una, sia indirizzata a uno di loro. La chiusura post-quantistica predefinita (X-Wing) nasconde le stesse cose a uno sconosciuto qualunque, ma Label 309 non rivendica per essa quella garanzia più forte: contro un avversario che ha già le chiavi pubbliche esatte dei tuoi presunti destinatari, solo la chiusura classica promette di sventare la verifica. Se è proprio questa la minaccia che ti riguarda, scegli le chiavi classiche age1… per il sigillo; altrimenti la scelta giusta è la predefinita post-quantistica.

Altre due precisazioni, già che ci teniamo a essere onesti fino in fondo. Il timestamp è esatto al secondo, quindi se a essere delicata è la sola tempistica, questo di per sé è una vera esposizione. E il record non può nascondere quale wallet ha pagato la transazione Cardano: quel dato vive nella transazione stessa, fuori dal record sigillato, perciò chi ha bisogno di nasconderlo deve gestirlo a livello di wallet.

Vale anche la pena ricordare che chiunque a cui decidi di dare una chiave può leggere il messaggio per tutto il tempo in cui il contenuto conservato esiste. La sigillatura ti protegge dal mondo, non dalle persone di cui hai scelto di fidarti.

Privacy robusta, una piccola perdita, detta senza giri di parole

La sigillatura di Label 309 nasconde il contenuto, chi sono i destinatari e (se non firmi) perfino te. L'unica cosa che chi osserva la catena apprende con certezza è all'incirca quante persone hai scelto come destinatari. L'unica precisazione: contro un avversario che possiede già la chiave pubblica esatta di un presunto destinatario, la garanzia più forte del "non può nemmeno confermare che sia lui" è rivendicata solo per la chiusura classica X25519, non per la predefinita post-quantistica. Per la trattazione completa, vedi il modello di sicurezza.