Regula empirică nu mai este aplicabilă, iar persoanele care efectuează tranzacții mari trebuie să evalueze riscurile tranzacției în timp real, în funcție de ecosistemul de minerit actual.
Scris de: Jameson Lopp, Cogitații Cypherpunk
Compilat de: aididiaojp.eth, Foresight News
Dacă ai folosit vreodată rețeaua Bitcoin pentru tranzacții, este posibil să realizezi că acceptarea tranzacțiilor neconfirmate (cunoscute și sub numele de zero confirmări) este periculoasă. În absența confirmărilor, destinatarii de Bitcoin sunt ușor expuși la atacuri de tip race, atacuri Finney și atacuri de 51%.
Când ai avut cel puțin o confirmare a tranzacției, nu mai ești atât de expus la atacuri de tip race sau Finney. Acum, singura ta preocupare este atacul de 51%. Care este regula empirică pentru numărul acceptabil de confirmări?
1 confirmare: suficient pentru plăți mici de sub 1.000 de dolari.
3 confirmări: pentru sume între 1.000 și 10.000 de dolari, majoritatea schimburilor necesită 3 confirmări pentru depuneri.
6 confirmări: potrivit pentru plăți mari între 10.000 și 1 milion de dolari. Șase confirmări sunt considerate standardul de siguranță.
10 confirmări: recomandate pentru plăți mari de peste 1 milion de dolari.
Explorare profundă
Desigur, Bitcoin nu este atât de simplu, iar ceea ce numim reguli empirice de confirmare se bazează pe ipoteze despre care nu am discutat cu adevărat.
De exemplu, pragurile de confirmare ale regulilor empirice enumerate mai sus se bazează de fapt pe un atacator care deține 10% din rata globală de hash, în acest caz, 6 confirmări pot garanta 99,99% că atacatorul nu poate rescrie o cantitate semnificativă de istorie în rețeaua blockchain.
Cu toate acestea, aceste calcule (care pot fi găsite în white paper) au fost efectuate cu mult înainte de apariția pool-urilor de minerit și a mineritului industrial, atunci când se putea presupune în mod rezonabil că era greu pentru cineva să dețină mai mult de 10% din rata globală de hash. Începând din 2011, rețeaua a cunoscut o explozie de entități care produc blocuri (pool-uri de minerit), care au acumulat de departe mai mult de 10% din rata globală de hash. La momentul redactării acestui articol, există 5 astfel de pool-uri.
Quantificarea riscurilor în timp real
Pag. 6 și 7 din white paper-ul Bitcoin descriu metodele de calculare a riscurilor de rescriere a blockchain-ului de către atacatori după un anumit număr de confirmări ale tranzacției.
Competiția între lanțul cinstit și lanțul atacatorului poate fi descrisă ca o plimbare aleatoare binomială. Evenimentul de succes este că lanțul cinstit este extins cu un bloc, avantajul său crescând cu 1, iar evenimentul de eșec este că lanțul atacatorului este extins cu un bloc, distanța scăzând cu 1. Probabilitatea ca lanțul atacatorului să ajungă din urmă lanțul cinstit dat este similară cu problema falimentului jucătorului. Pe scurt: jucătorul (atacatorul) are o valoare așteptată negativă pentru a câștiga majoritatea timpului, astfel încât cu cât joacă acest joc cu valoare așteptată negativă mai mult timp, cu atât devine mai puțin probabil să fie câștigător.
Având în vedere că presupunem că atacatorul deține mai puțin de 50% din rata de hash a rețelei, probabilitatea ca atacatorul să ajungă din urmă scade exponențial pe măsură ce numărul de blocuri pe care trebuie să le recupereze crește. Cu cât se prelungește mai mult timpul, cu atât devine mai nefavorabil pentru atacator; dacă nu se grăbește să se îmbunătățească repede, șansele sale vor deveni aproape inexistente pe măsură ce rămâne tot mai mult în urmă. Probabilitatea de progres potențial a atacatorului este similară cu distribuția Poisson, deoarece toată mineritul este un proces Poisson, astfel încât rezultatele de succes urmează această distribuție.
Pentru a determina probabilitatea ca atacatorul să poată rescrie blockchain-ul dinainte de z blocuri, vom înmulți densitatea Poisson a fiecărei sume de progres pe care atacatorul o poate realiza cu probabilitatea de a ajunge la acea poziție, unde:
p = Probabilitatea ca minerul cinstit să găsească următorul bloc
q = Probabilitatea ca atacatorul să găsească următorul bloc
z = Câte blocuri trebuie să fie reorganizate (confirmări)
lambda = z * (q / p)
k = Numere întregi de la 0 la z
Aceasta nu este o formulă de calcul interesantă, așa că pare a fi o alegere bună pentru proiectele open source.
Calculatorul de risc al confirmării
Am creat următorul instrument, care va calcula dinamic riscul actual de reorganizare a lanțului pe baza estimărilor celor mai mari rate de hash de la pool-urile de minerit (din săptămânile anterioare ale blocurilor extrase). Desigur, puteți utiliza orice alt procentaj de rată de hash pentru a suprascrie acest parametru și pentru a obține numărul necesar de confirmări pentru evaluarea riscului.
Acum este ușor de observat că, dacă dorim să avem o probabilitate de 99,9% că tranzacția noastră nu va fi dublată, pentru atacatorii cu un anumit procent din rata de hash a rețelei, numărul de confirmări va crește brusc pe măsură ce rata de hash a atacatorului se apropie de 50%.
De ce ar trebui să te preocupe?
La momentul redactării acestui articol, Foundry deține 36% din rata globală de hash, ceea ce înseamnă că, dacă accepți o plată după 3 confirmări, Foundry are încă 49% șanse să rescrie blockchain-ul și să inițieze un atac de dublare.
Presupunând că atacatorul are 10% din rata de hash, regula empirică de 6 blocuri de confirmare asigură o probabilitate de 99,99% că nu va avea loc o dublare, iar acum sunt necesare 60 de confirmări pentru a atinge aceeași încredere.
În ceea ce privește utilitatea acestui tip de atac: pool-urile de minerit cu siguranță nu au motive să atace, deoarece dacă fac asta, ar putea pierde o cantitate semnificativă de afaceri. Minerii sunt în general deținători pe termen lung, care nu doresc să submineze încrederea oamenilor în ecosistem. Totuși, pool-urile de minerit pot avea în continuare puncte unice de eșec, iar cineva ar putea profita de o vulnerabilitate pentru a prelua controlul asupra unui pool într-un timp scurt. Situații similare s-au întâmplat înainte, cum ar fi acest atac BGP, care a redirecționat o cantitate mare de trafic de la pool-urile de minerit pentru a mina pentru atacator.
Sumar
Deși Bitcoin are robustețe și stabilitate în anumite privințe, în alte privințe este extrem de instabil. Pentru cei care efectuează tranzacții mari pe blockchain-ul Bitcoin, este important să fie conștienți că trebuie să-și ajusteze evaluarea riscurilor în funcție de starea actuală a ecosistemului de minerit.
Este important de menționat că părerea de mai sus despre Foundry nu ar trebui interpretată ca o amenințare iminentă sau sistematică la adresa integrității rețelei Bitcoin. În ultimul deceniu, am văzut fluctuații în gradul de centralizare al minerilor din diverse motive. De exemplu:
Rămân optimist că stimulentele care conduc minerii industriali de Bitcoin sunt raționale. Aceștia vor continua să caute surse de energie ieftină, stagnantă și în exces, iar natura energiei este că aceasta poate fi utilizată eficient în întreaga lume. Pe termen lung, mă aștept să vedem o distribuție a ratei de hash a pool-urilor de minerit devenind mai descentralizată. În plus, există unele îmbunătățiri tehnice, cum ar fi Stratum V2, care a preluat puterea de la operatorii de pool-uri și a returnat-o individual.