Both solutions Higher node loads with paid full-nodes (similar to Masternodes, i think) & lower node loads and rely on voluntary have flaws. Even with solution similar with masternodes, attacker simply could run more masternodes, even if they need to buy/steal coins needed to run masternodes
But AFAIK majority of attack scenario require hard-fork/change protocol rules/high PoW amount which require lots of costs.
But storage isn't big problem on public permissionless blockchain, the bigger problems are :
1. Bandwitch to receive/send block and transaction
2. Computation power/time needed to verify block and transaction
3. Storage speed and RAM amount/speed
4. Ensuring normal bitcoiner can run full nodes without expensive device
5. There's delay/latency because time needed to receive, verify and broadcast all transaction/blocks
6. etc. (i forget few reasons)