Protect your bitcoin through privacy
A non-technical Guide to Privacy in Bitcoin
I’m writing this non-technical explainer, because many people don’t know:
- That regular bitcoin transactions do not have enough privacy.
- What measures you can take today as a non-technical user to have more privacy when using Bitcoin.
If you’re already convinced about the need for privacy and want a few actions, check the steps below:
A few practical steps to improve your privacy in Bitcoin:
- Don’t tell people how much bitcoin you own.
- Don’t publicly post your bitcoin addresses.
- Don’t re-use bitcoin addresses, most services will automatically take care of this for you.
- Run your own full node and don’t request information about your transactions from anywhere else.
- Keep your bitcoin addresses private through a tool like Wasabi wallet.
There are many more possible steps than this, but I think these are feasible to do as a non-technical user today.
With that said, if you understand what you need to do, but not why, you will likely screw up your privacy along the way. Sometimes in life, there are no shortcuts, so motivate yourself to understand, keep reading!
Table of contents:
Part 1: Learn to protect your money
You may be like Bob. Bob got interested in Bitcoin to get more money. That’s the fun part.
The less fun part is learning how to responsibly deal with that money.
How do you make sure that nobody can take your bitcoin from you? And how do you prevent becoming a target to have your bitcoin taken in the first place?
Asking you to put effort into understanding these things, is much like giving a smartphone to a teenager, and then asking them to read the manual a while after they have been using it.
Why would they do that, it all seems intuitive right? The apps handle everything, you press a few buttons and BOOM, money sent to the other side of the world.
And those rumours about what companies and governments can find out about you through your smartphone and ultimately use against you? Well, a smartphone is convenient, and that’s more important.
Don’t skip “the manual”
There are a few moments in life when it is not smart to skip the “manual”. This is one of those moments. I’m not pretending this article is “the official” manual, because there isn’t one.
As there is no manual, everyone gets a different introduction to what Bitcoin is, how it can be used, how it can be stored, what the risks are, etc.
As a result, a lot of people never learn that Bitcoin does not have enough privacy to be comfortably used by anyone, without you being tracked and judged by institutions, governments and anyone willing to pay the price for your data.
So if you got into Bitcoin to try to get more money, like our friend Bob, then you owe it to yourself to learn to protect that money, or someone smarter may take advantage of you one day.
“I don’t care about privacy, I have nothing to hide”
This is one of the most common arguments against privacy.
No matter how often people use it, they generally do care about privacy. It’s why they close their curtains in the evening, have hedges around their gardens and don’t like telling people how much they get paid for their jobs or what exactly they spend this money on.
If you really want to drive the point home, ask a parent how they feel about hundreds or thousands of organisations tracking and analysing the behaviour of their child, to influence them for the rest of their lives. A lot of people don’t care about privacy because caring would require them to change the way they live their lives. However, when it comes to people close to them, privacy is suddenly of the utmost importance.
People often don’t care about privacy, until things go wrong, much like security or insurance.
- Why make backups of the files on your phone or laptop? Until the day your laptop crashes or your house burns down and you lose years of pictures and documents.
- Why get health insurance? Until the day you have an accident, because someone was spamming vegetable emojis to their crush over WhatsApp, instead of paying attention to the road. Not to worry though, at least they will get an increase in gardening and healthy lifestyle ads on their Facebook and Instagram feeds.
- Why care about privacy? Who cares if you get different ads on the Internet? Until the day when very gradually, your opinions, the companies you buy products from and the people you hang out with, slowly begin to affect and change the way you’re expected to live your life, what you’re being charged for that, which information you get to see, and so much more. If you don’t believe this will happen, look around you in the world. It is already happening in many places.
If you don’t want to live in such a world, then privacy is important.
Privacy is necessary for an open society in the electronic age. Privacy is not secrecy. A private matter is something one doesn’t want the whole world to know, but a secret matter is something one doesn’t want anybody to know. Privacy is the power to selectively reveal oneself to the world.
- Eric Hughes in a Cypherpunk’s manifesto in 1993
Members of the Cypherpunk movement helped create many of the building blocks that made Bitcoin possible.
One of their ambitions was to create digital money, which you could use privately, as a basic human right. Bitcoin did not achieve this goal in its initial form.
Privacy in Bitcoin
Satoshi Nakamoto, the anonymous creator of Bitcoin, wrote about privacy in Bitcoin’s Whitepaper:
“Some linking of transactions to a common owner is still unavoidable, and could reveal other transactions that belonged to the same owner”
This means that Bitcoin itself is not anonymous, as many people have been lead to believe by media.
Bitcoin is pseudonymous, much like email. This means that there are still unique identities, but they don’t necessarily have your personal identity attached to them, just like you can have any random e-mail address without your name in it.
Since Bitcoin is not anonymous, there can be privacy issues. If people are able to discover your identity in the network, this could ultimately be used against you.
The development of Bitcoin is driven by many idealistic people, who truly believe in an open society with human rights. If you ask these developers what they wish Bitcoin would have had from the start, many will answer with “better privacy”.
While better privacy measures exist today and are implemented in some other cryptocurrencies, they always go at the cost of the number of transactions the system can handle.
Today you can either have a higher amount of transactions in the system but less privacy, or a lower amount of transactions but more privacy. Researchers are working very hard to have as much as possible of both, but it is a complex problem to tackle.
Part 2: Why Bitcoin needs to have privacy
To remain usable:
Imagine that each store where you spend cash, would test the bills for traces of drugs. If any traces were found, they would call the police on the spot. As the US dollar is the most widely used currency for drug trade, and 80-90% of all bills have traces of drugs on them, this would stop cash from working.
This is what some governments are currently trying to do with cryptocurrencies.
If you sell something to someone for bitcoin, and the other person is apparently a criminal, multiple governments and institutions may now be watching you, as you interacted financially with them. The government may tell exchanges to confiscate your money if you send your bitcoins there to convert them to your own currency. They may fine you, limit your international travel, or even arrest you, all because there isn’t enough privacy in the system.
Some people will try to make you believe that cryptocurrency is mostly for criminals and that only criminals want privacy, but the truth is that privacy helps everyone’s personal safety. The people who say privacy is for criminals, are often afraid of not being able to control society to do what they think is best.
If we restrict everything because criminals can use it, then we may as well stop developing any technology. Criminals can use phones, the Internet, cars to escape crime scenes, the list goes on.
To allow businesses to remain competitive:
If you run a business that mostly transacts using bitcoin, then all of your incoming and outgoing transactions would be open for analysis from your competitors. This could put you at a disadvantage. Perhaps they would be able to discover who your suppliers are and offer them better deals.
To protect your possessions:
One of the unique properties of Bitcoin is that it enables you to be the only owner of your bitcoins. While this gives you full ownership, it also creates a risk: Once your bitcoins are transferred to someone else, you cannot get them back by asking some organisation to return your money.
If you have no privacy and people can easily find out how much money you have, and then steal the keys that give you access to your bitcoins by hacking or threatening you, then you could permanently lose them.
“Right so you just need really good security?”
If the reward is big enough to break your security, then people will try. You can definitely make them fail, but wouldn’t it be a nicer feeling if nobody was trying to break your security in the first place?
That is why the next best thing is to have privacy. Make sure that only the people you want to know are aware of how much bitcoin you have, how or where you store it, when you send it, etc. and nobody else.
There are many ways in which you can improve your privacy in Bitcoin. I will go over them below.
Part 3: How to improve your privacy in Bitcoin
When only the people you want to know are able to answer any of the following questions:
- Do you own bitcoin?
- Who did you get bitcoin from?
- Which addresses belong to you?
- How much bitcoin are you sending?
- From which location did you send it?
- When did you send your transactions?
- Who else is involved in your transactions?
- Which wallet did you use to send transactions?
- What are the conditions to send your transactions?
I’ll break those questions down and give you actions for each of them. There will definitely be more that you can do as a non-technical person, these are just the things I know of.
3.1 Do you own bitcoin?
The first thing you can do to improve your privacy is to not tell everyone that you own bitcoin and especially not how much.
You may trust the person you’re telling this to, but not one of their friends who they could briefly mention it to. There are many ways in which word may travel, intentionally or not, and reach a person who may want to use that information.
If you do own bitcoin and don’t mind sharing that with people, you will often get the follow up question “how much do you have?”.
This is where things get tricky. Even if you own for example $10K worth today, that could be worth $250K in the future for all you know, which could start turning more heads in your direction.
So what do you say to the person asking? If you don’t want to tell them anything, they often assume it must be a lot. If you tell them you own $200 worth, they may not believe you if you spend a lot of time reading and talking about it.
My most common answers are:
“I’m not asking you how much you have in savings either”
“It doesn’t matter”
“I don’t like talking about that”
“I don’t see why I need to tell you that”
“Less than I wish I did”
Bottom line is, try to avoid telling and showing everyone who wants to hear it. Think about what you would answer for a minute, if someone asked you.
Unfortunately even if you don’t tell anyone, some people can still find out.
3.2 Who did you get bitcoin from?
Most people buy their bitcoin from cryptocurrency exchanges. It is convenient and accessible for those with a registered identity and a bank account.
Like other financial institutions, cryptocurrency exchanges must comply with KYC (Know Your Customer) & AML (Anti-Money Laundering) regulations. This means that they are obligated by law to ask each new customer for their personal identity, and often more information than that, such as a home address, what their job is, etc.
The idea behind collecting this information is to make it difficult for criminals to use cryptocurrencies. In practice though, it doesn’t achieve this goal and even helps criminals in some ways.
As most cryptocurrency exchanges store a lot of user information, they become attractive targets for hackers. When customer data is stolen, the hackers know exactly who owns cryptocurrency and may go after these people next. Alternatively they can also sell that information to interested parties.
It’s not just the hackers you need to worry about. Governments can legally request your personal information from cryptocurrency exchanges. This gives them insight into who owns cryptocurrency, how much and to which addresses it was sent. Depending on where you live in the world, you may not feel comfortable about that. There are plenty of examples throughout history of governments confiscating goods or fining/jailing people who wouldn’t comply. Even if bitcoin is legal in your country today, this may change in the future. Unfortunately by that point your information is already out there.
These KYC and AML regulations don’t affect criminals too much, as they will always find ways to circumvent the rules of the system. Alternatively, they will simply stick to using the US dollar for their criminal activities, as they have been doing for decades.
Most of all, these regulations hurt the 30-40% of the adults in the world that can’t open bank accounts or don’t have verified identities because they fled their homes, the infrastructure isn’t there, or the cost is too high for them.
If you don’t feel comfortable about the risk of buying cryptocurrency through an exchange, you have three options:
1. Earn your bitcoin, ask to get paid in it for the work that you do. If your employer does not want to buy any, you could consider using a service like BitWage, though they will need to identify you too, which defeats the privacy advantage.
3. Buy it for cash in person, but there are plenty of risks that come with that too. If you are new to bitcoin, I don’t recommend it unless you’re willing to do your research.
For a full overview of all your purchasing options anywhere in the world, I recommend to take a look at buybitcoinworldwide.com. Note that I don’t have ties to any of these websites.
Did you already buy your bitcoin from an exchange? Or are you not interested in the alternatives? There are plenty of steps you can still take to improve your privacy.
3.3 Which addresses belong to you?
This is where things go wrong most of the time. Once someone knows an address that belongs to you, they have a starting point to figure out more about you.
To understand why that is the case, you have to understand the basics of how the Bitcoin network keeps track of who owns what. If you already know that, then you can skip this section!
How the Bitcoin Network keeps track of who owns what:
Every time you send a bitcoin transaction, you broadcast it to the Bitcoin network. Each node in the network will verify several things, including:
- Did you sign the transaction to prove that you own the keys?
- Do these inputs still have bitcoin on them?
- Do you have enough bitcoin to send this transaction?
Signing? Keys? Inputs? Let’s break that down.
A bitcoin transaction has each of these four components:
- An input: This is an amount of bitcoins in an address owned by you. There can also be multiple inputs, for example when you are combining the balances of two addresses to make a bigger payment.
- A signature: This is your proof that you are allowed to spend these bitcoins. If you use multiple inputs, then each input also needs its own signature.
Note: In a future technological upgrade to Bitcoin, this will be reduced to one signature that is combined for all of the inputs, which makes the transaction take up less space in the Blockchain, and thus cost less in transaction fees.
- An output: This is the recipient address of the bitcoins that are sent. It is possible to have multiple outputs for many reasons. Perhaps you are sending money to multiple people in one transaction. Or if you have more money in an address than you wanted to send, the difference won’t be kept on the original address. It will be sent to a new address controlled by the same wallet. This prevents you from re-using the same address.
Note: Each output can in turn become an input for the next transaction. A good metaphor to understand this is the idea of passing something on, where you use your hand to receive something, but in turn use it to give that object to the next person. The blockchain is essentially a record of a lot of things being passed on from hand to hand.
- A script: This is a small program that determines the conditions that must be met to send these bitcoins. An example of this is that a certain amount of time must have passed, or that multiple keys are needed to be able to send this transaction, as an extra security measure.
So again, every time you send a transaction that has these 4 components, each node in the Bitcoin network will verify several things, including:
- Did you sign the transaction to prove that you own the keys?
- Do these inputs still have bitcoin on them?
- Do you have enough bitcoin to send this transaction?
If the transaction passes all of the checks, it can be included in a new block in the blockchain, along with other transactions. Once a participant in the network manages to create a new block and includes your transaction, each node will receive this block and verify its contents.
Once the block passes all of the checks, it will be attached to the blockchain that this node is storing. The node will then go through all of the inputs and outputs of the transactions in this block, to update its most recent list of “unspent transaction outputs”, known as UTXOs. This is a list of addresses from which money can still be spent. So if you used an address, it will be scrapped from that list, and replaced by the new address(es) that received the bitcoin.
The UTXO list allows nodes to quickly inform you if a bitcoin transaction was valid or not. Instead of having to look through the entire history of the blockchain for each request, the node only needs to check this recent list of transactions, which is much more efficient.
This idea works much like a “cache” on all kinds of computers, including your smartphone. They have a separate, smaller memory, in which they store information that you frequently need to access, so that it takes less time to find it. Even your brain has its own short term memory.
The UTXO list works just like this, it is a performance improvement, but it is also the list of every single address that currently owns bitcoins. At the time of writing this article, the list contains about 75 million addresses.
If someone knows that an unspent transaction output belongs to you, they at least know how much bitcoin you own in that output.
Common scenarios to link your identity to a bitcoin address:
1. If you bought your bitcoin on an exchange and then requested to move it off the exchange, they will still know where it was moved next.
2. If you send someone who knows your identity a bitcoin transaction.
3. If you ordered something online for bitcoin and then provide a name and address to get it delivered.
Let’s go a bit into detail on each of these scenarios.
A business knows one of your addresses
Regulated exchanges are required by law to comply with Anti-Money Laundering and Know Your Customer regulations, so that if a criminal tries to cash out their cryptocurrency through the exchange, they can be stopped.
To track if this is happening, they will analyse the Blockchain themselves, or hire a company to do it for them. They will take your address that interacted with the exchange as a starting point, and see what happened before and after the interaction.
For example, if you received your bitcoin from the exchange, and then want to make a payment that is bigger than the balance on that address, your wallet would use the balances on two or more addresses, as we learned before. The analysis firm will now assume that the other address belongs to you as well, because in most cases, it does belong to you.
Like Satoshi Nakamoto said in Bitcoin’s Whitepaper:
“Some linking of transactions to a common owner is still unavoidable, and could reveal other transactions that belonged to the same owner”
At this point, the analysis firm can look into the transaction(s) related to that address as well, and start mapping out all of the activity. They can filter out known addresses such as those that belong to exchanges or other businesses, to gradually start creating an overview of who is sending money to who.
The more individuals they are able to map, the easier it becomes to learn more about the rest. This is much like creating a jigsaw puzzle.
Creating the edges is easier because you have some information about them (the flat side in the case of the puzzle). In the beginning you have to look at every piece a hundred times, but gradually over time, more and more pieces fall into place.
One thing you can do to avoid an exchange from being the starting point, is to use a decentralised exchange such as Bisq, or a non-custodial exchange like Hodlhodl that never holds your bitcoin and thus doesn’t need to know your identity.
What about non-exchanges?
Someone who doesn’t know your real identity might try to analyse your transaction history too. They could know one of your addresses if they received a transaction from you, or if they found your address somewhere, like in the blockchain itself.
Fortunately it’s often difficult to draw meaningful conclusions from this one address for most people, because they don’t have as much information as the exchanges do.
Additionally, there are steps you can take to make it near impossible for anyone to link your personal identity to your addresses.
Don’t re-use addresses
Re-using addresses makes it very clear that different transactions are made by the same person. A bitcoin address should ideally only be used once. Fortunately, most wallets will automatically manage this for you and create a new address for each transaction.
The number of possible addresses is so large that it would be impossible to run out of them, even if all of the computers in the world were constantly generating new ones for a billion years, so that’s not a problem you have to worry about.
If an observer sees you send a transaction from your address, it’s difficult to tell whether you sent it to another address that you own, or to an address that is owned by someone else.
If you had a bigger balance on your address than you needed to send, and the transaction gets split into two outputs, then the observer now needs to figure out which of the 2 balances still belongs to you.
Sometimes it’s obvious, if an address has 1.8 btc and is split up in 1.76 btc and 0.04 btc, it’s very likely that the 1.76 is kept by the original owner and the 0.04 went to a new owner.
If this 1.8 btc was more evenly split however, it would be more difficult to tell if a part still belongs to the same owner. Some of the privacy improvements out there today make use of this principle.
How likely it is for the observer to find out which address belongs to you depends on what you do next with the bitcoin in it. This managing of your transaction outputs is called Coin Control. This is a practice for more advanced users or those with a very high need for privacy.
Remove the traces of which addresses you own
If anyone knows which addresses belong to you, you may want to do something about this. The most popular method for this today is called a Coinjoin.
I’ll explain to you how a Coinjoin works. If you just want to do it, follow this video guide.
How does Coinjoin work?
You already learned before that a transaction can have multiple inputs and multiple outputs. Some of the outputs may belong to you, while others don’t. This is also true for inputs. Not all of the inputs of a bitcoin transaction need to belong to you.
This means that you can create a transaction together with anyone else, even with many people.
It’s like going to a bar with friends and all putting in a bit of money to order drinks with for the rest of the evening. It’s difficult to determine which exact money was used to buy which drink, but everyone knows the bar was paid fairly and that the change was split in the end.
You may not always want to spend money to anonymise your money though. So we need a different mechanism.
Imagine that you and a group of 50 people put money in a box. This box is shaken and afterwards each of you get the same amount of money out that you put into it in the first place. This makes it difficult to determine what the previous owner of each coin or bill was.
In the physical world, nothing stops any one of those 50 people from putting in fake money, running off with the box or taking more money than they put in. The extra security measures that you need to take to ensure this happens in a fair way, are costly.
In the digital world however, it is possible to create a programmed version of this “box” mechanism, that will ensure nobody can cheat. This allows anyone to participate in a coinjoin transaction, without having to trust any of the other participants. In fact, you don’t even need to know who they are. Your computer will simply check if they can prove that they own bitcoin and that they do their part in signing the collective transaction.
On the surface, it sounds complex to mix up your money with strangers around the world to maintain your privacy. In practice however, it’s just a computer program and a few clicks on some buttons, not magic.
All participants will pay a small fee to record this “Coinjoin” transaction that “shakes the box” in the Blockchain, just like any other bitcoin transaction pays a fee. From an outside perspective, everyone in the world can witness that the box was shaken, but nobody knows anymore which money previously belonged to who.
If you want to participate in a Coinjoin, the most difficult thing is to find enough other participants who are also willing to put in their money. Fortunately, this is becoming easier with time as more people learn about the tools that are available. According to recent research, 4% of all bitcoin transactions are now Coinjoin transactions, triple that of 2018.
You’ll want a bigger group of people to do a Coinjoin with, because tracking a small group of people is not too difficult. However if 50 or even 100 people perform a Coinjoin together, the possibilities of which money belongs to who are too large. You effectively become anonymous by hiding in a crowd.
Warning: It is possible that some exchanges who see that you participated in a Coinjoin will request more information from you if you try to exchange your bitcoin for another currency through their services. I do not know of any instances like this myself, but I don’t rule out the possibility in the future.
Note: The privacy-focused Samourai Wallet includes an interesting innovation called “STONEWALL”. It allows you to pretend to do Coinjoin transactions by only using your own addresses. This counters the assumption that any transaction with a lot of inputs and outputs is a Coinjoin transaction with many other participants.
Hopefully in the future, wider adoption of such features will stop people from bothering to ask a lot of additional information.
Hiding Coinjoin transactions
The ultimate solution will be to make a Coinjoin transaction look like any other transaction on the blockchain, so that observers cannot tell whether a Coinjoin transaction, real or fake, has happened.
Developers are currently working to make this possible. They want to make it possible to combine all of the inputs of a transaction into one, and all of the outputs into one as well.
This makes a Coinjoin transaction with its many inputs and outputs, look identical to a transaction with just one input and one output. It doesn’t require the individuals to trust each other, they only need their wallet to sign their part of the transaction and the rest can happen automatically.
If you want to learn more about this, read this excellent article on Taproot and Schnorr Signatures.
How to participate in a Coinjoin?
Move your transactions off the blockchain
I have explained earlier how transactions can be tracked, as they are permanently stored in the blockchain. However, Bitcoin was not created so that everyone can tell exactly what you spend your money on. It was created as an alternative financial system, in which nobody is able to create money out of thin air, like Central Banks do in the traditional financial system.
As long as you can prove to the Bitcoin network that you didn’t create any new money, everything is fine. That is the only goal of using a blockchain to record transactions.
So if you want to stop people from being able to track all of your transactions, one solution would be to not record every single one of them in the blockchain.
Use the Lightning Network for off-chain transactions
The Lightning Network is one way to move some of your transactions off the Blockchain. This makes it cheaper, faster and more private to use than regular bitcoin transactions. I’ll give you a brief overview of how it works.
Savings and checking accounts
To understand the relationship between Bitcoin and the Lightning Network, it helps to use the analogy of your savings and checking accounts at the bank.
Your savings account typically has a low number of high value transactions. You usually add money to it that you earned or saved, and you withdraw money so you can spend it. In Bitcoin, your bitcoin wallet is this savings account.
Your checking account typically has a high number of low value transactions, for your everyday expenses. In Bitcoin, your lightning wallet is this checking account.
If you move some money between your savings account and your checking account, so between your bitcoin wallet and your lightning wallet, that transaction is recorded in the blockchain.
However, when you spend money from your lightning wallet, this is only communicated with the other people involved in these transactions. These people are also connected to the Lightning Network, by having some funds of their own in their checking accounts/lightning wallets.
This means that if you want to send money to someone on the other side of the world through the Lightning Network, only you and this other person will know that this transaction was sent.
Once you want to take the funds out of your checking account on the Lightning Network and put them back into the savings account, this transaction will also be recorded in the blockchain.
No record is left behind in the blockchain of what exactly you did with your money while it was in your checking account. People can only see that you funded your checking account, and then withdrew some money to your savings account again.
Finally, you cannot fool the system that you fund your spending account with money that you don’t have, and you cannot fool it by withdrawing more money than you had left in your spending account.
The Lightning Network is still constantly being developed and improved. It’s possible that many of the difficult terms to understand what goes on behind the scenes will disappear in time. While there are many challenges to perfect the Lightning Network, it is already usable today.
Getting more people to adopt it rather than doing regular bitcoin transactions will take some time, but ultimately if it is easy, cheaper, faster and more private to send these lightning transactions, people will see the benefits.
If you want to get started using the Lightning Network, check out this overview of wallets that can make use of it. In time every wallet out there will be able to use it.
With all that said about how to keep your bitcoin addresses private, let’s move on to the next steps you can take to improve your privacy.
3.4 How much bitcoin are you sending?
Today if someone knows which bitcoin addresses belong to you, they know by default how much bitcoin is on them, and how much you are transferring when you send a transaction.
Why does this transparency exist you may wonder?
It allows any node in the Bitcoin network to verify how many bitcoins currently exist. A node can ensure that no bitcoins have been created out of nothing. To do this it can work its way back to the start of the blockchain and check if all bitcoins have an origin somewhere in the chain. At one point in time, each bitcoin was awarded to a miner that spent electricity through his or her computer to generate a block of transactions. This is the only way for bitcoins to be created. They may be passed on an infinite number of times afterwards, but once they were a block reward.
The system is designed in such a way that there will never be more than 21 million bitcoins. This makes it a scarce currency, unlike other government currencies which can be printed at any time by a government or central bank.
When anyone attempts to create bitcoins out of nothing, the nodes in the network instantly realise this and reject the attempt.
However, the cost of this security is that anyone can see how much bitcoin is on each address. People don’t necessarily know who these addresses belong to, but if possible, you would likely prefer this to be private and only revealed to others who you decide to show this to.
Unfortunately, there is no way in Bitcoin today to hide the amount of bitcoin you have on an address, or how much you are transferring to another one.
Developers are working on ways to make this possible. The best known project that tackles this problem is Confidential Transactions.
In a confidential transaction, it is possible for anyone that see that bitcoin has been sent, but not how much.
To achieve this, the amount that is transferred from one address to another is encrypted. The encryption works in such a way that it is still possible for nodes to verify that no bitcoins were created out of nothing in this transaction. Everything still adds up to the right numbers, without actually revealing any more information to the outside world. It sounds like magic, but that’s the power of cryptography and math.
The recipient of the transaction will be able to verify that they received the right amount, and everyone involved in the transaction can also grant access to viewing this transaction through an extra key.
It is likely that if developers would solve the necessary problems to make confidential transactions work, it would become a topic of much debate in the Bitcoin space. Some people would love to have this confidentiality in Bitcoin, while others are against it for various reasons, such as the concern that governments may try to make it more difficult for people to use Bitcoin if they can’t tell how much money is being moved.
Today most governments don’t mind Bitcoin too much, because of its open, public nature. The moment anyone can privately use it however, many may change their stance and actions.
Some people hope that a middle ground can be found by offering access to a government when requested, through this extra key to the confidential transaction that I mentioned above.
As you can see, there is much work to be done, both on a technical and a societal level.
Of course the people who are trying to build and improve the technology, want to spend as little time as possible fighting against governments, but they also want to do what they believe is right.
Out of all the technological upgrades that may ever come to Bitcoin, it is likely that full privacy will be the most contentious one.
3.5 From which location are you sending bitcoin?
This may sound unimportant, but it can be used as a detour to tie your identity to your bitcoin addresses.
You may think people won’t bother to go this far, but like I said before, if the reward is great enough, someone will put in the work.
In the most extreme case, you might live in a country that has banned the use of Bitcoin. You definitely wouldn’t want the government to be able to find out you are sending transactions from a certain location.
Which IP address sent this transaction?
If you are using a mobile wallet to send bitcoin transactions, your wallet will likely broadcast your transactions through one of the nodes that the company behind the wallet operates.
You can usually change the node that you are sending transactions from in the advanced settings of the wallet. I highly recommend doing this, it’s a small but major privacy improvement.
No matter what node you use though, the operator will always be able to tie your bitcoin addresses to your IP address, so it should be someones node who has no financial interest in mapping users of the Bitcoin network.
You could run your own full node, which is also one of the best ways to contribute to the open Bitcoin network as an individual user. Setting up your own Bitcoin node is pretty easy, and there are more out-of-the-box solutions coming to the market as well.
Another way to not tie your physical location to your bitcoin addresses is by using a different IP address to broadcast your bitcoin transactions. This can be done through a wallet that can connect to a VPN, or to the Tor Network, such as Samourai Wallet on Android, or Wasabi Wallet on desktop.
The best way is a combination of these 2: Running a full node that is connected to the Bitcoin network through the Tor Network, but this requires a technical background to set up so I won’t be going deeper into it.
Who is requesting information about the transaction?
A second way people could find out is by monitoring who is requesting information about transactions from a full Bitcoin node or a Block explorer. A block explorer is like a search engine of a blockchain.
If a transaction was just broadcast, and one specific IP address requests information about this transaction, it is quite likely this IP address belongs to the person who sent or received the transaction. If they come back a second time 10 minutes later, this makes it even more likely.
While it’s possible to hide your IP address by using a VPN or a service like the TOR network, this is not ideal for non-technical users. Some developers are working on ways to encrypt all of the information sent between nodes and wallets, but this comes with many challenges.
Other developers are working on ways to make nodes provide a generic ‘sketch’ of recent blocks of transactions in the blockchain. This sketch takes up little space compared to all of the contents of those blocks, so that even a mobile phone can look at it without consuming a lot of data.
Now instead of requesting information about a specific transaction from the node, your wallet will instead use the sketch to determine if there is any possibility at all of your transaction being in the blockchain.
If the transaction is not in the blockchain yet, then you don’t need to request the specific transaction from the node and you keep your privacy.
If the transaction is in the blockchain, then your wallet will request a block of transactions to verify if the transaction did indeed happen, rather than requesting one specific transaction. In this case you also keep your privacy as blocks tend to have thousands of transactions.
Until these technologies are developed enough and adopted by most nodes and wallets, be careful with the information you request from block explorers. If you can run your own node, it is safer to request information from this node instead.
If you don’t know how to connect your mobile wallet to a node that you trust, look up how it works for your specific wallet. You will often find this in some kind of advanced settings, and it will involve you typing in the IP address of the node you want to connect to. That is all you’ll need to do for a major boost to your privacy!
Who first broadcast the transaction?
Another way people could find out is by monitoring the nodes in the Bitcoin network, as it is public and open to anyone. Each node in this network has a public IP address, like any router at home or work does. These devices can thus be traced to an approximate physical location.
The people (or computer programs) monitoring the network can sometimes discover which node first broadcast a certain transaction, by connecting to as many of them as possible and comparing the times.
If they’re able to find out which node broadcast a certain transaction first, it is very likely that this was the node that the sender must have used. Currently, someone with the knowledge and tools can link bitcoin and IP-addresses together with about a 30% success rate.
Fortunately, some Bitcoin developers are working on software that can make a node randomly and very slightly delay transactions by at most a few seconds. This project is known as “Dandelion++” and makes it impossible for outsiders to determine where a transaction originates from, with minimal downside.
Normally seen when you want to send a transaction, your wallet will broadcast it to one node, which will in turn broadcast it to the nodes it is connected to. This repeats itself until the entire network is aware of the transaction.
The Dandelion++ protocol will instead make a node randomly select another node and ask it to keep this broadcast private. This node will in turn do the same thing, pass the transaction on to yet another node. This phase of the transaction is known as the “stem”.
Each time the transaction is passed on however, there is a 10% chance that the node who receives it will start broadcasting it to everyone else. This phase is known as the “fluff” phase.
As the Bitcoin network is so interconnected and you can reach any other node through just a handful of hops, then any node in the network could end up being the one who broadcasts the transaction first, which makes the time and location of the broadcast random.
If the previous nodes who kept the transaction privately in the stem see that the transaction has entered the “fluff” phase and is being spread out, they will in turn do the same thing.
As a result, if someone is monitoring much of the network, they would not be able to properly link bitcoin addresses to IP addresses, or find out which nodes were helping out in the Dandelion++ protocol.
Of course the operator of the node that you broadcast the transaction from would still know your IP address, but if you use your own node, or the node of someone who is not trying to monitor the network for specific activity, then this is not a problem.
Dandelion++ is expected to be integrated into Bitcoin in 2019 still. It does not impact the user experience besides a few seconds at most, it can be added to node software without any changes to the Bitcoin protocol.
3.6 When did you send your transactions?
As we’ve established, the people who analyse the blockchain are curious about which addresses belong to a certain identity.
If you send a transaction that results in 2 outputs, so 2 addresses that now hold a balance in bitcoin, it is not clear to an outsider if both, one or none of these addresses belong to you.
They will be carefully watching both of these addresses to try to figure out more information. One piece of information they could use is at which time this next address broadcasts a transaction.
If they know you are based in Mexico, and one of these addresses broadcasts a transaction at 3AM local time in Mexico, that is an extra piece of information that shows it is unlikely for you to have control over this address. It may sound far-fetched, but again, if the reward is big enough, people will pay attention.
One way to make this method obsolete is to broadcast a bunch of transactions at various times, but this requires a bit of extra work.
Another way is by using the Lightning Network that I wrote about before. Someone who is watching an address will only notice that the owner is accessing the Lightning Network when they set up a new channel. Whatever transactions happen on the Lightning Network itself will be undetectable.
3.7 Who else is involved in your transactions?
On the Bitcoin blockchain itself you are unfortunately dependent on how good the other participants in your transaction are at protecting their privacy.
On the Lightning Network, it becomes impossible for observers to tell who you sent transactions to, as these transactions are never recorded in the blockchain.
A transaction on the Lightning Network is passed through a number of different nodes in the network. However, these nodes can only find out who to send the money to next. They don’t know who first sent the transaction, and they don’t know who the final recipient is. Only that final recipient will know, as there won’t be any instructions left.
3.8 Which wallet did you use to send transactions?
When you want to send a bitcoin transaction, it helps to pay a fee for the miner that is including your transaction in their block, which in turn is added to the blockchain.
As there is limited space in each block, the miner will usually take in those transactions that pay the highest fee.
Many wallets will try to guess the minimum that is needed to make sure you are included in the next block in the Blockchain. They have their own fee estimation software for this, so this makes it possible to find out which wallet someone used to send their transaction.
You may think this doesn’t matter very much, but if a thief knows beforehand where you’re storing your money, it becomes easier for them to pressure you into giving access.
If they can tell that you used a hardware wallet, a certain mobile wallet, or if you created a transaction by hand, that increases risk.
An additional reason why you don’t want people to know which wallet you used, is that some wallets always put the output that forwards the change to you, in the same order. For example always last.
So if a certain wallet always puts the bitcoin that you keep in the first or last output of the transaction, any observer has an easier time to figure out which bitcoin belongs to you.
3.9 What are the conditions to send your transactions?
To add on to the previous part, you also don’t necessarily want people to know exactly what is needed to send a certain transaction.
You may be wondering, what do you mean, “what is needed?” One of the amazing things about cryptocurrency, is that you can manage the money to work in specific ways.
As explained before, a bitcoin transaction has a bit of space for a small script. In this script you can include certain conditions, such as a certain amount of time that needs to pass before a transaction can be sent. A transaction with these conditions is known as a Smart Contract.
Another one of these smart contracts is a multi-signature transaction. This requires multiple people or devices to confirm a transaction before it can be sent, as an extra security measure. You could require 2 out of 3 people to send a transaction, or 3 out of 7, etc.
This practice is widely used by businesses to prevent any person from being able to steal all the money and bankrupt the company, but it can also be used by anyone else.
However, you may not want people to know you are doing this, or how exactly you’re doing this. Some future upgrades to Bitcoin will make it very hard for people to figure out your security measures by looking at the blockchain.
That’s it. Those are the different ways (I know of) where people may be able to infringe on your privacy. Now let’s take a look at what the future holds.
A few future upgrades to hide your conditions to send transactions
In a standard bitcoin transaction, each input of the transaction requires its own signature. An observer can now tell exactly which of the parties involved in the multi-signature transaction, actually approved it.
Bitcoin is getting this upgrade called Schnorr signatures, which will combine the signatures of all of these inputs into one signature, which will make it impossible for an observer to determine if it is a multi-signature transaction or not.
It’s not necessarily bad if people can see that you have taken extra security measures, it may deter them from trying to take your money. It does help however if they don’t know which exact measures you have taken.
You could even have many different conditions to send a transaction, and only ever publish the condition that is fulfilled to the Blockchain. Some Bitcoin developers are working on a way to enable this. The working name for this technology is called MAST.
Others are working on a way where a transaction with a smart contract, would look identical to any other transaction that does not have one. The working name for this is Scriptless Scripts.
The future of privacy in Bitcoin
Privacy in Bitcoin is not good today. It takes extra work to acquire it, for benefits that are difficult to measure the value of, until things go wrong.
To make people want to protect their privacy, it needs to be almost as easy as not protecting it.
Anything that can be done to include privacy in Bitcoin itself, rather than people being forced to use specific solutions built on top of it, is worth looking into. Fortunately many smart developers are doing this and we’re getting some amazing improvements from time to time.
If you have suggestions for improvements or additions to this article, please reach out. Like my target audience, I’m a non-technical user of Bitcoin, so it’s likely I will get some things wrong.
If you want to support me in writing more of these articles, that would be much appreciated. I spent a lot of time researching and writing this article and believe it or not, on the drawings too.
Sam is a Bitcoin & Blockchain educator. He has been learning about them every day for years and uses his knowledge to help others understand and these complex topics in simple terms.