So, Bitcoin block consists of some static (magic number, version, previous hash...) and dynamic (timestamp, Merkle Root, transaction count and transactions) elements. What I don't understand is if we update active parts, wouldn't we start guessing nonce from the beginning every time and also calculating the new merkle root would be time-consuming for each transaction? I understand that since PoW is memoryless it doesn't effect much if it is updated every seconds or with every transaction but it may be slower to compute new hashes and root. I'm sorry if I'm wrong but, if miners freeze the block at certain time would they have an advantage. I searched a lot, but couldn't find an article or video of what really happens during mining in slo-mo.

  • It needn't be a fixed time interval. In principle, a miner could measure how much it costs them (in terms of lost mining time) to restart with a new block header, and then restart only if the new block's fees exceed the old block's by at least that amount. This amount could of course be different for different miners, depending on their hardware. – Nate Eldredge Oct 20 at 20:06

Miners do optimize the block construction process internally.

Unfortunately they do not share this information with the community, so we don't know what methods they use, how they choose TX's and how they distribute work to pool participants.

Both mining machines and mining software the big miners use are secret. Modern ASIC machines' hardware are closed source and so is their firmware and operating system.

This is unfortunate considering that Satoshi gave us Bitcoin source code, which is absolutely revolutionary, for free.

    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.