## Why is the target stored in compact form in the block header?

2

Why is the target converted to "Bits" and not stored in full in the block header?

For example, why:

{
"height" : 100000,
"bits" : "1b04864c",
"difficulty" : 14484.16236123,
}


and not:

{
"height" : 100000,
"target" : "000000000004864c000000000000000000000000000000000000000000000000",
"difficulty" : 14484.16236123,
}


Is it to save space?

1There isn't a need for that level of accuracy, but there is a need to conserve space in the header, because clients typically store the block headers in RAM. – morsecoder – 2015-04-03T18:55:58.210

What do you mean by aux merkle root? Also, it'd be nice to have accurate times in both the header (and associated w/ individual Txs) – Wizard Of Ozzie – 2015-04-04T05:06:27.443
1"historical"? Does this mean there is no current use for bits in the block header? I am wondering why it is there at all, assuming a full node syncs from block 0 and can calculate difficulty on its own for each block... – pinhead – 2017-04-12T19:54:32.393