What if blocks included, along with the list of new transactions, the hash of the unspent transactions database? (the state that the blockchain was in during the previous block)
This way, light clients could request the unspend transactions database from full clients.
eg.
Block A has hash ABC
balances at this block:
Bob: 1, Alice: 2, Charlie: 3
Block B has hash DEF
included in the block (as an optional parameter):
Block A's UTXO hash: B1A2C3
then, if a light client needs to spin up, it can just request the UTXO db from a few fat clients if they have it, validate it against the blockchain, and process the transactions from there.