Bitcoin block

Today is the third time I find an attack to the way Bitcoin uses SHA-256 to perform mining. Two of the attacks belong to a new family of attacks that involve terribly technical details about the inner workings of SHA-256. These are attacks that may impact on Bitcoin probably not before 5 years, and they could even never have a real impact on Bitcoin. I will talk openly about them when I can really tell if they could affect Bitcoin. And if they can, better be prepared. The good news is that many of these attacks (at least the ones I identified) can be prevented by a hard-fork involving changing the block header without breaking compatibility with current mining ASICs. Since changing the block header requires a hard-fork, it’s free to add more nonce bytes, and so help future ASIC manufacturers to reach higher hashing rates. Also the time field could be increased to 8 bytes. The new design requires only 6 more bytes or storage in its compressed format, but mining requires the record to be expanded to fit three 64-byte blocks, instead of two.

  • Time increased from UINT32 to UINT64
  • Header is split between a master and a child to prevent breaking the SHA-2 spec.
  • PrefixOfHashOfHeader split in two to leave the least significant bytes of time field as nonce for hardwares that use these bytes.

Here it is:

Can Bitcoin Help Predict the Future?  — CoinDesk
.. bitcoin has been reluctant to do that. There have been proposals for different extensions that could be used for bitcoin, but they're very conservative,” he points out.

Bitcoin for Beginners: How to Mine Bitcoin Part 1: Introduction and FAQ  — ForexMinute.com
What is the incentive to produce something as complicated as a Bitcoin block? 3. Do I need to buy a pick and shovel to start “mine”? 4. How many Bitcoins I get every time I find a block? 5. How often one discovers a block? 6.

Bitcoin AOCS

Bitcoin Black Friday

Bitcoin API net

Bitcoin 24/7

Bitcoinica

64-Bytesub-block Offset in sub-block Field Purpose Updated when… Size (Bytes)
VersionBlock version numberYou upgrade the software and it specifies a new version
HashChildHeader256-bit double hash of the child headerA new block comes in32
36ZeroPadleft for future useNever28
PrefixOfHashOfHeader04 byte prefix of hash of the first 64 bytes (including ZeroPad).
Corresponds to the last 4 bytes of the old Merkleroot
Nonce2Corresponds to the least significant bytes of the old time field (it’s stored in little-endian)