Heb je je ooit afgevraagd waarom de BTC-portemonnee van iemand anders niet hetzelfde adres kan genereren als dat van jou? Of waarom iemand niet dezelfde seed phrase kan genereren als jij? Het zijn tenslotte maar een paar woorden! In deze thread bekijken we de cijfers en onderzoeken we hoe goed bitcoin je rijkdom beschermt. 🧵⬇️
Er zijn 3 belangrijke tools die het bitcoinprotocol gebruikt om je rijkdom te beschermen, die het waard zijn om te begrijpen: Entropie, hashfuncties en asymmetrische cryptografie. Elk van deze wordt uitgebreid gebruikt in de wereld van digitale beveiliging, zelfs buiten bitcoin. Laten we elk kort uitleggen.
Eerst: Entropie. Dit is een chique, beknopte naam voor "onvoorspelbare willekeurigheid." Als je een zeer groot getal willekeurig kiest, op een onvoorspelbare manier, dan zou geen enkele computer ooit hopen het te raden (zolang het getal groot genoeg is!). Je zou dan een veilige geheim hebben.
Hoe groot is een getal dat groot genoeg is? De NIST raadt 2^112 (ook wel 112 bits) of hoger aan voor effectieve beveiliging. Ter referentie, het hele bitcoin-miningnetwerk doet momenteel ongeveer 2^79 gokken elke 10 minuten. Maar 2^112 is meer dan 8 miljard keer groter dan dat!
Bovendien vertegenwoordigt een seed phrase van 12 woorden zelfs grotere entropie: 2^128. (Elk woord vertegenwoordigt 11 bits. 11*12 = 132, min 4 bits voor een checksum.) 2^128 is ongeveer 65.000 keer sterker dan de NIST-aanbeveling!
Voor iemand om een specifieke seed phrase te raden, is het alsof ze alle wereldwijde bitcoin mining machines zouden moeten lenen en ongeveer 10,7 miljard jaar zouden moeten gokken. Het is theoretisch mogelijk, maar onredelijk om te denken dat het ooit zal gebeuren, als de beste praktijken worden gevolgd.
Ten tweede: Hashfuncties. Hashfuncties zijn geweldig, omdat je elke data (een pre-image genoemd) kunt invoeren en het een uniek nummer tussen 0 en de bovengrens van de functie zal uitgeven (SHA-256 is vooral beroemd, met een bereik tot 2^256). Je zou een woord, een pagina, een boek kunnen invoeren.
Deze functies zijn eenrichtingsverkeer. Je kunt gemakkelijk een output vinden vanuit een input. Maar als je alleen de output hebt, kun je de input niet vinden zonder te raden. Zelfs de outputs van vergelijkbare inputs met kleine wijzigingen (zoals een hoofdletter) zien er compleet anders en willekeurig uit:
Daarom heeft een hash-uitvoer vergelijkbare eigenschappen als entropie. Iemand die op zoek is naar een pre-image die resulteert in een bepaalde hash-uitvoer, zou keer op keer moeten raden. Zolang het 2^112 pogingen of meer zou kosten, is het onuitvoerbaar en is de pre-image veilig.
Bitcoin gebruikt SHA-256 om transacties onomkeerbaar te maken, en ofwel SHA-256 of RIPEMD-160 om de meeste adres types te beschermen. Dus om ervoor te zorgen dat één wallet hetzelfde adres genereert als dat van iemand anders, zou het minstens 2^160 pogingen nodig hebben, wat meer dan genoeg beveiliging biedt.
Eindelijk: Asymmetrische cryptografie. Ook bekend als openbare-sleutelcryptografie, of in veel contexten elliptische kromme cryptografie (ECC). In bitcoin wordt ECC gebruikt zodat een privésleutel een openbare sleutel kan produceren, evenals handtekeningen om transacties goed te keuren.
Als een openbare sleutel een groot genoeg getal is, zou het opnieuw een enorme hoeveelheid gokken vergen om de bijbehorende privésleutel te vinden. Bitcoin-sleutels zijn getallen binnen een ruimte van 2^256. De wiskunde werkt zo uit dat de beveiliging eigenlijk de helft van de bits is, dus 2^128, wat veilig is.
Uiteindelijk wordt iedereen die normale operaties in de bitcoin-economie uitvoert, beschermd door beveiligingsnormen die ver boven de NIST-aanbevelingen en typische online bankwachtwoorden uitstijgen. De onderstaande grafiek helpt de situatie te visualiseren.
614