Post
Topic
Board Italiano (Italian)
Re: attacco al 51%
by
Wrib
on 06/08/2025, 11:09:25 UTC
Quindi la probabilità che il prossimo blocco sarà ostile è p=0.51. In percentuale 51%.
No state sbagliando. La probabilità che il prossimo blocco sarà ostile è del 100% perché il minatore ostile se ne infischia che la rete onesta ha eventualmente minato un blocco per prima, se ne infischia che la rete onesta ha vinto alla lotteria, lui continua imperterrito a cercare di vincere alla lotteria già vinta dalla rete onesta e a minare il prossimo blocco in sostituzione di quello onesto con l'obiettivo di creare un fork.

Il minatore disonesto impiegherà poco meno di 20 minuti in media per minare il prossimo blocco, la rete onesta invece impiegherà poco più di 20 minuti in media. Nel breve termine si verrà a creare un fork formato da 2 o più catene, una del minatore disonesto e una o più altre della rete onesta. Dato che il minatore disonesto ha un hash rate superiore a quello della rete onesta, riuscirebbe nel lungo termine a mantenere il fork più lungo di quello della rete onesta. Questo anche se la rete onesta fosse capace di cooperare al meglio mantenendo solo una catena concorrente a quella disonesta.


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, contiuna 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) ?




Io parlo invece di un terzo scenario che è un mix tra lo scenario 1 e lo scenario due:

3) SCENARIO TRE. Il "miner ostile 51%" pubblica sempre e subito il blocco vuoto (o con transazioni censurate) che mina. Tale blocco non va in append all'unica blockchain al mondo sostituendo un blocco già esistente generato dalla rete onesta, creando un fork della catena e creando così una blockchain con due rami, come consentito dal protocollo bitcoin.

Nel momento in cui sto scrivendo, l'ultimo blocco della catena è il numero 908855. Nulla vieta a me, miner disonesto, di provare ora a minare nuovamente il blocco numero 908855 inserendo dentro le transazioni che mi piacciono e assegnandomi la coinbase di quel blocco. Se riesco a farlo, il protocollo bitcoin mi da diritto di pubblicare questo secondo blocco 908855 e i nodi di bitcoin sono obbligati a tenere in memoria anche il mio blocco.

In questo scenario la blockchain avrà due blocchi 908855, quello minato da me disonesto e quello minato dal resto della rete. Quale dei due blocchi deve essere considerato ufficiale? Bisogna aspettare e vedere quale dei due fork diventa più lungo. Ovviamente se ho una potenza di calcolo maggiore di tutto il resto della rete il mio fork col tempo tenderà ad essere più lungo.

La risposta è in questa tua frase in grassetto, stai descrivendo lo scenario 2:

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.

Ma nella sotto variante in cui per qualche motivo ti palesi al mondo di blocco in blocco, per coincidenza si presta bene questo pezzo di risposta che ho appena dato a @arulbero:

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  Grin 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.