Privacy is standard in Bitcoin—it has been since it was released and had an entire section dedicated to it in the whitepaper. It advises that new key pairs should be used for each new transaction which means that coins should be sent to new addresses. Wallets needed to implement some form of this and users need to be diligent in how they transact.
Most did not understand this, thus the move by Bitcoin Core, Bitcoin ABC and other privacy coin developers towards implementing anonymity features. These radical changes to the code can have high risk, will potentially have legal consequences and are unnecessary—all because they did not understand that Bitcoin was capable of privacy from the very beginning.
This is a classic example of head-in-the-code developers trying to overengineer an issue and make a name from themselves vs. implementing something simple, yet powerful.
As HandCash quotes Craig on in their Medium post:
It (privacy) is something that is simple to achieve in code, but has not been deployed, as the concepts haunting Bitcoin remain biased towards a misuse.
Legacy method of sending transactions
Most wallets today send transactions via the ‘Status quo’ means of taking a single input, or as many as necessary then sending to a single output address (receiver) and back to a single change address (sender).
In this manner it would be fairly is easy to tell who sent to who with some basic investigation and previous knowledge of a value transfer. Only 2 UTXOs (unspent transactions) are created from 1 in this case. We do not achieve much privacy in this case at all and it is very easy to trace.