Descrierea proprietății "flexibilității tranzacțiilor"
Mai recent, a apărut un termen pe care mulți utilizatori de biți de cripto-valută nu au auzit-o înainte - "flexibilitatea tranzacțiilor". Mt Gox a numit-o unul dintre principalele motive pentru suspendarea temporară a retragerilor. De asemenea, flexibilitatea tranzacțiilor a fost menționată ca o eroare, care în această săptămână a fost folosită pentru un atac masiv asupra rețelei Bitcoin. Deci, ce este aceasta, cum funcționează și ar trebui să ne facem griji? Iată ce știm.
Ce este "flexibilitatea tranzacțiilor"?
Acesta este un tip de atac care permite unui atacator să modifice identificatorul unic al unei tranzacții bitcoin înainte de a fi confirmat în rețeaua Bitcoin. Cu o astfel de schimbare și în condiții adecvate, utilizatorul poate pretinde că tranzacția nu a fost efectuată.
Este același lucru cu dubla cheltuială?
Nu, nu este. La o dublă cheltuială, bitcoanele sunt cheltuite o singură dată, iar apoi o altă tranzacție este creată înainte de confirmarea primei. Trucul este de a obține confirmarea tranzacției frauduloase în rețeaua Bitcoin înainte de a fi executată prima tranzacție. Aceasta înseamnă, de fapt, că veți suporta o dublă cheltuială.
Cum funcționează funcția "flexibilitate tranzacțională"?
Pentru a înțelege acest lucru, trebuie să știți cum se execută tranzacția bitcoin.
Când trimiteți Bitcoins către cineva, nu îi eliminați din cont și nu îi trimiteți "fluier" în rețea. Bitcoinii nu merg niciodată în acest fel. În schimb, tranzacția este creată în lanțul blocului Bitcoin.
"Flexibilitatea tranzacțiilor va contribui la dovedirea durabilității unei rețele descentralizate la evenimentele de rețea discrete"
Fiecare tranzacție trebuie să fie identificată în mod unic, astfel încât să poată fi menționată în lanțul blocurilor. ID-ul tranzacției (TX ID) este generat din informațiile din tranzacție care sunt trimise prin intermediul funcției hash.
Hashing este o procedură matematică în care sunt preluate și combinate diferite fragmente de date într-un bloc mai scurt de informații cunoscut sub numele de hash. Unul dintre elementele care sunt incluse în hash-ul tranzacției este semnătura digitală a utilizatorului, care confirmă faptul că este expeditorul tranzacției. Aceasta este modalitatea de semnare electronică a unei tranzacții.
Una dintre calitățile cheie ale unei funcții hash este că este imposibil să se spună prin hash informațiile originale. De asemenea, este imposibil să se prevadă care hash se va baza pe informațiile disponibile. Dacă orice element mic se schimbă în orice parte a datelor, hașura se va schimba într-un mod absolut imprevizibil.
Din acest motiv, identificatorii tranzacțiilor sunt aproape imposibil de fortificat. Fiecare tranzacție trebuie să aibă doar un singur hash posibil. Pentru a verifica dacă o tranzacție este validă, trebuie doar să conduceți toate informațiile din ea printr-o funcție hash și asigurați-vă că obțineți același hash.
Cel puțin, ideea este după cum urmează. Dar aici este momentul în care proprietatea flexibilității interferează. Se înțelege că semnăturile digitale ale utilizatorului utilizate în tranzacțiile hash pentru a "semna" au un anumit format. Acest format nu este întotdeauna verificat corespunzător. Aceasta înseamnă că poate fi introdusă o semnătură formatată "rău" și va fi acceptată. O astfel de modificare a semnăturii face posibila crearea de hashes diferite pentru o tranzacție.
Cum poate cauza asta probleme?
Una dintre problemele de aici se află în bursele de valori. pe care utilizatorii le folosesc adesea pentru a cumpăra și vinde bitcoane. Ei își trimit moneda, care nu este furnizată cu aur sau cu bitcoin, la bursă, unde se află în contul de conversie. Într-un anumit moment, utilizatorul ar putea dori să elimine bitcoins din cont.
Separați atacurile intrușilor
Dar Bob pretinde că Alice nu ia trimis niciodată. El folosește punctul slab al "flexibilității tranzacțiilor" prin replicarea tranzacției originale Alice, făcând mici modificări ale semnăturii pentru a forma un alt tip de hash. Apoi transmite tranzacția din nou cu un ID diferit.
Există posibilitatea ca tranzacția lui Bob să fie confirmată mai întâi în lanțul blocurilor. Dacă se întâmplă acest lucru, atunci rețeaua poate presupune că această tranzacție este validă și nu înregistrează o tranzacție Alice. Apoi, Bov se poate plânge lui Alice că nu a obținut bijuteriile de la ea. Când Alice verifică ID-ul tranzacției sale în lanțul blocurilor, nu o va găsi și poate încerca să trimită din nou butașii, adică din propriul buzunar.
Cazuri bine intenționate
Dacă utilizați un software special pentru a lucra cu bitcoins dvs., acesta poate genera eronat hashes incorecte. Acestea pot fi "fixate" într-o altă pungă, ceea ce le va forma în mod corespunzător. Dar poate schimba și ID-ul tranzacției (ID TX). Dacă portofelul dvs. nu face distincția între tranzacții cu aceleași caracteristici, dar cu ID-uri diferite, acest lucru poate duce în cele din urmă la prezența tranzacțiilor blocate care sunt într-o stare suspendată. Mai rău, programul poate să perceapă că în geantă există încă bitcoane care pot fi cheltuite.
În orice caz, dacă software-ul dvs. nu poate face față unei astfel de probleme - este un coșmar contabil. Dezvoltatorul kernel-ului Bitcoin, Gregory Maxwell (Gregory Maxwell), se gândește la această posibilitate.
Atacurile de negare a serviciului în masă
Un atacator poate provoca, de asemenea, probleme mai extinse pentru rețeaua Bitcoin prin lansarea intenționată a unui atac care utilizează flexibilitatea tranzacțiilor pe mai multe schimburi în același timp, eventual folosind software conceput pentru a crea tranzacții modificate. Un astfel de atac sincron pe mai multe schimburi, probabil, a avut loc în această săptămână.
Sistemele de contabilitate pentru servere ale acestor schimburi pot face față unui număr moderat de tranzacții modificate, însă dacă acestea sunt bombardate în mod repetat de astfel de tranzacții, acest lucru poate provoca probleme de logistică pentru un timp.
Aceasta poate duce, de asemenea, la probleme pe termen scurt pentru piață. Orice incertitudine sau îndoială cu privire la stabilitatea pieței va afecta în mod firesc prețurile pieței, în special în ceea ce privește o astfel de clasă de active nelichidă și nesustenabilă.
Acest lucru înseamnă că există o eroare în sistemul Bitcoin?
Au existat mai multe probleme cu tehnologiile utilizate în rețeaua Bitcoin, care creează probleme de flexibilitate. Unul dintre ei a fost inițial în clientul de referință - este un software dezvoltat de echipa principală de dezvoltare, pe care majoritatea oamenilor le utilizează pentru a-și crea propriile servicii. Problema a fost că datele de semnătură nu au fost reexaminate înainte de transferul celeilalte părți de software invocate de clientul de referință Bitcoin.
Dezvoltatorii principali au spus, de asemenea, CoinDesk despre două "cazuri extreme" pentru clientul de referință (acele defecte care ar putea fi numite foarte rar). Acestea se referă la partea software-ului asociat cu portofelul.
Se pare că există destul de multe alte probleme legate de flexibilitate, inclusiv unele dintre ele (BIP) enumerate numai în această lună unul dintre principalii dezvoltatori ai Bitcoin în propunerile de îmbunătățire a sistemului Bitcoin - documentul în care doriți să efectuați unele modificări în rețeaua Bitcoin .
Dezvoltatorii principali sunt în prezent în tăcere despre problemele cele mai problematice, deoarece nu doresc să ofere mai multe informații potențialilor intruși.
Cum de a rezolva această problemă?
Cu toate acestea, nu toate schimburile utilizează un client de referință pentru a procesa tranzacțiile cu bitcoins. Ei pot utiliza versiuni specializate care procesează tranzacțiile puțin diferit. Deci, dezvoltatorii Bitcoin și dezvoltatorii de portofele și burse își "transporta" codurile, astfel încât toate operațiile să fie efectuate fără probleme. Pentru schimburi, este important să procesați cu grație tranzacțiile modificate și să efectuați acțiuni adecvate atunci când acestea sunt detectate.
Alte soluții sunt mai multe despre proces. O problemă mai mare este flexibilitatea pe care sistemul o bazează pe tranzacții neconfirmate pentru care bunurile și serviciile sunt transferate sau furnizate înainte de confirmarea tranzacției în lanțul blocurilor. Prin urmare, este întotdeauna corect să solicitați o confirmare a tranzacției.
În același mod, din partea serverului, este utilă funcția de verificare manuală a scoaterii bitcoinelor din schimb.
Adică, bitcoanele se confruntă cu sfârșitul lumii? Am întâlnit o apocalipsă criptografică?
Erori sunt foarte enervante, dar nu critice. Există erori în majoritatea produselor software, dar nu toate sunt aceleași. Unele dintre ele sunt critice, iar unele nu sunt. Aceste erori nu sunt critice, iar sistemul Bitcoin nu este distrus. Baza Bitcoin este descentralizarea muncii comune a mai multor computere care iau decizii cu privire la tranzacții și încă funcționează.
Schimbul poate, de asemenea, să utilizeze instrumente pentru a urmări automat intrările de tranzacții care ar putea ajuta la detectarea schimbării acestora.
În orice caz, flexibilitatea tranzacțiilor va contribui la dovedirea durabilității unei rețele descentralizate la evenimentele de rețea separate. În cele din urmă, descentralizarea este unul dintre lucrurile care face ca rețeaua să devină un "bursier de bani".