Yes, that's fine provided there are nodes in the network that can serve you the blocks you haven't verified yourself. A brand new node of course needs to verify every transaction in every block all the way back to the genesis block (to keep the current level of security).
I'm very comfortable with that fact. There will always be enough of us that will hold copies of the full blockchain out of purity or shear paranoia.
Personally I like the concept of adding a hash of the current UTXO set to each block. This would enable a new node to only download headers and the UTXO set as of the last block, and that would be enough to start operating as a full node.
Yes, thanks for bringing this up; I was gonna say. I think that makes great sense as well.
Right, and now we're back to one of Smooth's points that a network full of nodes that don't personally verify every transaction in each block back to the genesis block (e.g., by relying on UTXO commitments instead) doesn't offer the same level of trustlessness than one that does.
Actually, I wasn't agreeing with his whole concept of just depending on headers and a hash of the UTXO set for a full node. I still think it's important for every new full node to download the entire block chain initially to build a valid UTXO set before discarding any blocks. But I do like the idea of adding a hash of the UTXO set into each block to ensure it's integrity.
LOL I should read the whole thread rather then skimming it. You guys were already talking about the UTXO hash! But its easy to miss stuff when multiple conversations are interleaved and you are only interested in one of them :-).
Note if you make it a UTXO merkle tree whose root is stored in the block (not a flat hash) then a light client could verify that certain UTXOs exist without downloading the entire UTXO set.
EDIT: And what do you think of the idea of just doing it (as data in a txn), and then if people use it we can incorporate it into every block so that it is trustless?