If you have a community of 37 node runners and 80000 passive listeners that check signatures and block headers, the attacker wins. If you have a community where everyone runs a node, the attacker loses. We don’t know what the exact threshold is at which herd immunity against coordinated attacks kicks in, but there is one thing that’s absolutely clear: more nodes good, fewer nodes bad, and we definitely need more than a few dozen or few hundred.
The only solution to storage size problems is statelessness and state expiry. Statelessness allows for a class of nodes that verify the chain without maintaining permanent storage. State expiry pushes out state that has not been recently accessed, forcing users to manually provide proofs to renew it
Interesting, this may be something missing from the high level discussions of Bitcoin, the technical aspects. That there are constraints and that maybe some of the inconveniences really matter.