Indiferent de PoW of Workload Proof, PoS of Equity Proof sau DPoS of Delegated Proof of Equity, atâta timp cât există o problemă de consens, teoretic vorbind, atacurile de 51% nu pot fi evitate. Atacatorul controlează rețeaua principală prin blocuri reversibile de 51% , rezultând floare dublă.

cunoștințe de bază

Ca sistem de stocare a datelor publice distribuite descentralizat, blockchain nu are o organizație centrală de management pentru management. În schimb, este întreținut în comun de noduri distribuite folosind protocoale criptografice, iar fiecare nod întreține întregul sistem. Consecvența registrului trebuie asigurată prin protocolul de consens de bază. Blockchain-urile au diferite utilizări practice în diferite scenarii din viața reală, cum ar fi lanțurile publice, lanțurile private și lanțurile de alianțe. Diferite lanțuri folosesc diferiți algoritmi de consens, cum ar fi consensul PoW utilizat de Bitcoin și consensul PoW utilizat de Ethereum. , DPoS consensul utilizat de EOS, iar securitatea implicată în diferiți algoritmi de consens este diferită.

Acest articol va detalia riscurile de atac prezente în protocoalele de consens PoW utilizate de Bitcoin și Ethereum.

Mecanismul de consens PoW

Mai întâi, să aruncăm o privire la ce este protocolul de consens PoW.

Din perspectiva unui sistem registru descentralizat, fiecare nod care se alătură sistemului trebuie să păstreze un registru complet, dar fiecare nod nu poate ține conturile în același timp, deoarece nodurile sunt în medii diferite și primesc informații diferite, prin urmare, este nevoie de Consens care nod are dreptul de a ține conturi. Blockchain-urile Bitcoin și Ethereum rezolvă problema de consistență a sistemului de contabilitate descentralizat prin contabilitate competitivă, adică un mecanism care utilizează puterea de calcul a fiecărui nod, adică „puterea de calcul” pentru a concura pentru drepturile contabile este „minerit”.​

Totuși, într-un sistem descentralizat, cine are dreptul să determine rezultatul competiției? Sistemele blockchain Bitcoin și Ethereum sunt realizate printr-un mecanism de consens numit Proof of Work (PoW).

PoW (Proof of Work), adică „Proof of Work”, mai simplu spus, PoW este un certificat care confirmă că partea de lucru a făcut o anumită cantitate de muncă. Capătul de lucru trebuie să facă o anumită cantitate de muncă dificilă pentru a obține un rezultat, iar verificatorul folosește rezultatele pentru a verifica dacă capătul de lucru a făcut munca corespunzătoare.

În minerit prin consensul dovezării muncii, trebuie respectate trei reguli:

  • Doar o singură persoană poate înregistra cu succes conturi într-o perioadă de timp

  • Concurează pentru a obține dreptul unic de contabilitate prin rezolvarea puzzle-urilor criptografice (adică dovada muncii)

  • Alte noduri verifică și copiază rezultatele contabilității

De exemplu, având în vedere șirul „blockchain”, cerința de sarcină de lucru pe care o dăm este că putem concatena un șir cu valoare întreagă numit nonce după acest șir și să efectuăm o operație hash SHA256 pe șirul concatenat Dacă rezultatul hash obținut (exprimat în hexazecimal formularul) începe cu câteva 0, apoi se trece verificarea. Pentru a atinge acest obiectiv de dovadă a muncii, trebuie să creștem continuu valoarea nonce și să efectuăm o operație hash SHA256 pe noul șir obținut.

Hash (valoarea Hash-ului anterior, setul de informații privind înregistrarea tranzacției) = 29329385BNDH749 Hash (valoarea Hash-ului anterior, setul de informații privind înregistrarea tranzacției, numărul aleatoriu nonce) = 000029329385BNDH749

De exemplu, hash-ul înălțimii blocului 512884 în Bitcoin este:

00000000000000000188d44fd53064469b17c3590a0c4df8e90626d11e25a69

Dovada muncii necesare pentru a genera acest bloc prin contabilitate este de 16**18 calcule hash, ceea ce reprezintă o cantitate foarte mare de calcul.

51% atac

După ce am introdus pe scurt principiile simple ale blocurilor de ambalare prin contabilitate și PoW, să revenim la întrebarea noastră, ce este un atac de 51% și ce este un atac cu cheltuieli duble?

Un atac cu cheltuieli duble se referă pur și simplu la un atac în care un token este utilizat prin mai multe metode de plată, ceea ce înseamnă că aceeași monedă este cheltuită de mai multe ori. Există multe modalități de a lansa un atac cu cheltuieli duble, inclusiv următoarele forme:

  • 51% atac

  • Atacul rasial

  • Atacul Vector 76

  • atac de istorie alternativă

Adică, dacă atacatorul controlează mai mult de 50% din puterea de calcul a întregii rețele, el poate implementa o cheltuială dublă printr-un atac de 51%.

Aici analizăm doar procesul de atac de 51%.

51% atac, cunoscut și sub numele de atac majoritar. Acest atac realizează cheltuieli duble prin controlul puterii de calcul a rețelei. Dacă un atacator controlează mai mult de 50% din puterea de calcul din rețea, atunci în perioada în care controlează puterea de calcul, el poate inversa blocul, poate efectua tranzacții inverse și poate obține cheltuieli duble.

În protocolul de consens PoW, sistemul blockchain permite să existe mai multe lanțuri bifurcate în același timp, iar fiecare lanț poate declara lumii exterioare că este corect. „Indiferent În ce moment este cel mai lung lanț considerat lanțul principal cu cea mai mare muncă?”

Să simulăm pe scurt procesul de atac de 51%:

Dacă există un astfel de atacator, acesta difuzează în mod deliberat prima tranzacție către jumătate din rețea și difuzează a doua tranzacție către cealaltă jumătate a rețelei, iar apoi există exact doi mineri de ambele părți pentru a obține drepturi contabile aproape la fel. timp, și drepturile lor contabile respective sunt. Blocul este difuzat pentru toată lumea. În acest moment, registrul unificat original a fost bifurcat.

În continuare, dacă următorul miner alege să continue contabilitatea pe baza A, ramura A va fi mai lungă decât ramura B. Conform regulilor blockchain-ului, cea mai lungă ramură va fi recunoscută, ramura scurtă va fi abandonată, iar registrul va fi în continuare. be va reveni la unul și o singură tranzacție este validă.

În acest moment, filiala A este recunoscută și tranzacția corespunzătoare este confirmată Dacă atacatorul primește produsul, el se transformă imediat într-un miner și câștigă două drepturi contabile consecutive, apoi adaugă două blocuri la filiala B.

Apoi filiala B devine o sucursală recunoscută. În acest moment, filiala A este abandonată. Atacul de cheltuieli a fost finalizat cu succes. Problema este că, atunci când ramura B rămâne în urmă, este foarte dificil să o forțezi să depășească ramura A în realitate, iar probabilitatea de succes este foarte mică, însă, dacă atacatorul controlează mai mult de 50% din puterea de calcul Întreaga rețea, atunci chiar dacă rămâne în urmă, O mulțime, și este doar o chestiune de timp până când acesta este „atacul de 51%” menționat mai sus.

Analiza cazului de atac Bitcoin Gold 51%.

În lumea reală a blockchain-ului, au existat multe cheltuieli duble cauzate de atacuri de 51%.

De exemplu, problema dublei cheltuieli în Bitcoin Gold (moneda BTG) este un atac de 51% Procesul de atac este următorul:

  1. Atacatorul controlează mai mult de 51% din puterea de calcul a rețelei Bitcoin Gold În perioada de control a puterii de calcul, a trimis o anumită cantitate de BTG în portofelul său. Am numit această sucursală A.

  2. În același timp, a trimis aceste BTG într-un alt portofel pe care l-a controlat. Am numit această sucursală B.

  3. După ce tranzacția de pe filiala A este confirmată, atacatorul vinde imediat BTG și primește numerar. În acest moment, ramura A devine lanțul principal.

  4. Apoi, atacatorul minează pe ramura B. Deoarece controlează mai mult de 51% din puterea de calcul, atacatorul are o probabilitate mare de a obține drepturi contabile, așa că în curând lungimea ramurii B depășește lanțul principal (adică lungimea ramurii). A), apoi ramura B va deveni lanțul principal, iar tranzacțiile de pe ramura A vor fi anulate, restabilind datele la ultima stare corectă.

  5. Cu alte cuvinte, ramura A este restabilită în starea înainte ca atacatorul să inițieze prima tranzacție, iar BTG-urile pe care atacatorul le transformase anterior în numerar sunt înapoi în mâinile sale.

  1. În cele din urmă, atacatorul trimite aceste BTG într-un alt portofel al său. În acest fel, atacatorul a controlat mai mult de 51% din puterea de calcul pentru a obține „cheltuirea dublă” a aceluiași simbol.

Conform raportului de date blockchain al acestui atac, atacatorul a inversat cu succes 22 de blocuri Adresa Bitcoin Gold implicată în acest atac a primit mai mult de 388.200 USD BTG Presupunând că toate aceste tranzacții sunt legate de cheltuieli duble, atacatorul ajunge la 18,6 milioane USD este posibil să fi fost furat de la schimb

Pe lângă problema cheltuirii duble care a apărut în Bitcoin Gold, există multe cazuri de atacuri cu cheltuieli duble cauzate de atacuri de 51%:

  • Valoarea anonimă a monedei digitale a exploatat odată peste 35 de milioane #xvg în doar câteva ore, în valoare de aproximativ 1,75 milioane USD.

  • Monacoinul criptomonedei japoneze a fost aparent lovit de un atac de deducere a blocurilor după ce un miner a câștigat până la 57% din puterea hash a rețelei.

  • Știri oficiale Litecoin Cash (LCC), LCC a suferit un atac de 51%.

  • Moneda digitală #zen a suferit, de asemenea, un atac de 51%.

  • Recent, Ethereum Classic #etc a suferit un atac de 51%.