Ho seguito la lezione di Rasetto e ho un paio di dubbi, vi sarei grato se voleste aiutarmi:
1) ho capito che la time chain, per una eventualità remota, può dividersi in due segmenti; ciò avviene quando una parte della rete valida il blocco A e l'altra parte della rete valida il blocco B; in base alla velocità di propagazione, si creano due cluster, uno che "allunga" il segmento che parte da A e uno che "allunga" il segmento che parte da B; in qualche modo poi uno dei due vince sull'altro.
Immaginiamo che il tutto avvenga all'altezza del blocco 100.000.
Domanda: ma allora per un dato tempo esistono due blocchi validi, uno con numero progressivo 100.000-A e uno con numero progressivo 100.00-B?
2) come faccio ad accorgermi che un blocco sia in un segmento parallelo?
Se ho capito bene provo a risponderti (correggettemi se sbaglio):
L'eventualità non è così remota, si creano e si scartano sovente blocchi orfani (puoi cercare "bitcoin orphan block rate" per approfondire).
Si tratta di un fenomeno dovuto alla latenza di rete, un miner mina per primo il blocco A (che è il 100mila +1) un altro miner mina più o meno nello stesso istante (quando gli istanti sono abbastanza vicini da rendere la latenza di rete non trascurabile) un blocco B (che è il 100 mila +1 pure lui) ed entrambi i nodi annunciano alla rete che hanno trovato il blocco 100mila +1. Alcuni nodi riceveranno prima il blocco A altri riceveranno prima il blocco B, chi riceve per primo A considera valido A chi riceve per primo B considera valido B, i nodi hanno la stessa quantità di lavoro cumulativa essendo figli della stessa difficoltà del blocco 100 mila.
Alcuni miner mineranno il blocco 100mila +2 a partire da A altri miner mineranno il blocco 100mila + 2 a partire da B.
Il primo miner che trova un blocco lo propaga. Mettiamo che sia A1 minato a partire da A, viene propagato a tutti il nuovo nodo A1, chi già stava su A lo aggiunge come sempre, chi aveva considerato per buono B nota che A1 ha più lavoro cumulato di B, deriva da un'altro ramo e fa quello che viene chiamato "reorg" cioè scarta il ramo con meno lavoro e lo sostituisce con quello con più lavoro (ovvero scarta il nodo B e al suo posto aggancia A, A1).
Ma la sfiga avrebbe potuto continuare e mentre A1 veniva minato con successo grosso modo nello stesso istante un'altro nodo che minava su B avrebbe potuto minare B1. Chi era rimasto su A aggiungeva A1 se lo riceveva per primo, riorgava su B1 se lo riceva per primo, chi era rimasto su B aggiungeva B1 se lo riceveva per primo, riorgava su A1 se lo riceveva per primo.
Per una questione probabilistica, diventa sempre più raro che blocchi su rami paralleli siano minanti "più o meno allo stesso istante" quindi nel giro di pochi nuovi blocchi le probabilità che una di queste catene non abbia ancora chiaramente vinto (fatto sparire per reorg tutte le altre) tende a zero e dopo un numero ragionevole di blocchi (tipicamente 6) si considera irreversibile una transazione (non avverrà un reorg).