Cerchiamo prima di capire se stiamo parlando della stessa cosa. Nel mio post che hai citato con tutti i calcoli delle probabilità analizzavo due scenari diversi. Prima di fare altri ragionamenti vorrei quindi essere sicuro che stiamo parlando dello stesso scenario. Gli scenari di cui parlavo sono:
1) SCENARIO UNO. Il "miner ostile 51%" pubblica sempre e subito il blocco vuoto (o con transazioni censurate) che mina. Tale blocco va subito in append alla unica blockchain esistente nel mondo. Anche quando i "miner onesti 49" trovano un blocco ovviamente anche questo blocco va in append alla unica blockchain. Dato che il miner ostile è pubblico troverà un blocco in poco meno di 20 minuti e gli altri in poco più di 20, perchè il coefficiente di difficoltà è aggiustato sulla presenza di tutti quanti.
2)SCENARIO DUE. Il "miner ostile 51%" mette su in segreto una mining farm che da sola supera di poco la potenza di calcolo di tutto il mining presente nel mondo. Inizia a minare a testa bassa una nuova chain segreta in parallelo nella quale inserisce TUTTI i blocchi che sta minando cioè SOLTANTO blocchi ostili. L'obiettivo del miner ostile sarà quello di pubblicare al mondo tale catena ostile quando sarà più lunga dell'altra. Il resto del mondo, ignaro della sua presenza, continua a minare la blockchain pubblica nella quale vengono inseriti SOLTANTO blocchi onesti. Qui i tempi sono di poco meno di 10 min per il miner ostile e di 10 min esatti per il resto del mondo, non c'è stato aggiustamento di difficoltà perchè il miner ostile non contribuisce all'hash rate pubblico.
Ora, a scanso di equivoci, senza entrare nel merito di cosa succede nei due casi, ti chiedo, stiamo parlando degli stessi scenari? La tua obiezione appena quotata, si riferisce esattamente ad uno di questi due o ad un terzo scenario ancora diverso (nel caso descrivimelo) ?
Esiste in realtà un solo scenario, e cercherò di spiegare perchè.
Iniziamo dallo scenario 2 (ma con una piccola aggiunta, il ritardo di partenza dell'attaccante rispetto al resto della rete che si quantifica in z blocchi).
Se ho più del 50% di power hash, posso minare di nascosto una catena tutta mia, e pubblicarla quando più mi fa comodo. In questo modo posso modificare gli ultimi k blocchi della blockchain, con k > z.
Ricordo in cosa consiste l'obiettivo di un 51% attack:
sostituire una transazione già effettuata in passato (z blocchi fa) con un'altra per poter fare double spending.
E' questo l'attacco di cui parla Nakamoto ed è l'unico veramente pericoloso (perchè mette in dubbio il concetto di irreversibilità di tutte le transazione della blockchain).
L'obiettivo dell'attaccante (e il pericolo per il resto della rete) non è mai costruire una catena alternativa della blockchain, ma è sostituire solo l'ultimo pezzo con un altro pezzo, aggiustato. E ha convenienza a farlo solo dopo che il ricevente i bitcoin della tx da annullare ha accettato questo pagamento come definitivo (tempo di attesa che si quantifica in z blocchi). In tal modo l'attaccante potrebbe ricevere il prodotto/servizio acquistato (inviato dopo z blocchi di attesa) e rispendere i bitcoin in una successiva transazione.
Lo scenario 1 equivale al 2 in realtà,
in quanto l'attaccante parte da z blocchi più indietro, quindi genera una catena alternativa e solo lui continua ad aggiungere blocchi a quella catena, finchè non diventa più lunga.
Anche se sta pubblicando i suoi blocchi, è solo lui che lavora a quella catena, perchè comunque è indietro rispetto a quella della rete.Solo quando la catena dell'attaccante raggiunge quella della rete anche gli altri miner inizieranno ad aggiungere altri blocchi alla sua catena, esattamente come accadrebbe nello scenario 2 subito dopo che l'attaccante ha pubblicato l'intero pezzo di catena minato di nascosto.
I 2 scenari quindi sono del tutto equivalenti dal punto di vista del calcolo delle probabilità.
Il dato fondamentale qui è che l'obiettivo dell'attaccante non è creare da un certo punto in poi una catena alternativa minata solo da lui che si prolunghi in modo indefinito (questo non è possibile, e forse questo voleva dire bitbollo)
ma il suo obiettivo è solo sostituire un pezzo finito alla parte finale dell'attuale catena e basta, da quel momento in poi la catena viene sviluppata ancora in modo random dal resto della rete ed eventualmente dall'attaccante.
Capisco cosa vuoi dire e mi trovi d'accordo.
Se ci atteniamo alla definizione rigorosa di che cos'è un "attacco 51% double spending", esiste soltanto uno scenario, quello in cui mino a testa bassa una chain alternativa sapendo che a tendere, dopo un tempo ragionevolmente lungo, la mia probabilità di avere una catena più lunga tende a 1. Poi
, che io la tenga segreta o la palesi di blocco in blocco sono due sotto varianti, c'è da dire che se paleso la mia esistenza c'è il rischio che gli altri nodi si organizzino in anticipo per tempo per cambiare il consenso escludendomi dato che sono fortemente sospettato di essere malevolo. Se la pubblico soltanto quando è più lunga, genero più ore o giorni di trambusto prima che si organizzino per fixare con un fork. Io avrei chiamato queste due sotto varianti 51% attack e 101% attack. Nel 51% sono un soggetto noto che ha raggiunto la maggioranza dell'hash power pubblico. Nel 101% sono un soggetto che in segreto ha messo su una mining farm che da sola supera l'hash rate di tutti quanti. Ma ovviamente stiamo facendo pura filosofia teorica

Cambia il fatto che "vengo attenzionato prima in tempo reale", in teoria, poi in pratica una farm così grossa si noterebbe comunque in anticipo. Ma in una shitcoin POW piccolina con poca potenza di calcolo, questa distinzione avrebbe molto senso perchè la farm potrebbe essere segreta senza problemi.
Quello che ho descritto come SCENARIO 1 non è un attacco finalizzato al double spending (un double spending fatto in questo modo ha probabilità che tende a zero di succedere) ma uno spam attack
*, potrei anche farlo con meno del 51% dell'hash power, anche il 20%. In un caso genero il 51% di blocchi vuoti nell'altro il 20%. Creo un costante disservizio minando un po' la credibilità della rete, ma non avverrà mai un double spending.
Forse non l'avevo scritto ma davo per scontato che in questo scenario il miner ostile accetta la blockchain quando ad aggiungere un nuovo blocco sono gli altri 49.
*anzi forse più che spam più simile ad un DOS, non sto riempiendo di dati i blocchi ma sto minando inutili blocchi vuoti