Ledger clients would simply be unresponsive when polled for blocks older than 5 years.
That is pretty much a breech. That would prevent old clients from accepting the chain at all.
I assume the ledger clients would still keep the headers back to the root?
"Ultimate blockchain compression" is better solution than ledger block.
I must disagree from what I read in the thread linked below your post it sounds like a lightweight client scheme. The full clients would still need the full chain so as the real Bitcoin network is concerned nothing is solved.
If it is solid enough, then everyone could use it.
Basically the root of the transaction output tree is stored for every block.
It is possible to compute the new root if you have
- the old root
- the unordered set of spent transaction outputs in the block
- merkle branches relating to the spent transactions
- the unordered set of new outputs in the block
You get proof that
- the total number of coins is correct (new = old + minted)
- all spent transactions were in the valid transaction output set
Therefore without knowing the entire history you can verify the current block.
There is meta data required. However, some of it would be the responsibility of the spender. To spend a coin you need the merkle path for the block it was created. This could be stored by the coin owner.
You also need the path for when it is spent. This would change every block, so not sure how best to handle that. Only the changing part is required though. This is the part near the root where loads of paths converge.