Blockchain#
La blockchain e' un registro distribuito e immutabile: una struttura dati dove ogni blocco contiene dati e l'hash del blocco precedente, formando una catena in cui modificare un blocco invalida tutti quelli successivi. L'immutabilita' non deriva da un'autorita' centrale ma dalla struttura matematica della chain e dalla distribuzione tra molti nodi indipendenti.
Struttura della Chain#
La blockchain e' costruita in modo che la manomissione di qualsiasi blocco sia computazionalmente evidente. Ogni blocco referenzia l'hash del blocco precedente: questa dipendenza crea la "chain" e rende impossibile modificare un blocco senza ricalcolare tutti i blocchi successivi.
Dev parallel: Come git: ogni commit ha uno SHA calcolato sul contenuto + SHA del commit precedente.
git log --onelinemostra la chain. Se modifichi un commit nel passato (git amend su commit condiviso): tutti i commit successivi hanno SHA diverso, la history diverge, il push viene rifiutato. Il 51% attack e' l'analogo del "force push su main": puoi farlo solo se controlli il repository.
Proof of Work#
Il Proof of Work e' il meccanismo che rende computazionalmente costoso aggiungere un blocco alla chain. Questo costo e' il deterrente economico contro la manomissione: ricalcolare l'intera chain richiede piu' potenza computazionale di quella disponibile all'attaccante.
Smart Contract#
Uno smart contract e' codice eseguito sulla blockchain al verificarsi di condizioni predefinite. L'immutabilita' che rende la blockchain affidabile come registro e' al tempo stesso il suo difetto critico per il software: un bug nel codice di uno smart contract non si puo' correggere dopo il deploy.
Applicazioni Security#
La blockchain offre proprieta' utili in contesti security specifici: immutabilita', trasparenza e assenza di autorita' centrale. Queste proprieta' la rendono adatta a creare audit trail resistenti alla manomissione.
Limiti della Blockchain#
La blockchain non e' una soluzione universale. I suoi limiti strutturali la rendono inadatta a molti casi d'uso dove viene proposta.
Dev parallel: Come git history. Ogni commit referenzia il precedente via SHA. Impossibile modificare la history senza invalidare tutto cio' che viene dopo (tutti i SHA cambiano). Il force push e' il "51% attack" di git: funziona solo se controlli il repository centrale. Il 51% attack su blockchain e' il force push distribuito: funziona solo se controlli piu' della meta' della rete.


