Lesson 16

Riflessioni su: "Non fidarti, Verifica!"

" Ora per le prove", disse il re, " e poi la sentenza "
Read by Guy Swann.

Bitcoin mira a sostituire, o almeno fornire un’alternativa, alla moneta convenzionale. La moneta convenzionale è vincolata a una autorità centralizzata, non importa se stiamo parlando di moneta a corso legale come negli Stati Uniti per il dollaro o denaro di un monopoli moderno come i V-Bucks di Fortnite. In entrambi gli esempi, sei tenuto a fidarti dell’autorità centrale per emettere, gestire e far circolare i tuoi soldi. Bitcoin scioglie questo limite e il problema principale che il Bitcoin risolve è il problema della fiducia.

“Il problema principale con la valuta convenzionale è tutta la fiducia che è necessario per farlo funzionare. […] Quello che serve è un sistema di pagamento ellettronico basato su prove crittografiche invece che sulla fiducia” Satoshi

Bitcoin risolve il problema della fiducia essendo completamente decentralizzato, senza server centrale o entità di cui sia necessario avere fiducia. Non solo terze parti di cui sia necessario assumere un comportamento onesto ma qualsiasi entità che faccia parte del sistema. Quando non c’è un’autorità centrale, semplicemente non c’è nessuno di cui ci si debba per forza fidare. Il decentramento completo rappresenta qui la principale innovazione. È la radice della resilienza di Bitcoin, il motivo per cui è ancora vivo. La decentralizzazione è anche il motivo per cui abbiamo mining, i nodi, i portafogli hardware e sì, la blockchain. L’unica cosa in cui è necessario avere “fiducia” è che la nostra comprensione della matematica e della fisica non sia totalmente sbagliata e che la maggioranza dei minatori agisca
in modo onesto (il che sono portati a fare dagli incentivi).

Mentre il mondo normale opera sotto il presupposto di “fidati, ma verifica” Bitcoin opera sotto il presupposto di “non fidarti, verifica”. Satoshi ha chiarito l’importanza della rimozione della fiducia sia nell’introduzione che nella conclusione del Bitcoin whitepaper.

“Conclusione: abbiamo proposto un sistema per le transazioni elettroniche che non si basa sulla fiducia.” Satoshi Nakamoto

Notare che il “non basarsi sulla fiducia” viene utilizzato in un contesto molto specifico qui. Parliamo di terze parti fidate, ovvero altre entità di cui ti fidi per produrre, conservare e processare i tuoi pagamenti. Si presume, per esempio, che puoi fidarti del tuo computer.

Come ha mostrato Ken Thompson nella sua conferenza al Premio Turing, la fiducia è un fattore estremamente complicato nel mondo computazionale. Quando si esegue un programma, devi fidarti di tutti i tipi di software (e hardware) che, in teoria, potrebbe alterare il programma che stai tentando di eseguire in modo dannoso. Come Thompson ha riassunto nelle sue Reflections on Trusting Trust: “La morale è evidente. Non puoi fidarti di un codice che non hai totalmente creato tu stesso.”

Thompson ha dimostrato che anche se hai accesso al codice sorgente, il tuo compilatore — o qualsiasi altro programma ausigliario di gestione del programma stesso o qualsiasi componente hardware — potrebbe essere compromesso e il rilevamento di questa backdoor sarebbe molto difficile. Quindi, in pratica, un sistema veramente senza fiducia non può esistere. Dovresti creare tutto il tuo software e tutto il tuo hardware (assemblatori, compilatori, linker, ecc.) da zero, senza l’ausilio di qualsiasi software esterno o macchinario assistito da software.

“Se desideri fare una torta di mele da zero, devi prima inventare l’universo. “ Carl Sagan

Lo stratagemma di Ken Thompson è particolarmente ingegnoso ed è molto difficile trovare la backdoor, diamo una rapida occhiata ad un’altra backdoor difficile da rilevare che funziona senza modificare alcun software. I ricercatori hanno trovato un modo per compromettere l’hardware critico per la sicurezza, alterando la polarità delle impurità del silicio. Semplicemente modificando le proprietà fisiche di sostanze di cui sono fatti i chip dei computer, sono stati in grado di compromettere un file generatore di numeri casuali crittograficamente sicuro. Siccome questa alterazione non può essere rilevata, la backdoor non può essere individuata da un’ispezione ottica, che è uno dei più importanti meccanismi di rilevamento delle manomissioni per i chip come questi.

Trojan hardware invisibili a livello di dopante di Becker, Regazzoni, Paar, Burleson

Sembra angosciante? Bene, anche se tu fossi in grado di costruire tutto da zero, dovresti comunque fidarti della matematica sottostante. tu dovresti fidarti che la secp256k1 è una curva ellittica senza backdoor. Sì, è possibile inserire backdoor dannose nella matematica alla base delle funzioni crittografiche e questo ha già accaduto almeno una volta. Ci sono buone ragioni per essere paranoici e il fatto che tutto, dal tuo hardware, al tuo software, alle curve ellittiche utilizzate possono avere [backdoor] sono alcune di esse.

“Non fidarti. Verifica.”

Gli esempi precedenti dovrebbero illustrare che il computing trustless è utopico. Bitcoin è probabilmente l’unico sistema che si avvicina di più a questa utopia, ma ancora, è ad affidamento ridotto — mira a rimuovere la fiducia ove possibile. Comunque, la catena delle cose di cui ti devi fidare non ha fine. Dovrai anche fidarti che il calcolo richiede energia, che P non è uguale a NP, e che sei effettivamente inserito in una realtà e non imprigionato in una simulazione posta in atto da malintenzionati.

Gli sviluppatori stanno lavorando a strumenti e procedure per ridurre al minimo i residui di necessità fiducia incondizionata ancora oltre. Ad esempio, gli sviluppatori di Bitcoin hanno creato Gitian, che è un metodo di distribuzione del software per creare compilazioni deterministiche del software. L’idea è che se più sviluppatori sono in grado di riprodurre binari identici, la possibilità di manomissioni dannose è ridotta. Le Backdoor fantasiose non sono l’unico vettore di attacco. Il semplice ricatto o l’estorsione sono anche loro reali minacce. Come anche nel protocollo principale, anche per questo tipo di minacce, la decentralizzazione è utilizzata per ridurre al minimimo la fiducia.

Sono stati compiuti vari sforzi per migliorare il problema dell’uovo e della gallina insito nell’[auto-attivazione][bootstrap] che Ken Thompson ha illusrato in modo così brillante. Uno di questi sforzi è Guix (pronunciato geeks), che usa gestione dei pacchetti software dichiarata funzionalmente che è stata concepita per ottenere compilazioni di programma riproducibili bit per bit. Il risultato è che non hai più la necessità di fidarti di qualsiasi server che fornisce software, perché puoi verificare che il binario da questo distribuito non è stato manomesso, ricostruendo tale binario da zero. Recentemente, una richiesta di integrazione per integrare Guix nei processi di compilazione del software principale del sistema Bitcoin è stata accettata.

Quale è venuto prima, la gallina o l'uovo?

Fortunatamente, Bitcoin non si basa su un singolo algoritmo o componente hardware. Uno degli effetti del decentramento radicale di Bitcoin è un modello di sicurezza distribuito. Sebbene le backdoor descritte sopra non siano da non prendere alla leggera, è improbabile che ogni portafoglio software, ogni portafoglio hardware, ogni libreria crittografica, ogni implementazione del nodo di rete e ogni compilatore di ogni linguaggio possano essere compromesse. E’ teoricamente possibile, ma anche altamente improbabile.

Tieni presente che puoi generare una chiave privata senza fare affidamento su alcun hardware o software computazionale. Puoi lanciare una moneta un paio di volte, anche se questa fonte di casualità potrebbe non essere sufficiente a causa delle caratteristiche della moneta o del tuo stile di lancio. C’è un motivo per cui protocolli di archiviazione come Glacier consigliano di utilizzare dadi da casinò come una di due sorgenti di entropia.

Bitcoin mi ha costretto a riflettere su cosa significhi non fidarsi di nessuno. Ha aumentato la mia consapevolezza del problema del bootstrap e dell’implicita catena di fiducia nello sviluppo e nell’esecuzione del software. Ha anche sollevato il mio livello di consapevolezza sui molti modi in cui software e hardware possono essere compromessi.

Bitcoin mi ha insegnato a non fidarmi, ma a verificare tutto.


    Down the Rabbit Hole