Monero uses a dynamic block size limit and a penalty mechanism instead of a fixed block size limit. This mechanism help, but won't eliminate scaling issues and centralization pressures.
It's also not clear to me how it handle non economic spam attacks. You can only have a block 2x the median of the last 100 blocks but this won't stop a dedicated attacker IMO.
