Rainbow tables allow you to choose a tradeoff between storage and speed. So if you wanted to do that (which is of course unrelated to Bitcoin), the actual constraint is: (table size) * (number of hash calls to invert one hash value) = 2^256.
So, if you magically transformed the Earth into a giant rainbow table that uses N atoms to store a key value pair, you would have to perform N*10^27 hash calls to invert one hash value. Not very useful in this case.
Rainbow tables allow you to choose a tradeoff between storage and speed. So if you wanted to do that (which is of course unrelated to Bitcoin), the actual constraint is: (table size) * (number of hash calls to invert one hash value) = 2^256.
So, if you magically transformed the Earth into a giant rainbow table that uses N atoms to store a key value pair, you would have to perform N*10^27 hash calls to invert one hash value. Not very useful in this case.