Indipendentemente dal PoW della prova del carico di lavoro, dal PoS della prova dell'equità o dal DPoS della prova delegata dell'equità, finché esiste un problema di consenso, in teoria, gli attacchi del 51% non possono essere evitati. L'attaccante controlla la rete principale attraverso blocchi reversibili del 51%. , risultando in Fiore doppio.

conoscenze di base

Essendo un sistema di archiviazione dati pubblico distribuito e decentralizzato, la blockchain non ha un'organizzazione centrale per la gestione, ma è gestita congiuntamente da nodi distribuiti che utilizzano protocolli crittografici e ciascun nodo mantiene l'intero sistema. La coerenza del registro deve essere garantita attraverso il protocollo di consenso sottostante. Le blockchain hanno usi pratici diversi in diversi scenari di vita reale, come catene pubbliche, catene private e catene di alleanze. Diverse catene utilizzano diversi algoritmi di consenso, come il consenso PoW utilizzato da Bitcoin e il consenso PoW utilizzato da Ethereum. , il DPoS consenso utilizzato da EOS e la sicurezza coinvolta nei diversi algoritmi di consenso è diversa.

Questo articolo descriverà in dettaglio i rischi di attacco presenti nei protocolli di consenso PoW utilizzati da Bitcoin ed Ethereum.

Meccanismo di consenso PoW

Per prima cosa diamo un'occhiata a cos'è il protocollo di consenso PoW.

Dal punto di vista di un sistema di registro decentralizzato, ogni nodo che si unisce al sistema deve tenere un registro completo, ma ogni nodo non può tenere i conti contemporaneamente perché i nodi si trovano in ambienti diversi e ricevono informazioni diverse, pertanto è necessario raggiungere il consenso quale nodo ha il diritto di tenere la contabilità. Le blockchain di Bitcoin ed Ethereum risolvono il problema della coerenza del sistema contabile decentralizzato attraverso la contabilità competitiva, cioè un meccanismo che utilizza la potenza di calcolo di ciascun nodo, cioè la “potenza di calcolo” per competere per i diritti contabili è “minerario”.​

Tuttavia, in un sistema decentralizzato, chi ha il diritto di determinare l’esito della competizione? I sistemi blockchain di Bitcoin ed Ethereum sono realizzati attraverso un meccanismo di consenso chiamato Proof of Work (PoW).

PoW (Proof of Work), ovvero "Proof of Work". In poche parole, PoW è un certificato che conferma che l'estremità lavorativa ha svolto una certa quantità di lavoro. L'estremità di lavoro deve svolgere una certa quantità di lavoro difficile per ottenere un risultato e il verificatore utilizza i risultati per verificare se l'estremità di lavoro ha svolto il lavoro corrispondente.

Nel mining tramite consenso proof-of-work è necessario seguire tre regole:

  • Solo una persona può registrare con successo gli account entro un periodo di tempo

  • Competere per ottenere la titolarità esclusiva della contabilità risolvendo enigmi crittografici (ovvero prove di lavoro)

  • Altri nodi verificano e copiano i risultati contabili

  

Ad esempio, data la stringa "blockchain", il requisito del carico di lavoro che diamo è che possiamo concatenare una stringa di valore intero chiamata nonce dopo questa stringa ed eseguire un'operazione hash SHA256 sulla stringa concatenata Se il risultato hash ottenuto (espresso in formato esadecimale form) inizia con diversi 0, quindi la verifica viene superata. Per raggiungere questo obiettivo di prova del lavoro, dobbiamo incrementare continuamente il valore nonce ed eseguire un'operazione hash SHA256 sulla nuova stringa ottenuta.

Hash (il valore dell'hash precedente, il set di informazioni sul record della transazione) = 29329385BNDH749 Hash (il valore dell'hash precedente, il set di informazioni sul record della transazione, il numero casuale nonce) = 000029329385BNDH749

Ad esempio, l'hash dell'altezza del blocco 512884 in Bitcoin è:

000000000000000000188d44fd53064469b17c3590a0c4df8e90626d11e25a69

La prova di lavoro richiesta per generare questo blocco tramite la contabilità è di 16**18 calcoli hash, ovvero una quantità di calcoli molto elevata.

Attacco al 51%.

Dopo aver introdotto brevemente i semplici principi del confezionamento dei blocchi tramite contabilità e PoW, torniamo alla nostra domanda: cos'è un attacco del 51% e cos'è un attacco a doppia spesa?

Un attacco double-spending si riferisce semplicemente a un attacco in cui un token viene utilizzato attraverso più metodi di pagamento, il che significa che la stessa valuta viene spesa più volte. Esistono molti modi per lanciare un attacco a doppia spesa, inclusi i seguenti moduli:

  • Attacco al 51%.

  • Attacco razziale

  • Attacco del vettore 76

  • attacco alla storia alternativa

Vale a dire, se l’attaccante controlla più del 50% della potenza di calcolo dell’intera rete, può attuare una doppia spesa attraverso un attacco del 51%.

Qui analizziamo solo il processo di attacco del 51%.

Attacco del 51%, noto anche come attacco della maggioranza. Questo attacco ottiene una doppia spesa controllando la potenza di calcolo della rete. Se un utente malintenzionato controlla più del 50% della potenza di calcolo nella rete, durante il periodo in cui controlla la potenza di calcolo, può invertire il blocco, effettuare transazioni inverse e ottenere una doppia spesa.

Nel protocollo di consenso PoW, il sistema blockchain consente l'esistenza di più catene biforcate contemporaneamente e ciascuna catena può dichiarare al mondo esterno che è corretta. Tuttavia, esiste un principio efficace più lungo nel concetto di progettazione della blockchain: "Non importa. A che punto la catena più lunga è considerata la catena principale con più lavoro?"

Simuliamo brevemente il processo di attacco del 51%:

Se esiste un tale aggressore, trasmette deliberatamente la prima transazione a metà della rete e trasmette la seconda transazione all'altra metà della rete, quindi ci sono esattamente due minatori su entrambi i lati per ottenere i diritti contabili quasi allo stesso modo momento e i rispettivi diritti contabili sono Il blocco viene trasmesso a tutti In questo momento, il registro unificato originale è biforcato.

Successivamente, se il prossimo minatore sceglie di continuare la contabilità in base ad A, il ramo A sarà più lungo del ramo B. Secondo le regole della blockchain, verrà riconosciuto il ramo più lungo, il ramo corto verrà abbandonato e il registro continuerà a essere registrato. verrà restituito a uno e solo una transazione sarà valida.

In questo momento, il ramo A viene riconosciuto e la transazione corrispondente viene confermata. Se l'attaccante ottiene il prodotto, si trasforma immediatamente in un minatore e vince due diritti contabili consecutivi, quindi aggiunge due blocchi al ramo B.

Quindi la filiale B diventa una filiale riconosciuta. In questo momento, la filiale A viene abbandonata. La transazione nella filiale A non è più stabilita. La valuta di pagamento dell'aggressore nella filiale A è nuovamente valida, ma l'aggressore ha già ottenuto il doppio della merce. l'attacco di spesa è stato completato con successo. Il problema è che, quando il ramo B è in ritardo, è molto difficile costringerlo a superare il ramo A nella realtà, e la probabilità di successo è molto bassa, tuttavia, se l'aggressore controlla più del 50% della potenza di calcolo del l'intera rete, anche se resta indietro, molto, ed è solo questione di tempo prima che riesca a recuperare. Questo è l'"attacco del 51%" menzionato sopra.

Analisi del caso di attacco Bitcoin Gold 51%.

Nel mondo reale della blockchain, ci sono state molte doppie spese causate da attacchi del 51%.

Ad esempio, il problema della doppia spesa in Bitcoin Gold (moneta BTG) è un attacco del 51%. Il processo di attacco è il seguente:

  1. L'aggressore controlla più del 51% della potenza di calcolo sulla rete Bitcoin Gold. Durante il periodo di controllo della potenza di calcolo, ha inviato una certa quantità di BTG al suo portafoglio in borsa. Abbiamo chiamato questa filiale A.

  2. Allo stesso tempo, ha inviato questi BTG a un altro portafoglio da lui controllato. Abbiamo chiamato questo ramo ramo B.

  3. Dopo la conferma della transazione sulla filiale A, l’aggressore vende immediatamente BTG e ottiene contanti. In questo momento, il ramo A diventa la catena principale.

  4. Quindi, l’attaccante mina sul ramo B. Poiché controlla più del 51% della potenza di calcolo, l’attaccante ha un’alta probabilità di ottenere diritti contabili, quindi presto la lunghezza del ramo B supera la catena principale (cioè la lunghezza del ramo A), quindi il ramo B diventerà la catena principale e le transazioni sul ramo A verranno ripristinate per ripristinare i dati all'ultimo stato corretto.

  5. In altre parole, la filiale A viene ripristinata allo stato in cui si trovava prima che l’aggressore avviasse la prima transazione, e i BTG che l’aggressore aveva precedentemente convertito in contanti tornano nelle sue mani.

  1. Infine, l'aggressore invia questi BTG a un altro dei suoi portafogli. In questo modo l’aggressore controllava oltre il 51% della potenza di calcolo per ottenere una “doppia spesa” della stessa cifra.

Secondo il rapporto sui dati blockchain di questo attacco, l'aggressore ha invertito con successo 22 blocchi. L'indirizzo Bitcoin Gold coinvolto in questo attacco ha ricevuto più di 388.200 $BTG. Supponendo che tutte queste transazioni siano legate alla doppia spesa, l'aggressore fino a 18,6 milioni di dollari un valore di fondi potrebbe essere stato rubato dallo scambio

Oltre al problema della doppia spesa che si è verificato in Bitcoin Gold, ci sono molti casi di attacchi a doppia spesa causati dagli attacchi del 51%:

  • Una volta la valuta digitale anonima ha estratto in modo dannoso più di 35 milioni di #xvg in poche ore, per un valore di circa 1,75 milioni di dollari.

  • Apparentemente il monacoin della criptovaluta giapponese è stato colpito da un attacco di deduzione di blocchi dopo che un minatore ha guadagnato fino al 57% dell'hash power della rete.

  • Notizie ufficiali di Litecoin Cash (LCC), LCC ha subito un attacco del 51%.

  • Anche la valuta digitale #zen ha subito un attacco del 51%.

  • Recentemente, Ethereum Classic #etc ha subito un attacco del 51%.