4

The Background

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[1]. 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[2] with parameter p = t / 2^256.

We can calculate the entropy, w, of such a geometrically distributed random variable[3] 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, w(t).

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 bits of work per block.
  • for a more recent block, say block #602784 we getapproximately 76.97 bits of work per block.

The Question

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[4] 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.

References

[1] Strongest vs Longest chain and orphaned blocks

[2] How is it that concurrent miners do not subvert each other's work?

[3] https://math.stackexchange.com/questions/490559/entropy-of-geometric-random-variable

[4] https://github.com/philbertw4/mathematicalbitcoin/blob/master/scala/SatsPerBit.sc

  • "it seems that all the math which the bitcoin protocol currently does with 'time' (...) could instead be done in 'bits.'" I'm not sure I follow the reasoning here. 'Time' is used to standardize the blocktime to an expected time interval (an external measure). 'Bits of accumulated work' is a measure of something internal to the system, so it can't be used to standardize the block time in the same way (since we can't perfectly predict the future rate of entropy change). But anyways, interesting question/way of thinking about it. – chytrik Nov 27 '19 at 9:13
  • @chytrik, yes I'm glad you picked up on that too (and glad you find it an interesting question!). I'm not sure whether/if there is a "natural" block "bitrate" to target. This is actually why I tagged this question with the #blockspace-market tag, as perhaps the two concepts begin intersecting? – philbw4 Nov 27 '19 at 20:46
  • ‘blockspace-market’ refers to the competition between unconfirmed transactions to be confirmed in a block, according to the fees they’ve paid. So it doesn’t directly relate to the block difficulty measure (‘bit of accumulated work’) in this case. – chytrik Nov 27 '19 at 20:51
  • Ah, ok, wrong tag then, sorry. Its a very interesting problem to think about. Choosing a target rate of "zero bits per block" is tempting as it then ends up being an almost self-defeating chain in the sense that, since it is impossible to produce a proof-of-work of zero bits, every difficulty adjustment will simply increase the difficulty in an attempt to "never receive another block from these creatures which keep submitting blocks with more work!" :-) I'm not sure how/if a decrease in difficulty could be accomplished though. – philbw4 Nov 27 '19 at 20:56
  • I've been thinking about this a "bit" more and likely quite naively. However, if in fact this analysis holds up at all, then perhaps we could cross the bridge into physics and use landlauer's principle in a manner that would allow us to reinterpret the bits of work directly into a temperature and then difficulty adjustments would be set to target a specific constant temperature. So, in this context, "constant targeted temperature" would play the role that "constant targeted block rate". – philbw4 Nov 30 '19 at 4:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.