This seems overly complicated. Is there any reason why Bitcoin isn't private enough as it is?
You presented a hypothetical situation which has not occurred yet. It's not perfectly private but compared to credit cards and banks its very private. It's almost as private as cash.
I edited that post down from a longer (4000 word?) version which included some specific examples that I had some personal involvement in: The (third?) ozcoin thief, who was identified by sending funds to a wallet service that reused addresses (and ultimately had those funds clawed back), and a person who had an insecure brain wallet found by a whitehat, ultimately tracked down and contacted due to a mining pool which reused addresses.
There are many other examples of privacy in Bitcoin being weak— one only needs to spend a few minutes browsing through
bc.i's public block explorer interface to see real names attached to transactions (found by spidering webforums) and frequently accurate IP addresses (associated by connecting to many nodes), and from there you can find additional related addresses with the taint analysis button. Or look at the
academic research "Bitcoin is not inherently anonymous. It may be possible to conduct transactions is such a way so as to obscure your identity, but, in many cases, users and their transactions can be identified." (papers on Bitcoin are of, ahem, highly variable quality— but the point remains, Bitcoin's privacy as it is today is not very good).
The privacy gap between Bitcoin and cash for most users is enormous, enough so that we
have an explicit warning on Bitcoin.org:
"Some effort is required in order to protect your privacy with Bitcoin. All Bitcoin transactions are stored publicly and permanently on the network, which means anyone can see the balance and transactions of any Bitcoin address. However, the identity of the owner cannot be associated with their Bitcoin address until personal information is revealed by the owner during an exchange. This is why it is recommended for Bitcoin owners to use many different Bitcoin addresses; in fact, you should create a new one each time you receive money. This is especially important for public uses such as websites. You might also want to consider hiding your computer's IP address with a tool like Tor so that it cannot be logged."
Ignorance of these limitations makes the situation worse because without being acutely aware of the risk you will transact in ways that leaks more information about you and the parties you trade with.
Okay here is a potential attack which is enabled by anonymity in the Bitcoin network.
Let's say I'm a government agency and I decide to exploit the fact that Bitcoin allows anonymous transactions. What I could do is covertly corrupt and take over entire countries utilizing anonymous transactions. I could initiate a covert operation where my government prints unlimited amounts of fiat currency, then it's agents go and buy Bitcoins and then these agents can now bribe any politician anywhere in the world. For sake of argument let's say the currency is the dollar and the agency is the CIA.
What is to stop that agency from playing Santa and bribing anyone and everyone with unlimited ability to buy Bitcoins or mine them? In this case being anonymous would allow for copious amounts of political corruption and opulence at the expense of democracy itself.
Now for a less conspiracy based attack, how about we look at Satoshi Nakamoto himself? A private citizen who has a million Bitcoins? If we make the network anonymous what is to stop him from taking over entire countries politically? He would essentially gain almost Jesus like power over countries where he would be able to bribe any politician, any private citizen, with anonymous payments into their Bitcoin wallets.
In a pseudo-anonymous world we would know at least that someone we suspect to be Satoshi Nakamoto or affiliated with the early blocks are spending coins and we would know what amounts and other little details so that we could limit corruption via transparency. How can we limit corruption in a world where the 1% can spend anonymously?
Despite the myth and rumor, cash is not anonymous. You cannot get cash from an ATM without being on camera. You cannot accept cash from another person without them potentially finding out your identity or seeing your face. If you send cash to a politician in the mail your finger prints and other evidence will be left behind. Bitcoin is different because if it becomes anonymous then any billionaire in the 1% could decide to buy a state political system and systematically bribe politicians with anonymous Bitcoin rewards and there would be no way to counter this except with a fork.
Ultimately I think anonymity seems to be more a reaction to government overreach but not a long term solution to government corruption. If you put in anonymity then the corruption may become more hidden, and governments wont lose any power. Governments will be able to finally get involved in manipulating the Bitcoin economy and network. They'll be able to do it covertly with operatives, but there is nothing to stop a government from doing this.
For that reason I think more thought on the philosophical level should go into how to implement anonymity in a way which it cannot easily be exploited by the bad guys or have unintended consequences. If corruption is why our governments are bad, enabling it is only going to make it worse. I think for myself what I want is the ability to buy something privately and not have what I buy be known, but I don't necessarily need my transactions hidden. Anyone can know my pseudonym spent X amount of Bitcoins, just so long as they don't know what I spent it on.
If people want to know what I spent it on they'll have to ask personally. That is private information. Secret is a different matter because then I wouldn't even be able to tell you. So how do we set things up so that if I wanted to help fight against corruption or clear myself in an investigation I can do so while also maintaining my anonymity? I think pseudo-anonymity would allow me to do it easiest because I could digitally sign my receipts detailing what I purchased and it could be released in the future to clear myself of any wrongdoing.
I think as long as the user has the ability to be pseudo-anonymous while also having the ability to do record keeping, then if there is an incident then Alice has detailed records of all her transactions and what she purchased which she can give to Gordon to prove her innocence. If she does not have this information then she cannot prove her innocence to Gordon and that is an existential danger to Alice. I'm interested in lowering the risk to Alice (who represents the user who is using Bitcoin for legitimate purposes). I don't want to help Mallory or Eve.
At one point in the conversation I brought up CoinJoin and what it makes possible and his immediate reaction was, "That will have to be stopped."
They can't even be distinguished. Short of a complete lockdown (and a total failure of the system) there is no way to block the activity or even reliably measure how much of it is going on.
I don't think this actually presents much concern to authorities— they manage to survive in a world where cash and other asset transfers leaves few records already. When tax authorities question you to make sure you're paying your taxes, they'll ask to see your books same way it works with anything else... and nothing in this thread will protect someone there, at least in the US the responsibility is on the taxpayer to show they paid their taxes. But in any case, the political debate is moot... just due to the technological inevitability of this: I've tried to think of a way to prevent it, and I cannot.
Precisely, the political debate is moot. Because the technology is economically superior and demands this solution, it is inevitable. In fact, I would not be surprised to see a successful CoinJoin functionality implemented in an alternate client before the end of the year, e.g. as coderrr's coin selection patch was. And this will only be Gen 0 for anonymising tools ...
The modern State needs to abandon their utopian panopticon matrix ambitions and go back to doing proportional policing relevant to a free society, for many reasons too numerous to mention.
Besides, this is a Development & Technical section ... suffice it to say, CoinJoin and other anonymising tools are inevitable ... just like Judgement Day.
When we design these technologies we should look at use cases. In my thinking the user worth protecting in my use case models is Alice. Alice is the user who wants to use these technologies for legitimate purposes, who wants her privacy to buy books without Eve or Mallory knowing everything she buys without a warrant.
Gordan (the government agent) wants to investigate Mallory (the malicious user). if he has a warrant he should be able to go to Alice and get information from Alice to reconstruct the events. He will want to know what she purchased, when, what Bitcoin addresses she owns, etc. The addition of anonymity on the network puts an additional burden on Alice to keep records of everything she purchases. It also will make it much more likely that she'll be contacted by Gordon as part of an investigation.
The solution I offer is to make detailed record keeping easy and simple. These records should be good enough that if investigators do have a warrant that you can show that you're not a threat. This is necessary to protect Alice by lowering her risk of being falsely accused and it helps save Gordon time because he wont have to worry about as many false positives.
Mallory and Eve are the problem characters. Eve wants to wiretap everyone without a warrant or reason and just snoop around. Mallory wants to hack everyone or use the Bitcoin network for malicious purposes such as pursuit of political power, as part of a crime network, or perhaps a government plot or conspiracy.
Alice justs wants to be able to buy books and not have everyone know what book she's buying and when. If there is a warrant Alice is willing to provide the information to clear herself and prove she's not involved with terrorism. The point here is that any design has to make it easy for the user to deal with different plausible scenarios. The default user is Alice, but Mallory or Gordon could also be users of the Bitcoin network.
The idea I have is to empower Alice to collect and store her own digital fingerprint and digital trail. This trail could be useful if she's ever questioned by Gordon. It should have as much or as little detail as deemed necessary to legally clear herself and the amount of detail in the records should be set by Alice but it is clear to me that there can be no invisible transactions in a secure system.
The transactions have to be recorded somewhere by someone. It does not have to be recorded by Eve though. So when you take transactions off the public ledger, in my opinion you must record transactions on a private ledger of your own. This means Alice can have anonymous transactions, but she's going to have to keep detailed records of account of each of these transactions, because someday she's may have to explain those transactions. The assumption people have is that Alice will be able to have anonymous transactions without any added responsibility, that is very unlikely. In my opinion it means more responsibility on Alice.
It's going to reach a point eventually where if Alice cannot explain every transaction by providing her private ledger to Gordon during the investigation, that she could be jailed. As a result it may become just as important to backup your transactions and digital details as it is to backup your wallet. Right now it's all handled by Bitcoin itself so no one is forced to religiously record every transaction they make.