Ok, here is the data, we have

22,400,000 bitcoin addresses

There are 2^96 Possible public addresses

My computer can create 9,100,000 addresses a second

Considering I would be generating the addresses randomly, I have two questions

1) How long before I would crack one of the 22.4 million addresses?

2) How long would it take to crack a specific address?

Sorry if this seems like a simple math problem, my math sucks


closed as off-topic by John B, Leucippus, max_zorn, Somos, Don Thousand Nov 13 '18 at 5:42

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "This question is missing context or other details: Please improve the question by providing additional context, which ideally includes your thoughts on the problem and any attempts you have made to solve it. This information helps others identify where you have difficulties and helps them write answers appropriate to your experience level." – John B, Leucippus, max_zorn, Somos, Don Thousand
If this question can be reworded to fit the rules in the help center, please edit the question.

  • $\begingroup$ I really don't understand the down voting on this question, am I in the right place? $\endgroup$ – Jeffrey L. Roberts Nov 13 '18 at 2:24
  • $\begingroup$ Welcome to MSE, and glad to help. You're in the right place; the downvotes would probably be because it's preferable to show what work you've done on a problem already. There are a lot of users who come on to the site to demand answers to homework problems, for example, without showing any effort themselves. $\endgroup$ – Théophile Nov 13 '18 at 3:16

First, the probability of success for a random attempt is $p$, where $$p = \frac{22,400,000}{2^{96}} \approx 2.8 \times 10^{-22}$$

The probability of failure for one attempt is $1-p$, so the probability of $n$ failures is $(1-p)^n$.

Now, to answer your question, we need to be a bit more specific about what it means to crack one of the addresses. We can't ever guarantee that an address will be cracked after finitely many attempts, so instead, let's set a threshold. Suppose we want to know how many attempts it will take before the probability of cracking an address is at least $99\%$, or $0.99$. In that case, we want to know how big $n$ should be in order to make the probability of $n$ failures no more than $0.01$.

We therefore have $$(1 - p)^n \le 0.01$$ Taking logs of both sides, $$n\ln(1-p) \le \ln0.01$$

But $\ln(1-p) = -p - \frac12p^2 - \frac13p^3 -\ldots$, so since $p$ is so small, $\ln(1-p) \approx -p$ will be an excellent approximation. Therefore we want to choose an $n$ such that $$n \ge \frac{\ln0.01}{-p}$$ The right-hand side is approximately $16,288,355,888,451,313,684,419$. Even at nine million attempts a second, you might want to settle in with a good book. As for cracking a particular address, it's the same exercise, but replace the numerator of $p$ with $1$.

  • $\begingroup$ Thank you very much! $\endgroup$ – Jeffrey L. Roberts Nov 13 '18 at 2:24
  • $\begingroup$ @JeffreyL.Roberts You're welcome! Good luck cracking those addresses. $\endgroup$ – Théophile Nov 13 '18 at 3:17

Not the answer you're looking for? Browse other questions tagged or ask your own question.