I read and thought some more about Bitcoin’s SPV and Blockstack’s SNV. Please correct me if there’s something wrong, something unclear, etc. And please don’t consider all these things as true
When using SPV for validating transactions in Bitcoin, the client requests the block (with the transaction to validate) and the headers of the following blocks (depending on how much confirmation it wants to see). These headers are easy to check, and scale linearly in contrast to download the bigger and bigger blocks.
The check happens with a merkle tree, with the consensus hash at the root. With each block built on top of the transaction’s block the amount of work required for a successful attack increases.
When having no idea about the current state of the network (from a client’s perspective), there’s the danger getting wrong data from the server (lying on purpose, got spoofed, …). To encounter this, it’s necessary to ask some nodes in the network for their current state (and ensuring that there’s a consent). As of now, there aren’t that many nodes, I guess. So it’s probably difficult to solve this that way. Is there another way?
Is this the reason why @light wrote that it’s necessary to have a trusted node?
Couldn’t Blockstack’s SNV use fully the diversity and mass of nodes from Bitcoin to ensure validity? All name actions get embedded into the blockchain, so adding a Blockstack node on top, shouldn’t change something with the trust.
And another remaining question: What’s different from SPV to SNV?
For more reference, there are some more information in the docs:
 https://github.com/blockstack/blockstack-core/issues/262, maybe the forum is a better place for this?