Longest chain

Catena più lunga

Difficoltà: intermedio

Argomento: tecnologia


DEFINIZIONE

La catena più lunga, longest chain a volte indicata anche come best chain, è un elemento del meccanismo di consenso dei bitcoin. Nel white paper Bitcoin di Satoshi Nakamoto si dice:

La catena più lunga serve come prova che essa proviene dal gruppo che ha la più grande potenza CPU. Fintanto che la maggior parte della potenza di calcolo è controllata da nodi che non cooperano per attaccare la rete, questi genereranno la catena più lunga e supereranno gli utenti malintenzionati ...

La decisione della maggioranza è rappresentata dalla catena più lunga, su cui è stato speso il massimo sforzo di proof-of-work. Se la maggioranza della potenza di calcolo è controllata da nodi onesti, la catena onesta crescerà più velocemente e supererà eventuali catene concorrenti. ...

I nodi considerano sempre come corretta la catena più lunga e continueranno a lavorare per allungarla. Se due nodi trasmettono diverse versioni del blocco successivo contemporaneamente, alcuni nodi possono ricevere l'una o l'altra prima. In tal caso, questi lavorano sul primo che hanno ricevuto, ma salvano l'altra ramificazione nel caso diventi più lunga. Questo impasse sarà risolto quando la proof-of-work successiva viene trovata e una delle ramificazioni diventa più lunga; i nodi che stavano lavorando sull'altra ramificazione a quel punto si sposteranno su quella più lunga.

Inizialmente Satoshi aveva stabilito il consenso sulla catena con il maggior numero di blocchi validi come metrica per determinare la catena più lunga. Però scegliere la catena semplicemente contando i blocchi consente alcuni attacchi estremamente facili da effettuare, e nel 2010 è stato introdotto il calcolo del ChainWork per determinare la catena più lunga.

Il ChainWork è uguale alla somma del BlockWork dei suoi blocchi, ovvero al valore cumulativo della proof of work. Il BlockWork è il numero medio di hash che si prevede siano necessari da calcolare per generare un blocco data una certa difficulty (quindi è diverso dalla difficulty ma dipende da questa). Siccome la difficulty viene regolata ogni 2016 blocchi (circa ogni 2 settimane), i blocchi minati nell'intervallo di tempo nel quale c'è la stessa difficoltà hanno lo stesso BlockWork. Alla BlockWork si è poi sostituita la BlockProof.


aggiornato il 2022-05-03