What if the miners allowed invalid transactions, and other nodes did validation? Here Peter Todd writes:


  [A]s an optimization
  Bitcoin goes a step further and disallows invalid transactions to be published
  in the blockchain at all, but that's the thing: that's just an optimization
  that full-nodes don't actually need to operate.


Maybe I'm misunderstanding this, but it seems to be an interesting idea: the blockchain can contain invalid transactions, but all validating nodes will ignore them. I'm thinking, what if bitcoin was designed this way, or if someone created such hard fork, could it work? If yes, what drawbacks should be expected?

Correct me if I'm wrong, but probably Counterparty already works in this way, since they use bitcoin blockchain.
I'm thinking, what if bitcoin was designed this way, or if someone created such hard fork, could it work? If yes, what drawbacks should be expected?


There are two I can think of:


No SPV

Right now, to trick an SPV client, you need to get 51% of miners to include an invalid transaction. However, if all miners include all transactions, then SPV is not possible.
No safe softforks

P2SH was a softfork that made it possible to send money to a hash of a script. If you didn't run P2SH enforcing code, enough miners ran it that your node would still agree with everyone else.

However, if rules are not miner enforced, then two clients running slightly different code can look at the same blockchain and get two entirely different pictures of who owns what.