Autor:
fillipponeTopic original:
There are 2^256 private keys out there: how big is that number?
Ieri, în timp ce exploram secretele Bitcoin am ajuns la scandalosul site keys.lol.
https://keys.lol(Avertisment: nu veți realiza cum zboară timpul!)
În principiu, este un site care generează 128 chei private pe fiecare pagină, apoi verifică balanța adreselor (atât compresate, cât și necompresate) pe blockchain și raportează dacă a găsit adrese care conțin fonduri sau care au efectuat tranzacții.
Wow!
Și, dacă găsești adrese cu balanțe pe plus între aceste pagini, devii posesorul cheilor private, deci ești deținătorul legitim al fondurilor, neexistând niciun impediment în a transfera banii către portofelul propriu.
Am petrecut câteva ore pe acest website, generând mii de chei private dar, desigur, nu am găsit nimic, nici măcar o adresă folosită (deci, în niciun caz, una care să aibă și fonduri).
Apoi, m-am gândit că pot îmbunătăți un pic procesul și, după câteva discuții cu niște amici de pe forum, am crezut că am putea avea un script de generare a cheilor private, apoi aș putea verifica balanțele cu propriul meu nod Bitcoin și, eventual, aș putea transfera ulterior fondurile către portofelul personal. M-am gândit că, lucrândul la nivel local, aș putea iuți un pic procesul.
Am știut de la bun început că șansele de a găsi ceva erau minuscule, dar am vrut să încerc totuși, întrucât faptul de a verifica balanțe și a nu găsi nimic m-ar fi reasigurat că nimeni nu ar putea face același lucru cu fondurile mele BTC, pe care le țin cu atâta grijă în portofelul meu rece.
În timp ce așteptam ca @babo să-și prezinte script-ul, mi-am spus: “fillippone, singurul pion în acest joc al vieții”… cum e posibil ca nimeni să nu se fi gândit la asta?
Revenind la lucru, am descoperit așa-numitul Large Bitcoin Collider.
https://lbc.cryptoguru.org/aboutAcesta este un proiect serios.
Practic, mii de servere distribuite generează și verifică 26 bilioane (!!!) de chei private în fiecare zi.
În primii trei ani, au reușit să găsească 7 chei private. Acesta fiind un număr mare! Am crezut că șansele erau mult mai mici dar, probabil, există vreun bug în vreun portofel care utilizează un generator de numere aleatorii setat greșit, pentru a crea chei. (Aici este nevoie de mai multe investigații)
Să ne uităm un pic peste niște numere:
- numărul de chei private teoretic posibile: 2^256 sau, aproape, 10^77
- numărul adreselor Bitcoin: 2^160
- numărul cheilor private căutate de Bitcoin collider: 2^160
- numărul de atomi din Univers: 10^78 to 10^82
- numărul
adreselor Bitcoin utilizate: 18.000.000.
Numărul cheilor private PRACTIC posibil este un pic mai mic de 2^256, așa cum este specificat
aici.
Să luăm câteva exemple:
- Să presupunem că avem un miliard de adrese active, fiecare cu o balanță pozitivă: știm că asta presupune un număr de 10^3 ori mai mare decât numărul real.
Probabil, numărul atomilor din Univers este de 10^3 ori mai mare decât numărul adreselor, deci ar fi logic să spunem că găsirea unei chei private care deține fonduri este ca și cum ai găsi unul dintre acești atomi care împânzesc Universul.
Care ar fi mărimea unui miliard de atomi? Conform unui răspuns dat de Quora, ar fi mai mici decât o bacterie E.Coli. Deci să ne gândim că am lua această bacterie, fărâmițată la nivel atomic, apoi distribuită în Univers, iar apoi să încercăm să găsim acei atomi. Cam greu, nu?
- Al doilea exemplu din acest articol. Să presupunem că vrem să scanăm toate cheile private, în tentativa de a găsi o balanță pozitivă și să presupunem că fiecare om de pe Pământ are o viteză de scanare de un miliard de ori mai mare decât dublul puterii de calcul a rețelei, astfel:
* 10 miliarde de oameni;
* multiplicați cu un miliard;
* multiplicăm totul cu dublul puterii de procesare a Bitcoin, care este de aproximativ o sută de mii terahash pe secundă;
vom obține: 1.000.000.000.000*1.000.000.000*100.000*100.000.000.000 = 10^10*10^9*10^5*10^12 = 10^36.
Pentru a simplifica lucrurile, rotunjim "115.792.089.237.316.195.423.570.985.008.687.907.852.837.564.279.074.904.382.605 .163.141.518.161.494.336" cu 10^77, ajungând la concluzia că, dacă am fi cercetat fiecare cheie privată, pentru găsirea uneia cu balanță pozitivă, ar dura 10^77/10^36 = 10^41 secunde, care câți ani ar însemna?
Cum într-un an sunt circa 31.557.600 secunde, ar însemna aproximativ 10^41/31.557.600 = 31^33 ani, ceea ce reprezintă cam de 10^23 ori vârsta Universului (estimată în prezent la 13.82 miliarde de ani) – pe scurt, 100.000.000.000.000.000.000.000, adică de o sută de sixtilioane de ori vârsta Universului.
- Acest video arată cât de sigur este algoritmul SHA 256:
https://youtu.be/S9JGmA5_unY
- Calculele de mai sus nu au prevăzut și energia necesară pentru astfel de calcule. Desigur, toate acele mașini puternice ar avea nevoie de o sursă de energie. Dar câtă energie ar trebui? Păi, destul de multă, conform acestui grafic:
Link către Reddit Alte exemple despre cât ar dura găsirea arbitrară a unei chei:
Referințe:
Alte numere mari:
Acestea sunt doar câteva exemple; dacă aveți alte materiale sau idei, nu ezitați să le postați, iar eu le voi adăuga listei existente!