Hacker News new | ask | show | jobs
Show HN: Randomly Guessing Bitcoin Addresses (coinspin.app)
37 points by coinspin 1632 days ago
8 comments

You can save a lot of CPU by just never querying the server, and just assume the balance is 0. I guarantee the experience will be identical
I made something similar for Ethereum keys :) I decided I wanted mine to be an art presentation too: http://petroff.ryan.gitlab.io/ethkeyscape/
This is cool, and the linked Medium article helped me wrap my head around the security of Bitcoin wallets. I have wondered in the past why people mine blocks, but not try to “mine”/hack existing wallets.

It would be cool to add a running counter for “X wallets checked” on the webpage.

I was interested in the idea too and dug further into the math. Assuming you could check hashes at the same rate as Bitcoin is currently mined at that's 202 Exa-hashes per second. If you had the world's hashing power working on guessing private keys, the odds of getting one on any given day are 1/6.70093E45
That's such a big number. I still fail at grasping really large numbers like that.
One Billion is 1.0E9, or a one followed by nine zeroes. so 6.0E45 is one billion to the power of 6, or six billion-billion-billion-billion-billion-billion, times six. At that point you can kind of just mad-libs each billion to be whatever you want "A billion Earths mining for a billion days, duplicated a billion times in a billion different simulated universes, and the odds of finding a hash after all that is still one in a billion, squared."

Or you can plug it into Wolfram Alpha and get it to find a comparison, in this case 6E45 is 0.011% of all possible chess combinations.

It does get worse than that though. A project I played with last year had me asking how many unique permutations there were for a 1920*1080 monitor. That number was around 10^10^77. I don't have any formal maths training and that one really threw me for a loop. To summarize 10^x means you have a number that's x digits long. So 10^6 means I have a six digit number. 10^10^x means that the number that describes how long my number is is x digits long. so 10^10^77 means that if I wanted to write out my number and count the number of zeros in it, that counting would give me a number 77 digits long. Math is weird.

That's a neat idea! It's currently all client side but I could add a simple endpoint to store/read the counts.
If by some ungodly miracle this correctly guesses a Bitcoin address, would you be notified?
Yeah. I would log it. It doesn't auto sweep the wallet or anything.
OP Here. I submitted this 6 months ago as a Show HN and thought I would try my luck again after adding a blog post last night about doing the same thing on AWS.
You might also be interested in the Large Bitcoin Collider. It found some weakly generated private keys.
Not sure if the Sun will remain a main sequence star long enough for this to work...
Why is the “top” data as of Nov 12th?
I just haven't updated it lately. Thanks for the reminder. I'll run the scripts now.
Nice, just curious, how exactly are you updating it? I've been working on https://luabase.com/ and started with Ethereum but plan to add bitcoin next.
There's a blog post on the same site that talks about using https://github.com/in3rsha/bitcoin-utxo-dump. I'm running a pruned node, I use that lib to dump the address and balance to a csv and then I pull out the top 100 or so.
Something is off with the output of parsing the utxos. I'll have to dig deeper into it later!