Eroare zero-day în algoritmul Bitcoin permite minare accelerată
Română
USD/MDL - 17.24 0.459
EUR/MDL - 20.12 0.1571
VMS_91 - 3.03%
VMS_364 - 9.54%
BONDS_2Y - 7.40%
GOLD - 4,749.05 0%
EURUSD - 1.17 0%
BRENT - 103.13 45.48%
SP500 - 679.46 0.07%
SILVER - 75.94 0.02%
GAS - 3.04 16.02%

A fost descoperită o eroare de tip zero-day în mecanismul de minare a bitcoin

De la lansarea sa, a existat o eroare de calcul în algoritmul de minare a bitcoin, care a permis minarea blocurilor la viteze extrem de mari. Acest lucru a fost dezvăluit de cercetătorul Loic Morel.
Игорь Фомин Timp de citire: 3 minute
Link copiat
bitcoin

Potrivit publicației, defecțiunea este legată de mecanismul de reglare a complexității, scrie forklog.com.

La fiecare 2016 blocuri (aproximativ o dată la două săptămâni), nodurile recalculează ținta astfel încât să apară un bloc la fiecare 10 minute, indiferent de puterea de procesare a minerilor. Pentru a face această ajustare, nodurile măsoară durata ultimei perioade, compară valoarea țintă (2016 x 600 = 1 209 600 secunde) și apoi ajustează dificultatea în consecință.

„Este în aceste calcule unde se află eroarea. Pentru a măsura momentul blocurilor din ultima perioadă, nodul compară marca temporală a primului bloc al perioadei cu marca temporală a ultimului. Instinctiv, acest lucru pare logic, dar este de fapt o eroare, deoarece există doar intervale de 2015 între primul și ultimul bloc al unei perioade, nu 2016”, a explicat Morel.

Dacă notăm t0 ca timestamp al primului bloc și t2015 ca timestamp al ultimului bloc, nodul calculează timpul scurs ca T = t2015 – t0. Se obțin astfel intervalele 2015 (t0 la t1 > t1 la t2 > … > t2014 la t2015).

Pentru a obține intervalele din 2016, trebuie să folosim o formulă diferită: T = t2015 – t-1, unde t-1 este marca de timp a ultimului bloc din perioada anterioară.

Aceasta se numește eroarea „offset de o unitate”. Această eroare introduce o eroare de aproximativ 0,05% în direcția unei complexități ușor supraestimate.

Cu toate acestea, adevărata problemă se află în altă parte. Defecțiunea face ca perioadele de ajustare să nu se suprapună – marca temporală a ultimului bloc dintr-o perioadă nu este luată în considerare la calcularea următoarei.

Manipularea timpului

Această lacună face posibil atacul „time warp”. Principiul său este următorul:

– Minerul, care controlează cea mai mare parte a puterii de procesare, a început să stabilească orele minime permise pentru toate blocurile dintr-o perioadă (cu excepția ultimului).

– În ultimul bloc al perioadei, el atribuie în mod artificial marcajul temporal maxim admisibil.

– După încheierea perioadei, complexitatea este ajustată. Din cauza manipulării de către atacator a marcajelor temporale, perioada măsurată a durat mai mult decât a durat în realitate. Ca urmare, complexitatea este redusă.

– Atacatorul repetă aceeași manipulare în perioada următoare. Deoarece perioadele nu se suprapun, primul bloc al celei de-a doua perioade de atac poate avea o marcă de timp din trecutul îndepărtat, în timp ce blocul anterior are o marcă de timp din viitor. Acest decalaj crește de la o perioadă la alta.

Prin repetarea procesului de mai multe ori, un atacator ar putea reduce teoretic complexitatea mineritului la un nivel care să creeze până la șase blocuri pe secundă (în loc de unul la fiecare 10 minute).

„Consecințele ar fi cumplite: blocurile temporare sunt inutile, rețeaua este supraîncărcată, numărul de reorganizări a crescut, iar confirmările tranzacțiilor și-au pierdut valoarea. Toate acestea ar permite atacatorului să colecteze recompensele blocurilor într-un ritm furios”, a adăugat cercetătorul.

Atacul ar fi imposibil dacă primul și ultimul bloc din două perioade consecutive s-ar potrivi.

Cum se poate rezolva acest bug?

Morel a menționat că problema ar putea fi rezolvată cu un softfork în cadrul BIP-0054.

Inițiativa presupune că primul bloc al unei noi perioade de complexitate are un timestamp care nu depășește cu mai mult de două ore timestamp-ul ultimului bloc al perioadei anterioare.

Această restricție restabilește „o anumită formă de continuitate” între perioade, previne manipularea marcajelor temporale și face ca atacul de „distorsionare a timpului” să fie nefezabil.


Abonați-vă la actualizările noastre


Реклама недоступна
De citit neapărat*

Întotdeauna apreciem feedback-ul dumneavoastră!

Citiți și asta