De 66-bit bitcoin puzzel: Een fout die 6.6 BTC kostte
In de vroege dagen van Bitcoin, toen BTC nog weinig waard was, besloot een anonieme gebruiker een unieke uitdaging te creëren: 160 “puzzels” op de Bitcoin blockchain. Elke puzzel is in feite een bedrag aan BTC dat vastzit in een adres, waarbij de bijbehorende private key met opzet een lage mate van entropie (willekeur) heeft. Hoewel de eerste puzzels snel werden opgelost, zijn er na al die jaren nog steeds puzzels die openstaan. Recentelijk vond een opmerkelijk incident plaats waarbij een fout leidde tot het verlies van een grote beloning.
Bitcoin puzzels: Wat zijn het?
In totaal werden 160 Bitcoin-adressen gegenereerd met private keys die bewust een lage entropie hebben. Entropie is een maat voor de willekeur van een private key. Hoe lager de entropie, hoe eenvoudiger de sleutel te raden is.
- Lage entropie: Stel dat je een wachtwoord hebt van slechts één karakter, en dat dat karakter een cijfer is van 0 tot 9. Dat geeft je maar 10 mogelijke combinaties, wat heel gemakkelijk te raden is.
- Hoge entropie: Een wachtwoord van 16 willekeurige karakters, bestaande uit cijfers, letters en speciale tekens, heeft een enorme hoeveelheid mogelijke combinaties, wat het bijna onmogelijk maakt om te raden, zelfs met krachtige computers.
In cryptografie wil je altijd een sleutel met hoge entropie gebruiken, omdat dit ervoor zorgt dat het veel moeilijker wordt om die sleutel te kraken met brute-force aanvallen, waarbij een aanvaller alle mogelijke combinaties probeert.
Teug naar de puzzel
Het eerste adres in deze puzzelreeks had bijvoorbeeld slechts 1 bit entropie, wat betekent dat de private key slechts twee mogelijke waarden had. Dit leidde ertoe dat de eerste puzzels binnen enkele seconden tot minuten werden gekraakt. Echter, elke nieuwe puzzel werd tweemaal zo moeilijk als de vorige, en daardoor zijn er nog steeds puzzels die tientallen jaren na hun creatie niet zijn opgelost.
Wat gebeurde er bij het 66-bit puzzeladres?
Een recent incident betrof het 66-bit puzzeladres, een van de overgebleven puzzels. Dit adres bevatte een aanzienlijke hoeveelheid BTC (6.6 BTC). Onlangs werd een transactie gedetecteerd die vanaf dit adres werd verzonden. Helaas voor de persoon die de puzzel oploste, onthulde de transactie per ongeluk de public key van het adres. Dit was een grote fout. Het wordt besproken op stacker.news.
Omdat de Bitcoin-adressen in deze puzzels bekendstaan om hun lage entropie, was het voor bots slechts een kwestie van enkele minuten om de private key te brute-forcen met behulp van tools zoals Kangaroo. De bots herkenden de kans en slaagden erin om snel dezelfde private key te genereren en de BTC te claimen voordat de oorspronkelijke verzender dit kon doen.
De gevaren van lage entropie
Het incident benadrukt het gevaar van lage entropie in cryptografie. Met de onthulling van de public key werd het brute-forcen van de private key een eenvoudig proces. Deze situatie toont aan hoe kwetsbaar private keys met lage entropie zijn, vooral wanneer de public key wordt gelekt.
Daarnaast onderstreept het incident de snelheid waarmee moderne bots en rekenkracht in staat zijn om dergelijke sleutels te breken. Wat jaren heeft geduurd met brute-force pogingen om alleen het adres te kraken, werd nu in enkele minuten opgelost dankzij de (onbedoelde) onthulling van de public key.
Was het een ongeluk of een opzet?
Hoewel het aannemelijk lijkt dat de public key per ongeluk werd onthuld, is er ook de mogelijkheid van iets kwaadaardigs. Sommige speculeren dat een operator van een puzzelpool misschien de transactie opzettelijk heeft gemanipuleerd om de bots de schuld te geven van de diefstal, terwijl ze in werkelijkheid de beloning zelf inpikten. Dit scenario benadrukt de risico’s van het vertrouwen op centrale puzzelpools, die niet altijd transparant of controleerbaar zijn.
Dit incident benadrukt enkele belangrijke lessen:
- Sterke entropie is essentieel: Het gebruik van private keys met een hoge mate van willekeur is cruciaal voor veiligheid. Lage entropie maakt het mogelijk voor brute-force aanvallen om snel een private key te kraken zodra een public key bekend is.
- Gebruik private transactiediensten: Als de eigenaar van de 66-bit sleutel zijn transactie rechtstreeks naar een mining pool had gestuurd in plaats van via de mempool, had hij misschien de volledige beloning kunnen innen zonder dat bots de transactie zouden onderscheppen. Dit incident benadrukt de potentiële waarde van private transactiediensten die worden aangeboden door grote mining pools, hoewel er ook risico’s aan verbonden zijn.
- Computerkracht wordt steeds sneller en goedkoper: Wat ooit onmogelijk leek, zoals het brute-forcen van private keys, wordt elk jaar realistischer door de toenemende rekenkracht en verbeterde technologieën. Dit legt extra nadruk op het belang van sterke cryptografie in het Bitcoin-netwerk.
Veel gebruikers willen graag deelnemen aan de zogenaamde “puzzelpools”, waarbij middelen worden samengevoegd om de resterende Bitcoin-puzzels op te lossen. Echter, deelname aan deze pools brengt aanzienlijke risico’s met zich mee. De meeste van deze pools zijn niet controleerbaar en vereisen een grote mate van vertrouwen. Daarnaast kunnen technische problemen ervoor zorgen dat, zelfs als je pool een puzzel oplost, er geen beloning wordt uitbetaald. Het investeren van middelen zoals GPU’s en elektriciteit voor een kans op een beloning is een gok, en de uitkomst is verre van zeker.
Voor iedereen die zich verdiept in cryptografie en Bitcoin, is dit een waardevolle herinnering: veiligheid begint bij een sterke private key, en de constante vooruitgang van technologie vereist een voortdurende herziening van beveiligingsmaatregelen.