Ik geef een presentatie over Bitcoins en ik was op zoek naar een aantal berekeningen om mensen een veilig gevoel te geven over de encryptie van de privésleutel. Antwoordt u alstublieft eerst, hoe lang de privésleutel in bytes is, vervolgens hoeveel cijfercombinaties het zal bevatten, en wat is de snelste computer of het snelste netwerk van supercomputers en hoe lang het zou duren om een privésleutel te kraken met die computer. Ik denk dat het resultaat erg leerzaam zou zijn op basis van mijn eigen berekeningen. Bedankt.
Opmerkingen
- Dit antwoord op Security Stack Exchange is relevant: security.stackexchange .com / a / 25392/4647
- Leg dit dan alstublieft uit. directory.io Deze mensen beweren dat ze alle privésleutels hebben … Ik denk dat de ‘ het niet vertellen de waarheid
- Ze vertellen de waarheid. Op dezelfde manier als iedereen die de cijfers van Pi kan genereren, alle literaire werken heeft die ooit zullen worden geschreven.
- coindesk.com/bitcoin-protocol- hack-joke
Antwoord
hoe lang in bytes de privésleutel is
32 bytes of 256 bits
hoeveel combinaties van cijfers het zal bevatten
Er zijn 2 ^ 256 verschillende privésleutels. Dat “is iets groter dan een 1 gevolgd door 77 nullen.
wat is de snelste computer of het snelste netwerk van supercomputers
Op zijn hoogtepunt rond augustus 2011 controleerde het Bitcoin-netwerk 15 biljoen sha256 hashes per seconde. (Zie http://bitcoin.sipa.be/ )
hoe lang het zou duren om een privésleutel te kraken met die computer
Als we aannemen dat het evenveel tijd kost om een ECDSA-bewerking uit te voeren als nodig is om een sha256-hash te controleren (dit duurt veel langer), en we gebruiken een optimalisatie waarmee we alleen 2 ^ 128 ECDSA-bewerkingen, dan kan de benodigde tijd worden berekend:
>>> pow(2,128) / (15 * pow(2,40)) / 3600 / 24 / 365.25 / 1e9 / 1e9 0.6537992112229596
Het is 0,65 miljard miljard jaar.
Dat ” een zeer conservatieve schatting voor de tijd die nodig is om één enkel Bitcoin-adres te kraken.
Bewerken: er werd op gewezen dat computers na verloop van tijd exponentieel sneller worden, volgens Wet van Moore . Ervan uitgaande dat de computersnelheid elk jaar verdubbelt (de wet van Moore zegt 2 jaar, maar we “zullen voorzichtig zijn), dan duurt het in 59 jaar slechts 1,13 jaar. Dus uw munten zijn veilig voor de komende 60 jaar zonder een wijziging in de algoritmen die worden gebruikt om de blockchain te beschermen. Ik verwacht echter dat de algoritmen worden gewijzigd lang voordat het haalbaar is om de bescherming die ze bieden te doorbreken.
Opmerkingen
- Moore ‘ s wet (of iets dergelijks) zou dat aantal waarschijnlijk een beetje verlagen, maar niet genoeg om er toe te doen. Zolang het antwoord een of andere vorm van ” is dan het zou duren om de munten die op dat adres zijn opgeslagen ” te minen, moeten we veilig zijn 🙂
- Het is belangrijk, omdat mensen het verdienen te weten hoe veilig hun geld is.
- Dat ‘ veronderstelt dat Moore ‘ kan nog zes decennia van kracht blijven. Aan de andere kant is QC dan misschien wel mainstream.
- Goed antwoord. Het is vermeldenswaard dat het cumulatieve netwerkvermogen van Bitcoin ‘ nu bijna tien keer zo groot is als sinds dit antwoord werd geschreven. Dus het ‘ s ” slechts ” ~ 653 miljoen jaar aan berekening.
Answer
Een privésleutel van Bitcoin is een willekeurig 256-bits getal. De openbare sleutel onthult echter enige informatie over de privésleutel. De bekendste algoritmen voor het verbreken van ECDSA vereisen O (sqrt (n)) – bewerkingen. Dat betekent dat er 2 ^ 128 bewerkingen nodig zijn om een Bitcoin-account te verbreken.
De grootste tot nu toe gebroken ECDSA-sleutel van het type dat Bitcoin gebruikt, was 112 bits lang. Een Bitcoin-account is meer dan 4.000 miljard miljard keer moeilijker te breken.
Het enige realistische risico zou kwantumcomputing zijn.
Opmerkingen
- Er moet ook worden opgemerkt dat zelfs quantum computing naar verwachting alleen de tijd van pow (2, N) naar pow (2, N / 2) zal verkorten, wat, hoewel significant, de tijd niet wijd open doet barsten. Zie en.wikipedia.org/wiki/Key_size
- @GaryRowe Je ‘ heeft het mis . De halvering van de sleutellengte geldt voor symmetrische sleutels. De meeste asymmetrische cijfers (inclusief ECDSA die wordt gebruikt voor bitcoint) kunnen worden verbroken in polynomiale tijd met een kwantumcomputer dankzij het Shor ‘ s algoritme.Om dat Wikipedia-artikel ” te citeren. De algemene consensus is dat deze algoritmen voor openbare sleutels bij elke sleutelgrootte onveilig zijn als voldoende grote kwantumcomputers Shor ‘ s algoritme komt beschikbaar. “. Hoewel er kwantumbestendige handtekeningschemas zijn, ‘ d zullen de blockchain waarschijnlijk veel opzwellen.
- @CodeInChaos Goede punten allemaal – sorry verwarring hebben veroorzaakt.
- De O (sqrt (n)) – aanval is de verjaardagsaanval, die in elk coderingsschema mogelijk is. Naar welke ” informatie over de privésleutel ” die de openbare sleutel onthult, verwijst u naar?
- @dionyziz I ‘ Ik heb het niet over de verjaardagsaanval, ik ‘ heb het over het omkeren van een openbare ECDSA-sleutel om de bijbehorende privésleutel te krijgen. De ” informatie over de privésleutel ” die de openbare sleutel onthult, is het punt dat overeenkomt met die privésleutel vermenigvuldigd met de generator. Dit maakt het gebruik van discrete logaritme-algoritmen mogelijk, zoals grote stap, kleine stap .
Antwoord
Een privésleutel van Bitcoin (ECC-sleutel) is een geheel getal tussen één en ongeveer 10 ^ 77. Dit lijkt misschien niet echt een selectie, maar voor praktische doeleinden is het in wezen oneindig. Als je een biljoen privésleutels per seconde zou kunnen verwerken, zou het meer dan een miljoen keer de ouderdom van het universum kosten om ze allemaal te tellen. erger nog, het opsommen van deze sleutels zou meer verbruiken dan de totale energie-output van de zon gedurende 32 jaar. Deze enorme sleutelruimte speelt een fundamentele rol bij het beveiligen van het Bitcoin-netwerk.
Reacties
- Chuck Norris heeft twee keer tot in het oneindige geteld.
- Chuck Norris heeft Satoshi Nakomoto verteld wat hij moet doen.
Antwoord
2 ^ 256 = 1.1×10 ^ 77 = aantal toetscombinaties
2 ^ 128 = 3.4×10 ^ 38 = het gemiddelde aantal benodigde gissingen
Volgens deze website: http://en.wikipedia.org/wiki/TOP500 , is de snelste supercomputer de K-computer die 10,51 petaflops heeft.
Een petaflop is 10 ^ 15 FLOPS, floating point instr ucties per seconde.
Tot zover goed, maar ik moet weten hoeveel FLOPS er nodig zijn per keer raden?
[Ik durf te raden:]
Tussen 1.000 en 10.000 FLOPS (of integere equivalenten) per schatting.
10,51×10 ^ 15 bewerkingen / seconde / 1000 tot 10000 bewerkingen / gok) = 10,51×10 ^ 12 tot 10,51×10 ^ 11 raden / seconde.
3.4×10 ^ 38 raden / crack / 10.51×10 ^ 12 raden / seconde = 3.2×10 ^ 25 seconden.
3.2×10 ^ 25 seconden / 60 seconden / minuut / 60 minuten / uur / 24 uur / dag / 365,25 dagen / jaar = 1,01×10 ^ 18 jaar
1,01×10 ^ 18 jaar / 1×10 ^ 9 / 1×10 ^ 9 = 1,014 tot 10,014 miljard miljard jaar.
De computers op het Bitcoin-netwerk zijn dus twee keer zo snel als de grootste laboratoriumcomputer.
Opmerkingen
- Er zijn precies 0 FLOPs nodig om probeer een combinatie, want een FLOP is een drijvende-kommabewerking, en EC-wiskunde vereist alleen bewerkingen met gehele getallen.
- Er is nog nooit een computer waarop ik heb gewerkt die niet ‘ t do integer ma th. Dus ik neem aan dat de Zuid-Koreaanse K-computer het ook kan.
- Ja, maar de verhouding tussen de snelheid van integer- en floating-point-bewerkingen verschilt aanzienlijk tussen hardware. Gegeven een bepaalde verdeling van hardwaretypes die de mijnkracht van Bitcoin ‘ vormen, kun je een schatting geven, maar het antwoord op de vraag ” hoeveel FLOPS er nodig zijn per gok “, het antwoord is zeker 0.
- aantal toetscombinaties = 2 ^ 256; gemiddeld aantal benodigde gissingen = 2 ^ 256/2 = 2 ^ 256 * 2 ^ -1 = 2 ^ 255, niemand heeft het opgemerkt? Nou, het verandert niets aan de miljard (van miljard) jaren die nodig zijn.
Antwoord
Er is een vanitygen
hulpprogramma (bekijk de exploitagency “s versie wat een verbeterde vork is van samr7 “s versie ) die u een schatting kan geven van hoe lang het duurt om de privésleutel voor het gegeven patroon te vinden (zie: vg_output_timing_console()
). Sommige speciale gevallen (zoals herhaalde tekens) zijn moeilijker dan de andere.
Hoe moeilijk het is om een vanity-adres te vinden, hangt af van de exacte structuur (beginletters en getallen) en hoe waarschijnlijk het is dat een dergelijke uitvoer wordt gegeven door de betrokken algoritmen, die uit verschillende draaipunten kunnen bestaan waarbij de moeilijkheidsgraad plotseling verandert. bitcoin wiki
Hier is de tabel die kan te vinden op bitcoin wikipagina die geschatte tijden geeft voor het kraken van privésleutels voor de opgegeven adrespatronen:
De onderstaande voorbeeldtabel laat zien hoe een steeds complexere ijdelheid de moeilijkheid en de gemiddelde tijd beïnvloedt die nodig zijn om alleen voor die ijdelheid een match te vinden, laat staan de volledige adres, voor een machine die door 1 miljoen sleutels per seconde kan kijken.
Met vanitygen zou je kunnen denken dat je de privésleutel voor een bepaald adres zou kunnen vinden. In de praktijk wordt dit als onmogelijk beschouwd.
Praktijkvoorbeeld
Laten we het volgende maken unspendable
bitcoin-adres :
$ unspendable.py 23456789A123456789A12345678 mainnet: 123456789A123456789A12345678Yr8Dxi
Met vanitygen
kan ik de prestaties op mijn computer berekenen (> 240 Kkey / s):
$ vanitygen -q -k -o/dev/null 1 [241.29 Kkey/s][total 2880199][Found 11618]
Opmerking: hierboven is getest op MacBook Pro (2,3 GHz Intel Core i7, 16 GB 1600 MHz DDR3).
Bovendien kan het de geschatte tijd berekenen bij het zoeken naar specifieke patronen, bijv.
-
om de eerste 5 tekens te vinden van 26-35 (enkele seconden):
$ vanitygen -q -k -o/dev/null 12345 [698.17 Kkey/s][total 8192][Prob 0.2%][50% in 4.5s]
-
6 eerste tekens van 26-35 (enkele minuten):
$ vanitygen -q -k -o/dev/null 123456 [701.39 Kkey/s][total 51712][Prob 0.0%][50% in 4.3min]
-
7 tekens van 26-35 (enkele uren):
$ vanitygen -q -k -o/dev/null 1234567 [471.87 Kkey/s][total 8192][Prob 0.0%][50% in 6.3h]
-
8 tekens uit van 26-35 (enkele weken):
$ vanitygen -q -k -o/dev/null 12345678 [658.82 Kkey/s][total 2548480][Prob 0.0%][50% in 10.8d]
-
9 karakters ou t van 26-35 (enkele jaren):
$ vanitygen -q -k -o/dev/null 123456789 [572.50 Kkey/s][total 1631744][Prob 0.0%][50% in 2.0y]
-
10 tekens van 26-35 (een eeuw):
$ vanitygen -q -k -o/dev/null 123456789A [630.48 Kkey/s][total 118528][Prob 0.0%][50% in 104.2y]
-
11 tekens van 26-35 (enkele millennia)
$ vanitygen -q -k -o/dev/null 123456789A1 [579.78 Kkey/s][total 17348352][Prob 0.0%][50% in 6571.6y]
-
12 tekens van 26-35 (honderden millennia):
vanitygen -q -k -o/dev/null 123456789A12 [751.61 Kkey/s][total 6720512][Prob 0.0%][50% in 294013.9y]
-
13 tekens van 26-35 (duizenden millennia, paar miljoen jaren):
$ vanitygen -q -k -o/dev/null 123456789A123 [666.93 Kkey/s][total 3886080][Prob 0.0%][50% in 1.921802e+07y]
-
14 tekens van 26- 35 (miljard jaren):
$ vanitygen -q -k -o/dev/null 123456789A1234 [817.44 Kkey/s][total 3994880][Prob 0.0%][50% in 9.094109e+08y]
-
15 tekens van 26-35 (50 miljard jaar):
$ vanitygen -q -k -o/dev/null 123456789A12345 [784.31 Kkey/s][total 4633856][Prob 0.0%][50% in 5.497420e+10y]
-
… 28 tekens ( deciljoen jaar als je “re lucky)
$ vanitygen -q -k -o/dev/null 123456789A123456789A12345678 [910.34 Kkey/s][total 2723072][Prob 0.0%][50% in 3.981113e+33y]
Het is vermeldenswaard dat het hierboven gegenereerde adres 34 bytes heeft, maar de het eerste teken is alleen de netwerk-ID (voor bitcoin is dit meestal 1
of 3
), en de laatste 4 bytes is slechts een checksum. Voor meer details over het adres, zie deze bitcoin wiki-pagina .
Keysearch-tarieven
Zeker keysearch-snelheid kan worden verhoogd door een betere GPU of meerdere CPUs te gebruiken (zie: -t
), maar toch kunnen de schattingen enorm zijn.
hier is de tabel met sleutelzoeksnelheden op bitcoin wikipagina :
En hier zijn enkele rapporten van gebruikers voor verschillende GPUs:
- i7 8700K – ~ 3Mkey / c
- GTX 980TI (v1.42) – ~ 73Mh
- GTX 1050ti – ~ 23 Mkey / c
- GTX 1070 – ~ 50Mhkey / s
- GTX 1080ti – ~ 108 Mkey / c
Antwoord
Het enige realistische risico zou kwantumcomputers zijn.
Of de ontdekking van een bug of fout in de BTC-software-algoritmen. Dan kan kraken een kwestie van seconden zijn, afhankelijk van het type fout.
Reacties
- Hallo en welkom bij de StackExchange. Weet je zeker dat je ‘ geen opmerking wilt maken over een ander antwoord, in plaats van een op zichzelf staand antwoord?
- @ThePiachu, bedankt . Zoals u wellicht weet, kunnen nieuwe gebruikers geen opmerkingen plaatsen, alleen antwoorden. De moderator is welkom om dit op te lossen. (Ik kan alleen mijn eigen antwoorden becommentariëren)
- Oh, jij bent een moderator. Ik heb net gemerkt. 🙂
Antwoord
De snelste computer is 150 Petraflops FPC per seconde, niet 10 … Probeer en gelijke tred houden met de tijd (NV Link en Volta HCP-kaarten op IBM-stroomprocessors) … u kunt meer lezen of kijken op de website van teamgroen of de conferentievideos van 2015 op U tube. Aangezien het algemene antwoord lijkt te zijn gebaseerd op 10 Petraflops als s werelds snelste computer …Je zou duidelijk moeten kunnen zien hoe snel de FPC per seconde kan veranderen. Het Department of Energy plant een 300P-systeem dat al op dezelfde technologie is gebaseerd.
Het punt is dat uw bitcoin-mensen die u vertellen hoe veilig het is op basis van 10P, de basisberekeningen al 15-30 keer verkeerd hebben omdat ze blijkbaar niet zoveel weten als ze denken. De verbeteringen zijn ook niet afhankelijk van de wet van Moore, hebben de recente vorderingen en huidige beperkingen te maken met een geheel andere wet, wat NV Link zo goed mogelijk heeft opgelost en de rekentijd zo goed heeft verbeterd. Dit is slechts het voorbeeld van vandaag theorie van een miljard miljard jaar is al fout met een factor 15-30 en zal elk jaar veel sneller fout blijven dan ze aannemen. Over 30 jaar of minder zal bitcoin op het huidige niveau gemakkelijk worden gekraakt door iedereen die 40 tot 50.000 dollar te besteden heeft (in het huidige geld) of een willekeurig aantal universitaire of zakelijke supercomputers kan gebruiken.
Iedereen die echt gelooft dat 50 jaar oude technologie iets digitaal veilig zal houden 50 jaar later is eerlijk gezegd niet het soort persoon dat je zou moeten zijn p Iets waar ook maar enige aandacht aan wordt besteed … Betekent dit dat bitcoin vandaag gevaarlijk is? Niet echt, maar als dezelfde mensen over 30 jaar de leiding hebben over de beveiliging, zijn het dezelfde mensen zonder idee die hier nu zijn.
Opmerkingen
- NVLink is een technologie die snellere en energiezuinigere communicatie tussen knooppunten in een supercomputer mogelijk maakt. Geen van beide is echt een probleem als u ‘ een gedistribueerde key-cracker.