Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If you check 1 billion addresses a second, and there are 100 million addresses with a balance, then it would take on average roughly (2^256 / 10^8) * 10^-9 seconds, which is 36717430630808027468154168254911183362909051 billion years.

EDIT: Only 463439129036942 billion years, taking into account that there are effectively only 2^160 addresses.



Now that it looks like a phone number, one could unleash a horde of telemarketers at it.


Feels like a Hitchhiker’s quote:

"""Coincidentally, 2276709 is also the telephone number of a flat in Islington where Arthur once went to a party, met a nice girl, and lost her to a party-crasher. While the flat and telephone have been demolished along with Earth, they are forever linked to the fact that Arthur Dent and Ford Prefect—against all odds—are rescued 29 seconds after being ejected from the Vogon spaceship."""


Hashing hardware capability is typically measured in trillions per second (TH/s) so the math might be better using trillion instead of billion. As I understand it, the rental cost of 1 PH/s (which I think is one-thousand-trillion?) is about $10/hour. From that I think you could work out an actual cost to generate a collision!


Even taking the smaller value of 463439129036942 billion years at 1 billion/second (and therefore 463439129036942000 years at a quadrillion/second), at $10 / hour / PH/s, that’s $4.06e22, or ≈ 480 million years of Earth’s 2020 global nominal GDP.


This assumes a uniform key space. If PRNGs used to generate keys are biased, then there may be a way to exploit that bias.


You could shorten that by recognising the address space is more like 2^160 in BTC, due to the address generation process, more than one private key can spend from a given address, technically.


This reduces that number of years by 28 digits, afaiu, and that is still a pretty big number of billions of years.


Is that the average time until the first collision, or the time it will take to generate all possible private keys?


Average time until collision.


You could check a lot more than 1B address per second.


Not easily, as you need to do an elliptic curve point x scalar multiplication, which takes tons of cycles on a CPU and even tons of gates on an ASIC. Please provide a link to hardware that can do it much faster...


I'd guess a GPU at 2Ghz (2. Billion per second) might run parallel enough to compensate for the number of cycles required for a given point.

I doubt whether this would get far past 1 billion a second though.


Two or more of whatever you are using to perform the calculations? I mean it won't appreciably shorten the search time but it would double the processing rate.


There's kind of a reason you don't count the coefficient in big O notation etc. It doesn't really matter.

If you can't exponentially increase the amount of power / transactions you don't really have a chance of figuring out a collision.

100x machines with a computation that takes 100 billion years is still 1 billion years.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: