Ogni giorno ci fidiamo di qualcuno senza pensarci: della banca che tiene il conto del nostro stipendio, del catasto che registra chi possiede una casa, del notaio che certifica un contratto. La blockchain nasce da una domanda semplice e un po' rivoluzionaria: è possibile tenere un registro affidabile senza dover per forza affidarsi a un unico intermediario?
Corso "Blockchain per nerd" – Lezione 2 di 12
Il registro centrale: come funziona oggi
Quando paghiamo con il bancomat, i soldi non "viaggiano" davvero. Succede una cosa molto più semplice: la nostra banca toglie una cifra dal nostro conto e la banca del negoziante la aggiunge al suo. Tutto si riduce a due righe modificate su due registri, tenuti da soggetti di cui ci fidiamo perché sono controllati dalla legge e dalle autorità.
Questo sistema funziona bene, ma ha alcuni limiti:
- serve un intermediario, che chiede commissioni e può decidere di bloccare un'operazione;
- c'è un punto unico di debolezza: se il registro centrale subisce un guasto, un attacco informatico o una gestione disonesta, il problema riguarda tutti;
- tra Paesi diversi diventa lento: un bonifico internazionale può passare per più banche e richiedere giorni;
- non tutti hanno accesso: nel mondo moltissime persone adulte non hanno un conto bancario.
Il denaro digitale e il problema della "doppia spesa"
Se volessimo creare una moneta puramente digitale, senza banche, ci scontreremmo subito con un ostacolo. Un file digitale si copia all'infinito: posso mandare la stessa foto a cento persone e la foto resta anche a me. Se una moneta fosse solo un file, chi impedirebbe di "spenderla" due volte, mandando la stessa moneta a due negozi diversi?
Questo è il famoso problema della doppia spesa. Con le banconote non esiste: se do una banconota al panettiere, non ce l'ho più. Con il denaro digitale tradizionale lo risolve la banca, che controlla il saldo prima di autorizzare ogni pagamento. Ma senza una banca, chi controlla?
La soluzione: tutti controllano tutto
La risposta della blockchain è quella che abbiamo visto nella cassa comune della prima lezione: il registro lo tengono tutti insieme. Ogni pagamento viene annunciato all'intera rete, migliaia di computer verificano che chi paga abbia davvero quei soldi e non li abbia già spesi, e solo dopo il pagamento viene scritto, in modo definitivo, in tutte le copie del registro.
Se qualcuno prova a spendere due volte la stessa moneta, la rete accetta soltanto il primo dei due pagamenti e scarta il secondo, perché sul registro condiviso quella moneta risulta già spesa. Non serve un arbitro: la regola è uguale per tutti ed è applicata da tutti.
🤓 Per i più curiosi: il problema dei generali bizantini
Gli informatici chiamano questa sfida "problema dei generali bizantini", da un celebre articolo del 1982. Alcuni generali assediano una città e devono decidere insieme se attaccare o ritirarsi, comunicando solo tramite messaggeri; il guaio è che alcuni generali potrebbero essere traditori e mandare messaggi falsi. Come arrivare a una decisione comune e affidabile? Per decenni si è pensato che, in una rete aperta a chiunque, fosse quasi impossibile. Bitcoin, nel 2009, ha proposto una soluzione pratica che vedremo nella lezione 5: rendere costoso partecipare alle decisioni, così che imbrogliare non convenga.
Pubblico o privato? Due famiglie di blockchain
Non tutte le blockchain sono aperte a chiunque. Possiamo dividerle in due grandi famiglie:
- Blockchain pubbliche (o "permissionless", senza permesso): chiunque può leggere il registro, inviare transazioni e partecipare alla verifica. Bitcoin ed Ethereum sono pubbliche. Il vantaggio è la massima apertura; lo svantaggio è che servono meccanismi più pesanti per difendersi da chi vuole imbrogliare.
- Blockchain private o "permissioned" (con permesso): solo soggetti autorizzati, per esempio un gruppo di banche o di aziende, possono scrivere sul registro. Sono più veloci e controllabili, e sono quelle che usano spesso le grandi imprese e le istituzioni finanziarie. In cambio rinunciano in parte all'idea di "nessun padrone".
Molte delle notizie che pubblichiamo su PINET nella sezione Blockchain, come i titoli di Stato digitali o i depositi tokenizzati delle banche, riguardano proprio blockchain del secondo tipo.
Quando serve davvero una blockchain
Una buona domanda da farsi davanti a qualsiasi progetto è: serve davvero una blockchain qui? In genere ha senso quando valgono tutte o quasi queste condizioni:
- più soggetti devono condividere lo stesso registro;
- questi soggetti non si fidano completamente l'uno dell'altro, o non vogliono dipendere da uno solo di loro;
- è importante che i dati scritti non possano essere modificati a posteriori;
- non esiste, o costa troppo, un intermediario di fiducia accettato da tutti.
Se invece c'è un unico soggetto che gestisce i dati e di cui tutti si fidano, per esempio un'azienda che tiene il proprio magazzino, un database tradizionale è quasi sempre più semplice, veloce ed economico.
🤓 Per i più curiosi: il "trilemma" della blockchain
Vitalik Buterin, cofondatore di Ethereum, ha reso popolare l'idea del trilemma: una blockchain vorrebbe essere allo stesso tempo decentralizzata (nessuno la controlla da solo), sicura (difficile da attaccare) e scalabile (capace di gestire tantissime transazioni). Ottenere tutte e tre le cose insieme è molto difficile, e ogni progetto sceglie un compromesso diverso. Ritroveremo questo tema quando parleremo delle reti "layer 2" nella lezione 8.
📌 Ricapitolando
- Oggi i registri importanti (conti, proprietà, contratti) sono tenuti da intermediari di fiducia.
- Una moneta digitale senza banca deve risolvere il problema della doppia spesa.
- La blockchain lo risolve facendo verificare ogni operazione all'intera rete.
- Esistono blockchain pubbliche, aperte a tutti, e private, riservate a soggetti autorizzati.
- Una blockchain serve davvero quando più soggetti che non si fidano devono condividere dati non modificabili.
Nella prossima lezione apriremo il "cofano" e vedremo i due mattoni con cui si costruisce la catena: gli hash e i blocchi.
Il commento di PINET
Il punto di questa lezione è forse il più importante di tutto il corso: la blockchain è una risposta a un problema di fiducia, non una tecnologia da mettere ovunque. Negli anni del grande entusiasmo molte aziende hanno annunciato progetti "su blockchain" che non ne avevano alcun bisogno e che sono stati presto abbandonati. Chi lavora con l'informatica, anche in una piccola impresa, dovrebbe sempre partire dalla domanda giusta: chi deve fidarsi di chi? Se la risposta è "di nessun altro che di noi stessi", probabilmente basta un buon database con dei backup ben fatti.