Consenso Nakamoto-Bitcoin
Fasi:
- Ogni nuova transazione viene inviata in broadcast a tutti i nodi
- Ogni nodo colleziona le nuove transazioni in un blocco
- Ogni nodo cerca una PoW ("Proof of Work") "difficile" per il proprio blocco
La PoW è il calcolo di un valore (anch'esso un nonce) tale che un hash di blocco+nonce inizi con uno stabilito numero di zeri
- Quando un nodo trova una PoW, invia in broadcast a tutti i nodi il blocco, contenente le transazioni e la PoW
- Un nodo accetta il blocco solo se:
- Tutte le transazioni sono valide
- Le transazioni non sono relative ad un bene già speso
- La PoW è valida. A tale scopo il nodo calcola a sua volta l'hash del blocco, e verifica che abbia lo stesso numero di zeri iniziali
- I nodi manifestano l'accettazione del blocco aggiungendolo alla blockchain all'atto della creazione del blocco successivo, utilizzando l'hash del blocco accettato per creare il prossimo blocco
- Due nodi possono fare concorrentemente il broadcast di blocchi differenti
- Nodi diversi possono ricevere i due broadcast in ordine diverso
- Ciascun nodo lavora sul primo blocco che riceve, ma conserva l’altro ramo
- L’indecisione si risolve quando un ramo diventa più lungo: I nodi che lavorano sul ramo meno lungo lo abbandonano e prosegono a lavorare sulla catena più lunga
- Incentivi: reward per creazione blocco