0

Given a set of transactions, and other parameters required to create a block, how many candidate blocks are possible per second? How many of them are valid?

1

There is an unlimited number of possible candidate blocks since changing any one detail, either the order in which it is presented within the block or, by one bit difference will make a separate candidate block because the random guess and the hash for that block will be completely different. In practice there is usually only one candidate block in existence at a time, sometimes two. Another name for candidate block is potential tip.

Some people refer to the block that a miner is trying to mine as the candidate block, in which case every miner has their own individual candidate block that they work on until it is either a) mined or, b) replaced because a new tip is received.

  • Thanks for that informative answer! I figured out a bit more about the question (homework problem) and I wish to share the details with you: So we know that the header for a potential tip requires the version, the hash of the prior block, and the target. The question asks us to keep these constant. Next, we also need the Merkle root of transactions, the timestamp, and the nonce value. Since the question says per second, the timestamp can be left constant. If there are n txn we can have n! Merkle roots. But how many nonces can we have. I think that's what the question is asking. – DeltaBourne Jan 27 '18 at 0:24
  • I just found out that a nonce is only 4 bytes (2^32 values) long. So there is a way to run out of them. So I think the total values = n! * 2^32. But the question is, how many of them are valid, given that the target is fixed? – DeltaBourne Jan 27 '18 at 0:30
  • From here: en.bitcoin.it/wiki/Block_hashing_algorithm 'Whenever Nonce overflows (which it does frequently), the extraNonce portion of the generation transaction is incremented, which changes the Merkle root.' – Willtech Jan 27 '18 at 0:53
  • @DeltaBourne Reading your comment, it seems that the actual answer is, it depends on the number of hashes computed per second. I presume however that you are supposed to come up with a numeric value meaning what is the technical limit. The answer should be the technical limit of sha256(sha256(x)). The interesting question is, does hashing a hash reduce its resolution? If the answer is supposed to be limited to the number of possible blocks meeting consensus rules per second, then it depends on the current difficulty and the number of hashes computed per second. – Willtech Jan 27 '18 at 0:59

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.