It seems easier and less storage-intensive to just create a verifiable hash of the transactions (T), paired with the hash of the output UTXOs (O) it produces after each block. V = hash(T) + hash(O).
Each node can verify that the latest hash Vn does indeed follow from the previous Vn-1 and O.
Let's say we store the full list of TXs for 30 blocks just in case of reorgs. For data before that time, it seems fine to trust that the network was validating everything the same way up until that point to produce that hash.
Let's say some node is trying to cheat and rewrite history, sending a made-up hash Vn that has a bunch of coins in their own UTXOs fraudulently. That hash won't be the right hash according to the miners and nodes that tried to produce the block 30 blocks ago (the edge of visible TXs), so it would be clear they are trying to mess with history.
And for any cheating newer than 30 blocks ago, Bitcoin would just be the same as it is now since all TXs would still be available for direct validation.
Sorry if this is a dumb question, I'm still a Bitcoin newbie.