Te-ai întrebat vreodată de ce portofelul BTC al altcuiva nu poate genera aceeași adresă ca al tău? Sau de ce cineva nu poate genera aceeași frază seed ca tine? La urma urmei, sunt doar câteva cuvinte! În acest fir de discuție facem calculele, investigând cât de bine îți protejează bitcoin averea. 🧵⬇️
Există 3 instrumente majore pe care protocolul bitcoin le folosește pentru a-ți proteja averea, care merită înțelese: Entropie, funcții hash și criptografie asimetrică. Fiecare dintre acestea este folosit pe scară largă în domeniul securității digitale, chiar și în afara bitcoinului. Să explicăm pe scurt fiecare.
În primul rând: Entropia. Acesta este un nume elegant și concis pentru "aleatorietate imprevizibilă". Dacă alegi un număr foarte mare la întâmplare, într-un mod imprevizibil, atunci niciun calculator nu ar putea spera vreodată să-l ghicească (atâta timp cât numărul este suficient de mare!). Astfel ai avea un secret sigur.
Cât de mare este un număr suficient de mare? NIST recomandă 2^112 (adică 112 biți) sau mai mult pentru securitate eficientă. Ca referință, întreaga rețea de mining bitcoin face în prezent aproximativ 2^79 de încercări la fiecare 10 minute. Dar 2^112 este de peste 8 miliarde de ori mai mare de atât!
Mai mult, o sintagă sămânță de 12 cuvinte reprezintă o entropie și mai mare: 2^128. (Fiecare cuvânt reprezintă 11 biți. 11*12 = 132, minus 4 biți pentru sumă de control.) 2^128 este de aproximativ 65.000 de ori mai puternic decât recomandarea NIST!
Pentru ca cineva să ghicească o anumită frază seed, e ca și cum ar trebui să împrumute toate mașinile globale de mining bitcoin și să facă presupuneri timp de aproximativ 10,7 miliarde de ani. Teoretic este posibil, dar nerezonabil să credem că se va întâmpla vreodată, dacă se respectă cele mai bune practici.
În al doilea rând: funcțiile de hash. Funcțiile hash sunt grozave, pentru că poți introduce orice date (numite preimage) și acestea vor genera un număr unic între 0 și limita superioară a funcției (SHA-256 este deosebit de faimoasă, cu un interval de până la 2^256). Puteai introduce un cuvânt, o pagină, o carte.
Aceste funcții sunt unidirecționale. Poți găsi ușor o ieșire dintr-o intrare. Totuși, dacă ai doar ieșirea, nu poți găsi intrarea fără să ghici. Chiar și ieșirile de la intrări similare, cu modificări minore (cum ar fi o literă mare), arată complet diferit și aleatoriu:
Prin urmare, o ieșire hash are proprietăți similare cu entropia. Cineva care caută o preimagine care să genereze un anumit hash ar trebui să încerce ghicire după ghicire după ghicire. Atâta timp cât ar dura 2^112 încercări sau mai mult, este imposibil și preimaginea este sigură.
Bitcoin folosește SHA-256 pentru a face tranzacțiile ireversibile și fie SHA-256, fie RIPEMD-160 pentru a proteja majoritatea tipurilor de adrese. Așadar, pentru ca un portofel să genereze aceeași adresă ca a altcuiva, ar avea nevoie de cel puțin 2^160 de încercări, ceea ce este mai mult decât suficientă securitate.
În final: criptografie asimetrică. Cunoscută și sub denumirea de criptografie cu cheie publică sau, în multe contexte, criptografie cu curbe eliptice (ECC). În bitcoin, ECC este folosit astfel încât o cheie privată să poată produce o cheie publică, precum și semnături pentru aprobarea tranzacțiilor.
Dacă o cheie publică are un număr suficient de mare, din nou ar fi nevoie de un număr imens de presupuneri pentru a găsi cheia privată asociată. Cheile Bitcoin sunt numere într-un spațiu de 2^256. Calculul arată că securitatea este de fapt jumătate din biți, deci 2^128, ceea ce este sigur.
În cele din urmă, toți cei care desfășoară operațiuni normale în economia bitcoin sunt protejați de standarde de securitate care depășesc cu mult recomandările NIST și parolele tipice de banking online. Graficul de mai jos ajută la vizualizarea situației.
593