Bitcoin tracks chain work by counting the (expected) minimum number of hashes it would take to create a chain of the same number of blocks and same difficulty steps. Naturally, accumulated work measured in this fashion (e.g. expected number of hashes) increases with each new block that is added to the chain.
For a given target
t, the minimum expected number of hash attempts necessary to find a block which meets the proof of work criteria (hash less than or equal to t) is geometrically distributed with parameter
p = t / 2^256.
We can calculate the entropy,
w, of such a geometrically distributed random variable by the equation w(p) = (-(1-p)log2(1-p) - plog2(p)) / p, and using
p = t / 2^256 we can trivially rewrite this into a function of the target instead,
Using this method we can calculate the minimum work (e.g. entropy)
w(t), denominated in bits, necessary to describe the proof of work signal. Other components of the blockchain (such as what data is in the blocks besides the proof of work signal) are not included in this analysis so that is why it is an estimate of the minimum encoding.
Plugging in some numbers:
- for block zero (and any block with the lowest possible difficulty, hence
p = 1 / 2^32), we get
approximately 33.44 bitsof work per block.
- for a more recent block, say block
approximately 76.97 bitsof work per block.
Can we complete the above analysis for every difficulty period and sum the entropies to obtain a lower bound on the minimum complexity, in bits, of the (proof of work aspects of the) Bitcoin blockchain? Or is there some assumption (such as being able to sum the entropies in this context?) that is unsafe/wrong?
An Attempted Answer & Some Motivation
Performing such an analysis seems to give a result, as of block 602784, of approximately 36.9 million bits or 4.6 megabytes and growing.
However, one reason why the method seems interesting is that, if it is reasonable, then it seems that all the math which the bitcoin protocol currently does with "time" (in the unix timestamp sense, such as difficulty adjustments, and block timestamp must advance median of last n block's timestamps) could instead be done in "bits." As such, this could be helpful for when/if the protocol is extended into operate across vast distances of spacetime?
Then again, there is probably something terribly wrong with this analysis which is why the question is being asked here.