Vai al contenuto principale

Il soffitto stocastico: limiti bizantini probabilistici nella scalabilità delle reti

· 8 minuti di lettura
Grande Inquisitore presso Technica Necesse Est
Andrea Chattasbaglio
Laico Chatta Sbagliata
Popolo Fantasma
Laico Popolo Fantasma
Krüsz Prtvoč
Latent Invocation Mangler

Illustrazione in evidenza

Immagina di organizzare una cena. Inviti 10 amici per decidere dove mangiare stasera. Ognuno vota: italiano, thailandese o pizza. Vuoi una decisione equa—quindi dici: “Andremo dove vince la maggioranza”. Ma c’è un colpo di scena: uno dei tuoi ospiti è segretamente un critico gastronomico che odia la pizza e voterà contro di essa a prescindere. Forse addirittura due di loro sono segretamente anti-pizza. Non sai chi.

Nota sulla iterazione scientifica: Questo documento è un registro vivente. Nello spirito della scienza rigorosa, diamo priorità all'accuratezza empirica rispetto alle eredità. Il contenuto può essere eliminato o aggiornato man mano che emergono prove superiori, assicurando che questa risorsa rifletta la nostra comprensione più aggiornata.

E ora, cosa succede se inviti 100 persone? Questo rende la decisione più sicura?

A prima vista, sì. Più voci = più democrazia. Ma cosa succede se anche alcuni di questi 100 sono segretamente anti-pizza? Più ospiti inviti, maggiore è la probabilità che alcuni cattivi attori si insinuino. E quando si tratta di sistemi digitali—come blockchain, reti finanziarie o piattaforme elettorali—la stessa matematica si applica. Più nodi (computer) aggiungi, più è probabile che alcuni siano compromessi. E qui le cose si fanno strane.

Questo non riguarda solo la pizza. Riguarda una legge nascosta della fiducia: aggiungere più nodi non rende sempre i sistemi più sicuri—può addirittura renderli meno affidabili.


Il numero magico: 3f + 1

In informatica, c’è una regola famosa chiamata “3f + 1”. Deriva da qualcosa chiamato tolleranza agli errori bizantini (BFT), un termine elegante per “come assicurarsi che un gruppo di computer concordi su qualcosa anche se alcuni mentono o sono guasti”.

Ecco la regola: Se hai ff attori malvagi (nodi corrotti, hackerati o malevoli), hai bisogno di almeno 3f+13f + 1 nodi totali per raggiungere un accordo affidabile.

Perché? Perché in qualsiasi gruppo, i cattivi attori possono mentire, colludere e confondere tutti. Per sconfiggerli, hai bisogno di nodi onesti sufficienti a superare i mentitori due volte. Pensa a un tribunale: se 3 persone dicono “colpevole” e 2 dicono “innocente”, hai bisogno di un terzo giudice per spezzare il pareggio. Ma se quei 2 innocenti vengono ingannati dai bugiardi, hai bisogno di più giudici onesti per vedere attraverso la frode.

Quindi, se ti aspetti 1 cattivo attore, hai bisogno di almeno 4 nodi.
Se ti aspetti 2 cattivi attori? Hai bisogno di 7.
Se ti aspetti 10? Hai bisogno di 31.

Questa regola funziona perfettamente in teoria. Ma ecco il problema: presuppone che tu sappia quanti sono i cattivi attori.

Nella vita reale? Non lo sai mai.


Il vero nemico: fallimenti casuali

Immagina di gestire una rete con 100 nodi. Pensi: “Siamo al sicuro—abbiamo molto più di 3f + 1”. Ma cosa succede se non sai quanti nodi sono compromessi? E se ogni nodo ha il 5% di probabilità di essere hackerato, mal configurato o gestito da qualcuno che semplicemente non si cura?

Questo non è un attacco mirato. È la vita quotidiana.

Pensa alla batteria del tuo telefono. Non pianifichi che si scarichi—sai semplicemente che col tempo alcune batterie falliscono. Lo stesso vale per i computer. Un server si surriscalda. Qualcuno dimentica di aggiornare il software. Uno sviluppatore fa un refuso. Un hacker trova un sistema vecchio e non patchato.

Questo si chiama affidabilità stocastica—la matematica dei fallimenti casuali. Non si cura delle tue regole. Fa semplicemente girare i dadi.

Quindi, se ogni nodo ha il 5% di probabilità di essere cattivo e hai 100 nodi… qual è la probabilità che più di 33 siano cattivi? Perché se così fosse, la tua regola “3f + 1” si rompe.

Facciamo un esperimento mentale. Lancia una moneta 10 volte. Quante volte ottieni 7 teste? Non troppo raro, giusto? Ora lanciala 100 volte. Quali sono le probabilità di ottenere 55 teste? Ancora possibile. Ora lanciala 1.000 volte. Quali sono le probabilità di ottenere 550 teste? Quasi garantito.

Lo stesso vale per i nodi. Più ne hai, più è probabile che alcuni falliscano—indipendentemente da quanto sei attento.

In effetti, con 100 nodi e un tasso di fallimento del 5%, c’è circa il 37% di probabilità che più di 10 nodi siano cattivi. Ciò significa che il tuo sistema ha bisogno di almeno 31 nodi per essere sicuro—ma sei già oltre quel limite. E con 500 nodi? La probabilità di avere più di 167 nodi cattivi (che rompe la regola 3f+1) supera il 90%.

Non hai risolto la fiducia aggiungendo nodi. L’hai peggiorata.


Il massimo di fiducia: una curva a campana del tradimento

Ecco la verità controintuitiva: la fiducia non aumenta con la scala—raggiunge un picco, poi collassa.

Immagina un grafico. A sinistra, hai 5 nodi. Pochi cattivi attori possibili. Alta fiducia.
A 20 nodi? Ancora buono.
A 50? Sei vicino al picco della fiducia—abbastanza nodi per rilevare le menzogne, non abbastanza per il caos.
A 100? Il numero di cattivi attori comincia a salire rapidamente.
A 500? Sei nella zona pericolosa.

Questo non è una linea retta. È una curva a campana—con la fiducia che raggiunge un “punto ottimale”, poi scende man mano che aggiungi più nodi.

Perché? Perché la probabilità di avere troppi cattivi attori cresce più velocemente della tua capacità di rilevarli.

Pensa a un allarme antincendio. Un sensore? Potrebbe non rilevare una piccola fiamma. Dieci sensori? Ottima copertura. Ma 1.000 sensori? Ora hai falsi allarmi ogni cinque minuti. La gente inizia a ignorarli. Il sistema diventa meno affidabile perché è troppo rumoroso.

Nei sistemi digitali, i “falsi allarmi” sono nodi onesti ignorati perché il sistema è sopraffatto dai cattivi attori. Più nodi ci sono, più diventa difficile capire chi sta mentendo—e più facile per i bugiardi nascondersi in piena vista.


La vera soluzione non sono più nodi—ma nodi migliori

Allora cosa facciamo?

Smettiamo di pensare “più è meglio” e iniziamo a chiederci: Come possiamo rendere ogni nodo più affidabile?

Invece di aggiungere 10.000 nodi a bassa sicurezza, cosa succede se ne avessimo 50 ad alta integrità?

  • Nodi con sicurezza hardware (come chip TPM)
  • Nodi gestiti da istituzioni rispettabili
  • Nodi che richiedono verifica dell’identità
  • Nodi con penalità economiche per comportamenti scorretti (come lo staking)

Questo è il differenza tra un capolinea affollato dove chiunque può stare e un salone VIP con i guardiani.

Nel mondo reale, non risolviamo i problemi di fiducia invitando più persone. Li risolviamo vagliando chi si presenta.

Bitcoin lo fa con il mining: non gli importa quanti minatori ci sono—li obbliga a pagare denaro reale per partecipare. Se cerchi di frodare, perdi il tuo investimento. Questo non riguarda la quantità—ma il costo.

Ethereum 2.0 fa qualcosa di simile con lo staking: blocchi denaro reale per validare le transazioni. Se ti comporti male, il tuo stake viene distrutto.

Questi non sono “più nodi”. Sono nodi migliori. E funzionano perché trasformano la fiducia in qualcosa di misurabile—qualcosa con qualcosa da perdere.


Il pericolo della falsa sicurezza

Qui le cose diventano pericolose: ci viene insegnato a credere che “decentralizzazione = più nodi = più sicuro”.

Ma la decentralizzazione non riguarda i numeri. Riguarda la diversità.

Una rete con 1.000 nodi gestiti dalla stessa azienda nello stesso data center? Non è decentralizzata. È un punto singolo di fallimento con etichette eleganti.

Una rete con 10 nodi, ognuno gestito da persone diverse in paesi diversi, con hardware e software differenti? Questa è decentralizzata.

L’obiettivo non è massimizzare i nodi. È minimizzare i fallimenti correlati—quando molti nodi falliscono per la stessa ragione.

Se ogni nodo esegue lo stesso software, e quel software ha un bug? Boom. 100 nodi giù insieme.

Se ogni nodo è ospitato dallo stesso provider cloud? Boom. 1.000 nodi giù insieme.

Questo non è un problema matematico—è un problema ingegneristico e sociale. La fiducia non si costruisce con la scala. Si costruisce con la diversità, l’accountability e gli incentivi.


Cosa significa questo per te

Non devi capire BFT o modelli stocastici per capirlo.

Pensa al tuo telefono. Non installi 10 diversi antivirus perché “più è meglio”. Ne scegli uno buono. Lo aggiorni. Non fai clic su link sospetti.

Lo stesso vale per i sistemi digitali.

Quando senti “la nostra blockchain ha 10.000 nodi!”—chiediti:

  • Chi li gestisce?
  • Sono diversificati?
  • Hanno qualcosa da perdere se frodano?
  • O sono semplicemente server economici che funzionano in un seminterrato?

La vera domanda non è “Quanti nodi?”
È: “Posso fidarmi di quelli che abbiamo?”

E a volte, la risposta è: Meno. Ma migliori.


Il futuro: la fiducia come scelta progettuale

Siamo a un punto di svolta.

Man mano che i sistemi crescono—dai social media alle reti finanziarie—continuiamo a supporre che la scala risolva la complessità. Ma la matematica non mente.

Più nodi aggiungi, maggiore è la tua probabilità di fallimento. E quando i fallimenti avvengono all’unisono—perché tutti eseguono lo stesso codice, ospitati sullo stesso cloud—collassano come domino.

Il futuro della fiducia non è nelle reti più grandi. È in quelle più intelligenti.

  • Nodi che dimostrano la loro integrità con la crittografia, non solo con i numeri.
  • Sistemi che penalizzano il comportamento scorretto, non solo premiano la partecipazione.
  • Progettazioni che assumono il fallimento come inevitabile—e lo pianificano.

Non abbiamo bisogno di più nodi. Abbiamo bisogno di nodi migliori.

E dobbiamo smettere di fingere che la quantità equivalga alla qualità.

Perché alla fine, la fiducia non è un numero.
È una scelta.

E a volte, la migliore scelta è dire: Basta.