1. Sistemi Distribuiti e Consistenza
- Sistema AP: Prioritizza la disponibilità (availability) a scapito della consistenza (consistency). Le scritture sono sempre consentite, ma le letture possono non mostrare dati aggiornati durante un partizionamento.
- Eventual Consistency: Adottato in sistemi con poche scritture conflittuali e molte letture. Dopo la risoluzione di un partizionamento, le repliche diventano consistenti entro un certo tempo.
2. Introduzione alle Blockchain
- Transazioni: Le blockchain nascono per trasferire beni in modo sicuro e affidabile senza intermediari. Affrontano fallimenti di nodi, link e attacchi come replay, man-in-the-middle e byzantine.
- Transazioni con/senza Mediatore:
- Con mediatore (es. banche): evita attacchi ma introduce colli di bottiglia.
- Senza mediatore: richiede protocolli per verificare identità, integrità e validità delle transazioni.
3. Criptovalute
- Definizione: Rappresentazione digitale di valore basata sulla crittografia, decentralizzata e senza intermediari.
- Differenze con Moneta Legale:
- Le criptovalute sono create da soluzioni computazionali decentralizzate, mentre la moneta legale è emessa da governi e banche centrali.
- Le transazioni in criptovalute sono più veloci e immutabili.
4. Struttura della Blockchain
- Distributed Ledger: Registro decentralizzato e immutabile di transazioni, organizzato in blocchi collegati tramite hash.
- Funzioni Hash: Utilizzate per garantire l'integrità dei blocchi e dei dati (es. Merkle Tree per verificare le transazioni).
- Autenticazione: Firma digitale e certification authority per autenticare i nodi e garantire l'integrità dei messaggi.
- Validazione delle Transazioni:
- Uso di nonce e timestamp per evitare double spending.
- Proof-of-Work (PoW): Meccanismo computazionalmente costoso per generare blocchi validi e prevenire attacchi.
5. Consenso Distribuito
- Proprietà: Termination, Agreement, Validity, Integrity.
- Algoritmi di Consenso:
- Nakamoto (Bitcoin): Basato su PoW, privilegia la disponibilità. Risolve fork temporanei seguendo la catena più lunga.
- PBFT (Practical Byzantine Fault Tolerance): Tollerante a guasti bizantini, ma meno scalabile e adatto a contesti permissioned.
- Proof-of-Stake (PoS): Alternativa efficiente alla PoW, dove il potere di voto dipende dalla quantità di criptovaluta posseduta.
6. Tipologie di Blockchain
- Permissionless vs. Permissioned:
- Permissionless (es. Bitcoin): Aperta a tutti, senza ruoli definiti.
- Permissioned: Nodi autorizzati con ruoli specifici.
- Public, Private, Consortium: Differiscono in termini di visibilità dei blocchi e partecipazione al consenso.