I'm not sure that the computation is completely to the point -- he starts out asking "what is the _smallest_ storage unit that could fit this many bytes", and then goes on to consider how much energy it would take to do so. But if we are primarily worried about energy usage, we can write it cheaper (at the cost, I guess, of using more mass for the storage medium).
The usual limit that is mentioned for storage is Laundauer's principle (http://en.wikipedia.org/wiki/Landauer%27s_principle), which states that we need to use at least ln(2)kT Joules of energy to write one bit, where k is Boltzmann's constant and T is the temperature of the storage system.
Assuming the best case T=Cosmic Background Temperature=2.7K (although this is optimistic since we will also be heated up by the sun and by the Milky way), this give 8.8e15 J to write 2^128 bits, or 3.6e19 J to write 2^128 512-byte blocks.
That's much less than what Bonswick calculates, and less than the energy to boil the ocean!
In fact, here's a more down-to-earth idea of a high density storage: use a diamond crystal, with C-12 atoms for 'zero' bits and C-13 atoms for 'one' bits. (I learned about this idea from Charles Stross' blog). While it's not obvious how to read and write this, the concept is clearly not ruled out by the laws of physics.
Then storing 2^64 512-byte disk blocks requires 1.5 grammes of diamond (7.5 carats), while storing 2^128 blocks requires 3e16 kg (a ball of diamond with a radius of 12 km).
2^128 is a big number, but perhaps not big enough to last us through the singularity.
The usual limit that is mentioned for storage is Laundauer's principle (http://en.wikipedia.org/wiki/Landauer%27s_principle), which states that we need to use at least ln(2)kT Joules of energy to write one bit, where k is Boltzmann's constant and T is the temperature of the storage system.
Assuming the best case T=Cosmic Background Temperature=2.7K (although this is optimistic since we will also be heated up by the sun and by the Milky way), this give 8.8e15 J to write 2^128 bits, or 3.6e19 J to write 2^128 512-byte blocks.
That's much less than what Bonswick calculates, and less than the energy to boil the ocean!