It would make most graph analysis impossible. I agree coinjoin transactions with many inputs and outputs accomplish almost the same thing. (zero versus really small)I don't see why coins "touching each other" is a bad thing.
Eventually is a long time I think though, given the size of the address space. Another exception to this are mined coinbase transactions, which will be around for at least 20 more years.As bitcoin transactions are many-to-many mappings, eventually every coin touches every other coin anyway.
I understand the premise, but I also don't like to under-estimate the power of graph analysis. Even if the amount of inputs and outputs is large, if a few transactions later one of those addresses does something of interest it may be possible to correlate them. I know JoinMarket uses mixing depths to mitigate this, but that's an argument of degree not principle in my opinion.If our aim is defending privacy against an attacker spy who wants to find what you do with your money, then JoinMarket is effective at doing that. It ends with so many addresses touching your coins that spies don't know which addresses are "really" yours.
I don't know of any good decentralized ways to accomplish it, but I'm simply stating I think a solution where the coins going in and the coins coming out have no connection to one another would be better.
Thanks for the more correct/detailed information.By the way, JoinMarket does not use P2SH. Almost all transactions use pay-to-pubkey-hash addresses. For more details on how the JoinMarket smart contract works, read this https://www.reddit.com/r/joinmarket/com ... contracts/ You can have a smart contract without using P2SH.