La famosa app che ti traccia il virus. Col grafene. Quantistico. Della AI. Perchè non funzionerà

DI URIEL FANELLI

boseburo.ddns.net/main/public

L’articolo che segue, di Uriel Fanelli, non è linkabile direttamente, fa parte di una chat piuttosto estesa a questo indirizzo:
https://boseburo.ddns.net/main/public
E’ interessante perchè dimostra, tecnicamente, che una app che traccia i movimenti delle persone è inutile ai fini del contenimento dell’epidemia. Essa ha probabilmente altri scopi .

Si fa, fin dall’inizio della pandemia di cattiva sanita’, un uso perlomeno peloso della questione del tracciamento delle persone come metodo preventivo dell’epidemia. E su questo hanno parlato tutti, ma proprio tutti, tranne i tecnologi coinvolti. Che i tecnologi vengano zittiti e’ normale in un mondo postfascista ove si crede ancora alle fandonie di Gentile e Croce, ma siccome mettermi a tacere non e’ semplice, adesso dico la mia.

Bene. Supponiamo di farlo. Domani mi chiamano e mi dicono “fai la app che traccia gli utenti 24/7, in modo che quando succede che uno si ammala noi andiamo a mettere in quarantena preventiva gli altri”. Aha. A dirlo, sembra semplice. Andiamo a fare breakdown di questa “specifica”.

Allora, parliamo di capacita’, senno’ sembra che lavoriamo per INPS. Quante di queste app vogliamo avere? I Koreani del sud, quelli buoni dicono di averlo fatto a tappeto, perche’ loro non si fanno il problema della privacy e sono buoni cittadini che si lasciano spiare.

Ok. Ma non tutti hanno il cellulare. O meglio: l’Italia e’ stata il paese dei record, che per primo ha raggiunto un numero di SIM superiore al numero di abitanti. Ma voglio aiutare chi sostiene che sia fattibile, diciamo pure di usare 30 milioni di persone. Meta’ della popolazione. (Andare sotto ha poco senso: se A contagia B, o siamo a conoscenza di A, o di B, o non sappiamo nulla di nulla).

Bene.

Si tratta di raccogliere un logpoint con la posizione del cellulare. Ogni quanto dobbiamo prendere la posizione? Beh, facciamo pure un minuto. (ovviamente abbiamo un GPS perfetto che funziona anche indoor: Altrimenti uno sale la scala mobile nella metro , e io perdo tutti quelli vicini a lui.)

Allora, se spediamo il logpoint immediatamente, sono 30 milioni di logpoint al minuto, che fa 500.000 transazioni per secondo. Il nostro API gateway di backend dovrebbe essere dimensionato un bel pochino meglio del server di INPS. Ma diciamo che i dati li inviamo OGNI ORA: li accumuliamo sul cellulare e li inviamo ogni ora. Aha. Siamo a 8334 TPS. Piu’ sostenibile. Ma la quantita’ di logpoint e l’ I/O cambiano di poco. Storage.

Per quanto dobbiamo tenere i dati, cioe’ per quanto dobbiamo sorvegliare una persona? Abbiamo detto, se non sbaglio, 12 giorni di “asintomaticita’ intettiva”. Cominciamo ad avere molti logpoint, 518.400.000.000. Non e’ impossibile, perche’ noi siamo amanti di Teradata, Cloudera&co. Se usiamo le istruzioni dell’ ars toscano sono 14, ma la quantita’ di dati cambia poco

Di comprare l’hardware e di montare una cosa da zero ce lo sognamo, perche’ per avere l’hardware , montarlo, avere energia, UPS, rete, raffreddamento e tutto occorrono settimane, se non mesi. Abbandonata l’opzione green field allora dobbiamo passare ad usare qualcosa di esistente.

Quindi, dobbiamo chiederci a chi vendiamo i dati. Diciamo pure che una telco locale abbia tutto l’hardware che serve e lo affittiamo a loro. Bene. (Altrimenti dovremo rivolgerci ad un tenant di Azure, Amazon, Google, etc. Mi suona un campanellino.)

Benissimo. Adesso che sappiamo dove metterlo , dobbiamo scrivere la logica di questa cosa. Allora, il nostro job dovrebbe:

Per una persona che si e’ ammalata (IMSI,MSISDN,whatever).
Andare indietro e cercare tutti quelli con cui e’ stato in contatto.

Prima domanda: che cos’e’ il “contatto”.

Usiamo sempre la definizione di ARS toscana.

Se prendiamo tutti quelli che sono passati a meno di due metri per 15 minuti (supponiamo che il GPS prenda anche in metropolitana , indoor al lavoro, e praticamente ovunque. E che abbia la precisione di un metro. Ammazza che satellite) , se questo e’ entrato nella metropolitana per 12 giorni di fila (diciamo 10 perche’ c’e’ un weekend di mezzo), siamo fottuti. E se troviamo uno che e’ andato a lavorare, la sua azienda va fermata? E’ da considerarsi “contatto”: secondo la definizione, e’ stato in un ambiente chiuso con lui, dice ARS toscana.La cosa comincia ad essere complicatina, eh?

O meglio, no: se siamo all’inizio dell’infezione, e abbiamo una decina di casi, si fa in fretta. Se siamo in Italia e ne abbiamo gia’ piu’ di centomila, e li mandiamo a lavorare, la pubblica amministrazione avrebbe avuto milioni e milioni di persone da mettere in quarantena preventiva.
In alternativa, dovrebbero fare il tampone. Aha. Peccato che 2 o 3 milioni di tamponi non ci siano: quarantena e basta.

Quindi ok, aggiungiamo alla nostra APP un allarme , che ti dice “sei stato selezionato tra i sospetti di infezione, perche’ hai incrociato uno che aveva l’infezione. Mettiti a casa e non azzardarti ad uscire”.

Non sono un sociologo o uno psicologo, quindi non voglio sapere cosa farebbero questi milioni di persone che ricevono questo avviso.

Adesso pero’ abbiamo un problemino: 12, 14 giorni di tempo. Un tizio ne ha contagiato un altro, che dopo un paio di giorni diventa infettivo. Quindi, se sono passati 4 giorni, dobbiamo avere un altro step: non solo tutti quelli che hanno incontrato Tizio, ma tutti quelli che hanno incontrato quelli che hanno incontrato tizio.

Se siamo all’inizio della pandemia, e abbiamo decine di casi, con qualche migliaio di quarantene volontarie siamo a posto. Se siamo gia’ al punto da averne centomila, cosi’ facendo otteniamo un andamento mediamente esponenziale. Il che non deve stupirci, perche’ non abbiamo pensato una cosa molto semplice: STIAMO SCRIVENDO UNA SIMULAZIONE DELLA PANDEMIA. E se il contagio procede in maniera esponenziale, l’algoritmo tira fuori un numero esponenzialmente crescente di nomi.

Bene. Allora diamo le specifiche ai nostri esperti di spark, e abbiamo una cosa di questo tipo.

Per ogni infetto (IMSI, MSISDN , whatever)
Cerca tutti quelli che sono stati in contatto con lui, negli scorsi 12 giorni, a meno di due metri e per piu’ di 15 minuti, OPPURE quelli che sono stati in ambiente chiuso con lui per tempo piu’ lunghi anche se a piu’ di due metri).
Per ogni sospetto, calcola quanto tempo fa e’ avvenuto il contatto , dividilo per due giorni ottenendo un fattore di ricorsione n.
Itera l’algoritmo n volte per ogni sospetto di livello n.

Ora, come cresce questo numero?Beh, dipendera’ dal numero medio di persone incontrate e dal tempo medio che e’ passato , e blablabla. Ma perche’ lo stiamo calcolando? la formula l’abbiamo gia’, ed e’ la solita esponenziale con un R0 di 2.5. Stiamo scrivendo una simulazione dell’epidemia, giusto? Quindi sappiamo gia’ come crescera’ questo numero. Non abbiamo bisogno di prove dove basta pensare.

Quindi, i numeri della nostra simulazione crescono COME i numeri dell’epidemia.
Ma se siamo gia’ nella situazione attuale, con centinaia di migliaia di persone infette, anche affidando alla APP il compito di allertare le persone infette di rimanere in casa in quarantena (e quindi NON uscire piu’ nemmeno per fare la spesa o andare a lavorare) , in modo da non ingolfare la pubblica amministrazione, nel corso di 12, 14 giorni andremmo ad allertare milioni di persone.

Ed ecco che il nostro algoritmo diventa inutilmente complesso, oneroso, e fa un uso spropositato di dati personali.

Perche’ dico inutilmente oneroso? Perche’ con cosi’ tanti infetti, per fare la stessa cosa sarebbe possibile calcolare , senza trattenere i dati degli utenti, i luoghi ove avvengono i contagi, e chiudere tutti i posti dello stesso tipo.

Soltanto nel caso in cui si parta da pochissimi casi ha senso una app del genere.

E anche in questo caso, adesso c’e’ un piccolo problema. Perche’ se i casi sono poche decine, abbiamo una prevalenza bassa. E per fermare una prevalenza bassa, 30 milioni di cellulari NON bastano. Basta usare la formula di stima a campione per capire che se vogliamo intercettare 10,100 casi su 60 milioni, il “campione” della nostra stima diventa catastroficamente alto, e in pratica dobbiamo tracciare TUTTI, per TUTTO il tempo.

Ricapitoliamo: perche’ la strategia funzioni e noi riusciamo a tenere la vita cosi’ com’e’, fermando SOLO i malati, occorre che:

Si arrivi all’ INIZIO della pandemia.
Si traccino TUTTI i cittadini, non solo meta’ o la maggior parte.
Le persone si isolino anche a casa (ma se sono poche le portiamo in ospedale, ha senso).

Quindi funziona nel caso della Korea del Sud. Che probabilmente aveva gia’ costruito il sistema da PRIMA che il contagio iniziasse: per programmare cose , creare API gateway, eccetera, serve , avendo dei programmatori eroici e l’infrastruttura scalabile e lo storage fatti, un paio di settimane, forse tre. I coreani probabilmente si sono messi al lavoro appena i cinesi hanno denunciato il problema.

Se si arriva OGGI in Europa, non si puo’ fare quanto sopra, perche’ arriviamo tardi, e allora esiste un algoritmo di gran lunga piu’ efficace, cioe’ un metodo “particellare” simile a quello in uso per il calcolo di fluidi.

Si usa un numero piu’ basso di cellulari.
Si osserva in quali luoghi i malati hanno avuto i contatti sospetti.
Si chiudono i luoghi in questione, e tutti i luoghi dello stesso tipo. (o li si disciplina come si fa coi supermarket)

Questo metodo e’ computazionalmente piu’ semplice, richiede meno persone tracciate, NON richiede un uso “a tappeto” dei PII (stiamo identificando luoghi) e specialmente segnala molto bene personale infetto negli ospedali, case di riposo infette, ed altri focolai.

Esattamente quello che NON si vuole sapere. Sarebbe utile saperlo, ma si preferisce usare un approccio che ormai e’ troppo tardi per usare efficacemente.

Non sono un fanatico delle teorie del complotto, ma proporre ORA il tracciamento e’ solo, secondo me, un tentativo di cambiare l’attitudine delle persone verso il tracciamento. “Essere tracciati oggi e’ un bene”, ci dicono.

Uriel Fanelli

Fonte: https://boseburo.ddns.net/main/public

aprile 2020

Pubblicato da Davide

Precedente La Camera Civile degli Avvocati pratesi chiede l’annullamento del DPCM del 10 aprile: “E’ illegittimo”
Prossimo Privacy nell’era del coronavirus: intervista a Edward Snowden