John Cantrell, vývojář protokolu Juggernaut, se dostal do bitcoinové peněženky a vzal si mince v hodnotě 9 300 dolarů. Ale nebyla to krádež, byla to součást hry v soutěži, kterou vyhrál.
Alistair Milne, ředitel informačních technologií krypto fondu Altana, zorganizoval hru na Twitteru. Počínaje květnem pravidelně publikoval rady k 12ti-slovní seedové frázi pro adresu peněženky, která obsahovala jeden Bitcoin. Kdokoli by nashromáždil všechny indicie, mohl použít tuto frázi k odemčení peněženky a vzít si BTC uvnitř.
Milne plánoval zveřejnit poslední tři nebo čtyři slova najednou, aby zabránil někomu v hrubě vynucenému otevření adresy (nepřetržitým hádáním slov, dokud by kombinace nefungovala). Ale jeho plán selhal. Cantrell s pouhými osmi slovy dokázal uhodnout zbývající slova a najít tu správnou kombinaci.
Vše co potřebujete vědět o: Bitcoin peňaženky a krypto peňaženky
John Cantrell o hackování bitcoinové adresy
Před zveřejněním osmého slova se Cantrell začal připravovat. Ve svém příspěvku napsal, že s osmi slovy bude existovat „zhruba 1,1 bilionu možných kombinací“, které je třeba zkontrolovat. Existuje omezený seznam 2048 slov, která by takové fráze mohla obsahovat – to však hacknutí bitcoinové peněženky nijak neusnadní.
Pro otestování jedné fráze potřeboval Cantrell vygenerovat seed, soukromý klíč ze seedu a adresu ze soukromého klíče. Po napsání speciálního programu a spuštění několika benchmarků se ukázalo, že hardware, který měl v té době, nebyl na úkol vhodný.
Cantrellův notebook dokázal kontrolovat pouze 1 250 kombinací za sekundu, což představuje 108 milionů denně. “To znamená, že by mému CPU trvalo asi 25 let, než by vytvořil a zkontroloval 1 bilion kombinací.” A to je, pokud chybí jen čtyři slova. Při 12ti slovech to je 309,485,009,821,345,068,724,781,056 dní.
To iterate all possible 12 word seeds using the same setup would take about 309,485,009,821,345,068,724,781,056 days.
— John Cantrell (@JohnCantrell97) June 18, 2020
K vyřešení problému se Cantrell zaměřil na cloud computing. Pronajal si několik desítek grafických karet a cloudovou službu společnosti Microsoft, Azure.
“Testoval jsem asi 40 miliard kombinací za hodinu. To znamená, že testování 1 bilionu by mělo trvat asi 25 hodin.”
Po testování 85% kombinací vřak neměl štěstí. A uvědomil si, že možná došlo k zásadní chybě. Jeho plán závisel na tom, že slova jsou ve správném pořadí – což nebylo zaručeno. Cantrell se po dni výpočtů pomalu vzdával naděje, že to bude fungovat.
“Nemohl jsem se přimět, abych to zastavil, když jsem došel tak daleko, tak jsem to nechal pokračovat. K mému překvapení o něco později večer (na 91%), po téměř 30 hodinách a 1 bilionu kombinací (1 000 710 602 752) se našlo řešení!“
Poté zaplatil vysoký poplatek 0,01 Bitcoinu za převod do své peněženky – v případě, že by uhodl kombinaci kdokoli jiný (chtěl, aby BTC mineři upřednostnili jeho transakci).
Nyní Cantell plánuje vlastní hru.
Spolehlivé způsoby, jak koupit Bitcoin a kryptoměny
Co to je zase za titulek? Vůbec nic nehecknul, dostal vetsinu hesla.