Running a Bitcoin Full Node for Privacy
You may listen to the podcast version of this essay here.
Dear privacy seekers,
We talk about Bitcoin because it is an excellent alternative to the surveying monetary systems that we have been forced to comply with: whether that is modern banking with its Know-Your-Customer mandates, or VISA, or services such as PayPal that are unreliable and even censorious these days. The last couple of years of cancel culture has shown that financial services are untrustworthy business partners, and can destroy you because they know who you are and control your money and play politics instead of doing their job. Bitcoin, when used properly, gets around all of this, allowing you to make digital transactions without anyone needing to trust you, and without anyone having the ability to shut you down. Bitcoin full nodes make Bitcoin’s sovereignty even better.
If you get deep into Bitcoin privacy you’ll encounter the following statement: “If you value your Bitcoin privacy you should run your own node.” There is much to unpack in this statement, and that is the topic of this episode.
Discussing full nodes gets us into the architecture of Bitcoin, and you know that I believe in always starting with the fundamentals. The entirety of the digital money known as Bitcoin really just boils down to two things: (1) a file that contains all of the Bitcoin transactions and their owners (the blockchain or ledger), and (2) the computer code that explains how his data will be transmitted. Sure, there are more complexities to this code, or Bitcoin protocol. You have the intricacies of how private keys and public keys work, how seed phrases work, and various other of Bitcoin’s genius mechanisms. And you can view all of this open-source computer code on the Bitcoin repository on Github. Pull up a browser and visit: https://github.com/bitcoin. Bitcoin is simple in the sense that it is merely a ledger that everyone can see with a few rules about how the text of that ledger changes hands.
What then is a Bitcoin node? A Bitcoin node is Bitcoin. A node stores all of the code that we just talked about. Remember, Bitcoin is not centralized. It is not disseminated from Github. That’s just where people work on Bitcoin and make the code available to analyze. When we say that Bitcoin is decentralized what we mean is that it is run on thousands of nodes across the world. All of these nodes are running the current version of Bitcoin that you and I and the miners rely on when we use Bitcoin. If all Bitcoin nodes were shut down across earth, there would be no Bitcoin; conversely, as long as there is one node running, then Bitcoin can exist. Bitcoin exists through its nodes.
Running your own full node is also important for privacy reasons that we’ll get to in a moment. But it’s worth reiterating that nodes are essential for Bitcoin’s existence. In addition to, well, being Bitcoin, these nodes verify incoming transactions to make sure they accord with the Bitcoin ledger. Having done this, the node then sends the transaction along to miners to be processed. Nodes thus have the ability to “vote,” by which I mean that their owner can choose to run a new version of Bitcoin that has received consensus among developers as an agreed-upon improvement, or abstain from running the new version. I know this is a bit complex, but hopefully you’ve grasped some of it: when you run a Bitcoin node you are part of Bitcoin. You sustain it and take part in determining its future.
Let’s move on to more self-serving reasons to run a full node. A full node gives you a copy of Bitcoin that you can use and trust yourself. Your full node holds a copy of the entire ledger of Bitcoin. And this takes up some space: nearly 430 GB as of September 2022. This accounts for all of the transactions in Bitcoin since 2009 when it was created. You don’t have to run a full node; you can, for example, run a pruned nude that validates only the last few blocks. But if you’re going that far you may as well run a full node to get the full benefits.
Where do wallets fit into all of this? Briefly, Bitcoin wallets are simply software that allow you to interact with the Bitcoin ledger, the protocol, and the miners. And wallets do this by syncing with a node.
‘Now,’ you might be saying, ‘I certainly don’t remember downloading 400 GB to use my Bitcoin wallet.’
That’s true, and that’s because most Bitcoin wallets are lightweight wallets, which means that they do not keep their own record of the ledger. Instead, they access the blockchain via a third-party node. Here’s the crucial point: everyone using Bitcoin is using a Bitcoin node whether they are aware of it or not. If you’re not aware of what node you’re running, then you’re probably running the default node of your wallet provider. In other words, you’re doing that thing that Bitcoiners dread most: relying on a third-party. This means that the wallet provider’s node can see certain things about your bitcoin. What can they see? They can see the various addresses that you have within your wallet. They therefore know how much Bitcoin is in your wallet. They can possibly see your IP address if you haven’t obscured it.
Is all of this a privacy problem? Yes and no. If you have configured your Sparrow Wallet in the way I suggest in my book and my crypto privacy course, then you’re running Sparrow’s borrowed node via Tor. (Remember that Tor is an IP-obscuring global network.) So the Sparrow node is not going to see your IP address. Can the node see your wallet amount and your various addresses still? Sure. And if it was a nefarious actor running it (and there are surveillance nodes as you can imagine) then over time they could build out a profile of your spending activities and potentially hone in on you. It’s not an obvious path to exposure, though, and I’ll be asking this question to my upcoming guests who are experts on nodes: just how a nefarious node might uncover one’s identity.
Ultimately a Bitcoin node does not grant privacy: it augments it. If you buy your bitcoin from a public exchange like Kraken, or you have attached your name to that bitcoin in some other way, then your Bitcoin node is obviously not going to erase this permanent record attaching your identity to a bitcoin transaction. In that scenario you’ll have to live with the fact that Kraken and anyone who subpoenas or hacks them knows that you made a Bitcoin transaction at one point, and that it leads to a dead-end non-custodial wallet, along with all the potential consequences of that information.
Running your own Bitcoin node is a small but not insubstantial privacy increase. The way I see it is that you can sleep sounder at night knowing that you are running your own copy of Bitcoin and not having to borrow someone else’s. A full node is not essential but is something that the more you get into Bitcoin the more you will want to consider doing it.
There are of course other reasons to run a node: to promote Bitcoin, most obviously, and further its decentralized capacity, but also to ensure no chance of fraudulent transactions. When you run a full node and connect it to your Sparrow Wallet, or your Samourai Wallet, then you yourself are verifying your transaction based on your node’s own copy of the blockchain. There’s no chance of a middle-man attack or fraud. That’s great. You can also use a full node to search transactions on your own copy of the blockchain instead of potentially exposing your browser fingerprint or IP address on a website. These are all nice add-ons, but again, not essential.
I chose a Bitcoin node that had a few additional privacy tricks up its sleeve. I chose the RoninDojo Tanto, whose website you can find in the description. I’ll also be interviewing the creators in the upcoming weeks, so stay tuned.
Before we get into the specific prebuilt full node I chose, which is expensive, let’s discuss the free options that are out there. You can run a full node fairly straightforwardly without buying anything. The Bitcoin code that I mentioned on Github is free and open-source software. You can at any time download an instance of a full node from BitcoinCore.org and run it on any computer you have lying around that has at least 500 GB of empty space. (Keep in mind that the blockchain is ever expanding, so the space will slowly increase). By downloading Bitcoin Core onto your computer you will be running a full node, and you can use it without exposing your wallet details to someone else’s node.
There are a few downsides to this approach. You obviously have to reserve 500 GB on your computer for it, and when you shut down your computer the node shuts down and is not helping the Bitcoin community. But you could certainly make your own transactions and gain privacy from doing that and then shut it down. That’s not a bad option. Or, you could keep it running at all times by putting it onto a Raspberry Pi mini computer and letting it sit in a corner of your house.
The main downsides I see are twofold. First, Bitcoin Core does not run through Tor by default. It also does not easily connect to some wallets. That’s where the RoninDojo project comes in.
I like the RoninDojo Tanto node. That’s a mouthful, I know. RoninDojo is the node project: it’s basically a version of Bitcoin Core with a few additions. The “Tanto” in the name refers to the prebuilt version that the company has made available for sale so that you don’t have to build or download anything yourself.
RoninDojo has some handy features. It forces Bitcoin Core to always connect via Tor, which is huge for privacy seekers. It means that you don’t have to worry about your Internet Service Provider, for example, seeing that there is Bitcoin traffic. Even if you have a firewall running a house-wide VPN, the addition of Tor is additional protection. RoninDojo also easily connects to your Samourai Wallet—an Android-only privacy wallet—and allows you to Whirlpool your Bitcoin 24/7, which makes those Bitcoin more obscured and private over time.
But before we discuss the full benefits of the RoninDojo Tanto, let me walk you through the process of purchasing it and setting it up so you can imagine what a node is all about.
I first purchased the RoninDojo Tanto from their website at RoninDojo.io (link in the description). Due to the chip shortages—which could get worse in upcoming months and years rather than better—buying equipment like this is unpredictable, so get them when you see them in stock. You can purchase a Tanto with bitcoin for added privacy and have it shipped to a location that is not your house: as I always advocate. Or have it shipped to a friend or church or something of this kind. The box it came in does not have any branding and even the internal box was completely black with no logos. This was most welcome.
Inside the box is an aluminum case—quite attractive, which is RoninDojo’s MO—which contains a ROCKPro mini computer—a nice step up from a Raspberry Pi—a one TB SSD, and a MicroSD card which has the RoninDojo operating system running on it. The Tanto also came with a power cord and an Ethernet cable. I should note here that the Tantos only ship to the US and only recently to the European Union. Fortunately, I know someone who lives in these places such that they could ship it to me in Tokyo, which is where I identify as having been at the time I received it.
As is commonly the case in the open-source-friendly Bitcoin community, you can benefit from RoninDojo without their physical Tanto device. You can download the RoninDojo for free using your own equipment, should you choose. By purchasing the prebuilt device from the website you get the package already assembled for you, the software already installed, a sleek case if that matters to you, and you’re supporting an excellent Bitcoin privacy company that works on other projects such as the Samourai Wallet.
The Tanto is a plug-and-play device. You plug it into your modem and you plug it into the electrical socket and within ten minutes it will have installed the operating system and began its days-long download of the Bitcoin ledger. All without your input. I messed up mine by accidentally unplugging the cord in the first ten minutes, so I had to spend half an hour opening the case, removing the microSD card, reflashing the corrupted operating system using Balena Etcher, and then doing some Linux terminal commanding. That process wasn’t that difficult, and the RoninDojo support is excellent on the occasions that I have reached out to them.
To use the Tanto you must download the full Bitcoin ledger, which for me took nearly three days with an Internet connection of 110 GB per second. This is normal and in the past before SSD usage used to be longer. Still, if you have a data cap, you might want to calculate. And also calculate for the fact that the Tanto will be uploading and downloading many GB worth of data per month moving forward. Best estimates are 220 GB of uploaded data and 20 GB of downloaded data. So, yeah, that’s a lot, and that’s you helping out the Bitcoin community.
Once the Tanto is set up, you can access it like you would any networking equipment in your house by going to a browser and typing in the device’s IP address. You can from here see a nice-looking graphical interface to see the status of your node, have your own private blockchain transaction viewer, and set up the back end for your Samourai wallet so that it can Whirlpool your bitcoin on an ongoing basis. You can also link the node to your Sparrow Wallet, which is the main thing we are trying to do for our immediate privacy. I won’t get into the details here, especially in an audio show. But there you have it. You now have all the benefits of a Bitcoin node.
Let’s finish by reiterating the limited privacy benefits of a full node and specifically a RoninDojo Tanto node.
By running your own node you are not relying on a third-party node which can collect information about your addresses and how much bitcoin you own. Given that there could be nefarious nodes that you accidentally connect to, running your own node takes away that vulnerability.
If these were the only privacy benefits, I might not run a full node. Well, I might run it to help the Bitcoin collective, but I might not actively do it for privacy reasons. That’s where the RoninDojo Tanto comes in. This modified node forces me to run it via Tor, so that as long as I attach my wallet to run with the Tanto, my Bitcoin behavior is protected behind the excellent Tor network. That’s a nice addition.
The second addition is that the Tanto is configured to easily connect to your Samourai Wallet or Sparrow Wallet and allow you to Whirlpool your bitcoin for as long as the Tanto is running. Whirlpooling is a process that involves breaking the certainty of your bitcoin’s past history by combining it with other bitcoin from other people and sending you back a random chunk equivalent to what you put in. The Samourai Whirlpool is one of the greatest Bitcoin privacy tools we have, and the major downside is that you have to have your wallet up and running for it to work—for some reason. So the Tanto allows us to connect our wallet to it and then run the Whirlpool process in the background, meaning that we can go through multiple cycles of pooling and after a few weeks have some of the most privacy bitcoin on the planet.
I hope I’ve at least helped your understanding of Bitcoin and what a Bitcoin node is. Perhaps this article will simply serve as your first step toward exploring it yourself.
A node is definitely for Bitcoin believers, by which I mean those who see Bitcoin as a money that will be with us for some time. In the same way as running a Tor server helps one feel that one is literally part of the infrastructure of a privacy service, I’ve found that running a node has helped me to understand what Bitcoin is and why it is such a powerful technology. So long as no one discovers my node, and I’m running it, Bitcoin will exist. That’s a powerful feeling.
Yours in peace and privacy,
Gabriel Custodiet