Author

Topic: Generating and Storing ALL keys (Read 240 times)

legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
May 11, 2021, 03:28:49 AM
#11
With today's technology, with governments and their agencies with nearly unlimited funds, could they not generate every address and key. store this in a distributed database (however many nodes) and search for whatever key they need. Surely with AWS, Azure, GoogleCloud companies could have the money to run the required infrastructure. or is the number of keys so large that even with 1 million servers with database nodes this could not be done?

The disk space required to store all those private keys VASTLY exceeds the combined capacity of all these providers (a few zettabytes at most?)
legendary
Activity: 3472
Merit: 4801
May 11, 2021, 03:05:17 AM
#10
Can you elaborate on your math? Why would it take more than 100 Earth's worth of atoms? If, 2^160 < 1.5 x 10^50

I really shouldn't be posting after my bed time.  Somehow I decided that 1050 X 100 = 1048. Clearly that's wrong, but somehow I failed to catch it.

I've removed it.  It was not the great example that I thought it would be.

It's still not horrible considering it would take more than 100 atoms to store the necessary address AND key, and that nobody is ever going to turn the entire Earth into a database, but it failed to make the specific point I thought I was making.
full member
Activity: 1162
Merit: 237
Shooters Shoot...
May 11, 2021, 01:52:20 AM
#9
With today's technology, with governments and their agencies with nearly unlimited funds, could they not generate every address and key. store this in a distributed database (however many nodes) and search for whatever key they need. Surely with AWS, Azure, GoogleCloud companies could have the money to run the required infrastructure. or is the number of keys so large that even with 1 million servers with database nodes this could not be done?

You already have some very good answers and examples, but I've got another one to specifically answer your question of "could they not . . . store this in a distributed database".

The maximum number of possible version legacy bitcoin addresses (those starting with a 1) is 2^160 or a bit less than 1.5 X 1048.

Meanwhile, most estimates of the number of atoms in the Earth are a bit less than 1.5 X 1050.

This means that if you could find a way to store both an entire address and its key on a single atom, and you were to eliminate all the air, water, magma, people, buildings, mountains, animals, plants, crust, mantle, core, etc turning it all into nothing but a single huge Earth-sized database, you still wouldn't have enough atoms to store all those addresses and keys.

You'd need more than 100 Earth's worth of atoms to store it all.

An actual real-world database is going to need much more than a single atom to hold enough information to store both an address AND a key. Therefore you'd need a LOT more than 100 Earth's worth of atoms to create your "All Keys database".

Mathematical weaknesses may be discovered some day in ECDSA, RIPEMD160, and SHA256, but brute-forcing or creating a database of addresses and keys just aren't going to be a concern. Ever.
Can you elaborate on your math? Why would it take more than 100 Earth's worth of atoms? If, 2^160 < 1.5 x 10^50
full member
Activity: 228
Merit: 156
May 11, 2021, 01:22:39 AM
#8
I'm not adding much in this 2nd comment, but it's obvious that we r not discussing the ability of a normal ordinary person to do so. The wondering was about the ability of large cooperations/hash markets/governments/...
It was also about the added value of the publicly available & already stored past history data.
.
I think cryptocurrency could be viewed as a 2D cryptography, and that's the source of strength; meaning u try hard to break an encryption (by brute force or cryptanalysis) to know the private key and deduce all the conversations bet. say Alice & Bob, that's how the strength is calculated as a power of 2. While in here it is like Alice & Bob pick a different random key pair each time they talk.
Maybe this is another way to describe the situation in crypto.
copper member
Activity: 2996
Merit: 2374
May 11, 2021, 01:14:26 AM
#7
Slightly off topic, but this should help you gain some perspective on very large numbers.

A googol is 1 * 10^100, or the number "1" followed by a hundred zeros. A googolplex is 1* 10^googol, or 1 * 10^(100^100).

If you had a million computers, each able to count a trillion numbers per second, your million computers would count to a total of 1 * 10^18 per second, and approximately 8.64 * 10^22 per day, or 3.1536 * 10^25 per year. After a year, your million computers would, as a decimal, have counted to 3.1536 * 10(-75100)th of a googolplex.

To put this in perspective, there is approximately 7.5 * 10^18 grains of sand on the earth.

This means if each grain of sand represented an equal part of a googolplex, you had a million computers, each counting a trillion numbers per second, it would take 2.3782344 * 10^(93^100) years to count one grain of sand.

In other words, you are not going to count to a googolplex, even if you count very fast. There are not a googolplex number of private keys, but the same principal applies.


If you want to be able to trivially access any private key, you will need to break the cryptography functions used to generate addresses based on private keys, either using quantum computing or by finding a weakness of the cryptography function itself.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
May 11, 2021, 12:53:04 AM
#6
With today's technology, with governments and their agencies with nearly unlimited funds, could they not generate every address and key. store this in a distributed database (however many nodes) and search for whatever key they need. Surely with AWS, Azure, GoogleCloud companies could have the money to run the required infrastructure. or is the number of keys so large that even with 1 million servers with database nodes this could not be done?

I think that another respond to the main question would be superfluous, but I'd like to remain on the incentive of that procedure. Besides that the whole system of Bitcoin relies on that specific impossibility, it also relies on something else! Mining!

Someone who would try to steal others' money, or simply gain burned coins, should consider that extending the chain with his/her super-duper computer will be more profitable AND more ethical. Specifically, he/she could simply mine every-single-block.

If he/she wanted to destroy Bitcoin, he/she wouldn't have to brute force an address. A person with that much power could simply solve empty blocks with the majority of the computational power of the network.

Whether if he/she behaves ethically or unethically, he/she will be much more powerful if he/she goes straight forward on mining, rather than searching on a hash collision.
full member
Activity: 228
Merit: 156
May 10, 2021, 09:33:12 PM
#5
1- in min about 1:50 here
https://youtu.be/ycK3AUTdl1w
Justin Drake mentioned that the only possibility is if there is a Quantum Computer actually do exist in some secret lab like Pentagon or something!
For more details on Quantum Computing effect on Bitcoin
On the insecurity of Quantum Bitcoin mining"
https://arxiv.org/pdf/1804.08118.pdf
( Quantum Computing is a Theoretical model based on physics but have never been actually implemented; however if it could be implemented, it will solve all NP in polynomial time)
.
2- I think the vulnerability comes, if it does, from attacks that use weakness points or the availability of previously generated data public-private key pairs for about 2⁷⁰ blocks uptil now I guess or even more(Differential attacks for example),... or any other factor that lowers this wildly known power of 2. What scientists tell us is we r still in the safe side till now ( not exactly 2²⁵⁶, but still infeasible to break)

HCP
legendary
Activity: 2086
Merit: 4361
May 10, 2021, 07:00:29 PM
#4
Sorry for my lack of understanding on the matter, I know there is 115792089237316195423570985008687907852837564279074904382605163141518161494336 Keys but could this be done?
Now... do the math on 115792089237316195423570985008687907852837564279074904382605163141518161494336 * 256

That is how many bits of storage you would need to store ALL the keys, in their most basic 256 bit state.

That would be:
Code:
29642774844752946028434172162224104410437116074403984394101141506025761187823616

which in bytes:
Code:
3705346855594118253554271520278013051290802056930396940243365220528581167818752

which in terabytes is:
Code:
~3705346855594118253554271520278013051290802056930396940243365220528

For reference, there are estimated to be only 7500000000000000000000 grains of sand on earth. And 1 million servers, each with 1 ExaByte of storage (1 exabyte is 1 million terabytes) would only have 1000000000000000000000000 bytes of storage.


or is the number of keys so large that even with 1 million servers with database nodes this could not be done?
^^This.
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
May 10, 2021, 05:45:08 PM
#3
You're actually looking to bruteforce about 2^160 instead of 2^256-1, as there are a theoretical 2^96 private keys to the same address due to the address (v1) being encoded in RIPEMD160.

Even if you generate a trillion keys per second, you'll take about 4.6343913e+27 years to hit 10% of that. You can calculate how long it takes at various speeds and you'll find that it'll take quite a while still. If your keys were generated in a non-random manner, then it would be trivial for someone to compromise your address as the entropy is significantly lower.
legendary
Activity: 1512
Merit: 4795
Leading Crypto Sports Betting & Casino Platform
May 10, 2021, 05:35:41 PM
#2
There was an image I saw sometimes ago on this forum that can give you the perfect answer to your question.

Sorry for my lack of understanding on the matter, I know there is 115792089237316195423570985008687907852837564279074904382605163141518161494336 Keys but could this be done?
This large number is equals to 2^256

The size of bitcoin’s private key space, (2^256) is an unfathomably large number. It is approximately 10^77 in decimal. For comparison, the visible universe is estimated to contain 10^80 atoms.
newbie
Activity: 27
Merit: 3
May 10, 2021, 05:14:35 PM
#1
Hi,

I often see this image of the sun burning out and "bitcoin can't be brute-forced" being thrown around on threads like this a lot (scroll down you will most likely see someone post it).

My question is:

With today's technology, with governments and their agencies with nearly unlimited funds, could they not generate every address and key. store this in a distributed database (however many nodes) and search for whatever key they need. Surely with AWS, Azure, GoogleCloud companies could have the money to run the required infrastructure. or is the number of keys so large that even with 1 million servers with database nodes this could not be done?

Sorry for my lack of understanding on the matter, I know there is 115792089237316195423570985008687907852837564279074904382605163141518161494336 Keys but could this be done?
Jump to: