Here is a concept: lets name every single satoshi in circulation. Whenever someone doublespends one, we destroy it and also punish the wallet that doublespent. Now you only need to check for two factors in a p2p interaction: 1) the sender of a satoshi is the owner of it according to the ledger. 2) he owns at least some extra money.
This way you do not need to care about sidechains and doublespending because doublespending would be damaging for both parties.