Ho avuto una reazione strana leggendo i documenti sulla privacy @MidnightNetwork oggi. La parte che mi ha infastidito non era se un valore sia visibile. Era se lo spazio di risposta sia così piccolo che nasconderlo aiuta a malapena.
La mia affermazione è semplice: a Midnight, alcuni dati privati possono fallire prima che la divulgazione avvenga, solo perché il valore è troppo indovinabile.
La ragione a livello di sistema è proprio lì nei documenti. Il modello di privacy di Midnight consente ai costruttori di utilizzare un MerkleTree o un impegno in modo che il valore grezzo non sia mostrato apertamente. Ma i documenti chiariscono anche che i valori indovinati possono comunque essere controllati, e che la casualità del persistentCommit conta di più quando le risposte possibili sono poche. Ciò significa che un voto nascosto, un flag di idoneità o uno stato binario non è protetto solo perché è offerto in superficie pubblica. Se l'insieme di risposte è minuscolo, gli esterni non hanno bisogno di una fuga. Hanno bisogno di una lista ristretta.
Questo cambia il modo in cui leggo la privacy su Midnight. La domanda non è solo "il contratto ha rivelato il valore?" È anche "il valore era abbastanza difficile da indovinare dopo essere stato nascosto?" Questi sono standard diversi, e i dati a piccolo dominio falliscono il secondo molto più velocemente di quanto le persone pensino.
La mia implicazione è diretta: qualsiasi costruttore su @midnightnetwork che tratta i dati a bassa entropia come privati per impostazione predefinita sta progettando una funzione di privacy che può sembrare corretta nel codice e essere comunque debole nella pratica. $NIGHT #night
