user135554: I know that in Bitcoin the difficulty target adjust after creating 2016 blocks. So, it means that within these 2016 block the difficulty target remains same (static). Am I correct?
If this is correct then the miners has to find the right Hash of the header. Header=version+hash of previous blockheader+merkle tree root+timestamp+difficulty target+nonce variable.
Now, it seems that within these 2016 blocks the input (block header) to the hash function will be different but the output (difficulty target) remains the same. Therefore it seems to me that it breaks the property of "strong collision resistance" property of the hash. Am I correct? In other word, Bitcoin uses this property of the hash function to make it difficult to find solution of the puzzle.

user13866: The target is adjusted every 2016 blocks but the hash of mined blocks does not have to equal the target. For the block to be valid, its hash must be less than or equal to the target.
So in that run of 2016 blocks, each block has a different output from the hash function. All are less than the target.
I imagine that it is incredibly unlikely that any block hash has ever exactly equalled the target.

135554: <p>I know that in Bitcoin the difficulty target adjust after creating 2016 blocks. So, it means that within these 2016 block the difficulty target remains same (static). Am I correct?</p>
<p>If this is correct then the miners has to find the right Hash of the header. Header=version+hash of previous blockheader+merkle tree root+timestamp+difficulty target+nonce variable.</p>
<p>Now, it seems that within these 2016 blocks the <em>input</em> (block header) to the hash function will be different but the <em>output</em> (difficulty target) remains the same. Therefore it seems to me that it breaks the property of &quot;strong collision resistance&quot; property of the hash. Am I correct? In other word, Bitcoin uses this property of the hash function to make it difficult to find solution of the puzzle.</p>
 13866: <p>The target is adjusted every 2016 blocks but the hash of mined blocks does not have to equal the target. For the block to be valid, its hash must be <em>less than or equal to</em> the target.</p>
<p>So in that run of 2016 blocks, each block has a different output from the hash function. All are less than the target.</p>
<p>I imagine that it is incredibly unlikely that any block hash has ever exactly equalled the target.</p>
