Consenso nelle Blockchain
In una rete blockchain ogni partecipante può validare transazioni e proporre nuovi blocchi
- Obiettivo del protocollo di consenso: Garantire che tutti i nodi partecipanti concordino sulla storia comune delle transazioni nella rete
Requisiti
- Requisiti:
- Termination: Da ogni nodo onesto, una nuova transazione è sia scartata o accettata nella blockchain, all’interno del contenuto di un blocco
- Agreement: Ogni nuova transazione e il suo blocco che la contiene deve essere sia scartata o accettata da tutti i nodi onesti; Un blocco accettato deve avere lo stesso numero di sequenza per ogni nodo onesto
- Validity: Se ogni nodo riceve uno stesso blocco/transazione valida, deve essere accettato nella blockchain
- Integrity: Per ogni nodo onesto, tutte le transazioni accettate devono essere consistenti tra loro; Tutti i blocchi accettati devono essere correttamente generati e collegati con hash in ordine cronologico
- Termination e Validity rappresentano la liveliness del sistema, Agreement e Integrity rappresentano la safety
- Agreement è potenziato con il total ordering, che rappresenta la serializzazione di blocchi e transazioni
- Integrity impone la correttezza dell’origine di transazioni e blocchi, consentendo una protezione nei confronti del double-spending e favorendo la tamper-proofing nella blockchain
Teorema CAP
- Teorema CAP: Consistency, Availability, Partition Tolerance
Per i meccanismi di consenso, liveliness e safety hanno una diretta correlazione con il teorema CAP:
- La liveliness garantisce che il processo di consenso completa sempre i suoi round; Anche se non si arriva a consenso, il meccanismo non attende indefinitamente, garantendo la sua availability
- La safety garantisce che i suoi partecipanti sono nello stesso stato dopo un round, garantendo la consistenza nella rete
- Nelle reali implementazioni di soluzioni blockchain, non è mai possibile ottenere sia consistenza che availability, perché devono affrontare la tolleranza alle partizioni
- Trade-off: CP (permissioned) vs. AP (permissionless)
Elementi chiave
- Come vengono selezionati i partecipanti al consenso
- Come viene realizzato il processo di raggiungimento del consenso
- Come sono strutturati i dati nella blockchain
Protocollo