This idea has already been implemented and used in Monero with ring signatures and you can get a basic ELI5 version of it with this
video some guy in the community made.
The only difference with what you are saying is that you aren't sending a transaction through only one person, but rather you are sending a transaction that is made possible by using past signatures on the blockchain as decoys, and only key images can help the recipient verify that the payment hasn't been sent before.
CT came afterward in terms for Monero, so before you were able to tell the coin amounts being transacted... but how the code is right now with everything in place and also about to be upgrading to a mandatory ring signature of 5 to 7, I'm not ashamed to be colored impressed every time I learn more about it. Only problems is scalability, but with the possibility of adding
bullet proofs on the horizon, it looks like it won't last that long.
Not trying to shill, just trying to say that your idea already sort of exists.
Hmm.. nope, I don't think so. CoinSwap is very different to Ring Signatures / CoinJoin.
In a Ring Signature ( or a CoinJoin ) the anonymity set is still the size of the inputs to the transaction. The inputs match the outputs in some fashion.
With CoinSwap the anonymity set is the size of ALL CoinSwap transactions going on at that time on the whole chain. This is potentially MUCH larger, especially if everyone started using it by default. So that ALL transactions were CoinSwaps.
With CoinSwap + CT - there would be ZERO information on-chain about who was sending what to who. You would pay X in secret, and they would pay Y (all done in such a way that no one can scam each other). There would be nothing linking your payment to Y.
The CT is required, because Without it, either you all send the same amounts ( not cool ) or it is obviously trivial to see which transactions are linked (check the amounts). But With it.. BOOM!