2017 is turning out to be the year of the airdropped Bitcoin fork. First Bitcoin Cash, then Bitcoin Gold, then SegWit2X. Now the ecosystem is primed to become even more confusing, as multiple forks vy for the title of “the real Bitcoin.”
What is “the real Bitcoin?” I’m not sure it’s possible to objectively define it based upon metrics collected at a given snapshot in time. Rather, the only thing that you can be assured of is what the “real Bitcoin” is from your own perspective — the rules to which you agree and which you enforce. Note that this article applies to every single Bitcoin fork: past, present, and future.
Full Nodes For Freedom
How do you enforce the rules to which you agree? You have to run a fully validating Bitcoin node and actually use it to verify payments you receive. Nodes act as your personal sentinel, protecting you against fraudulent activity. They reject actions undertaken by rule breakers, even while you’re busy or asleep. While some claim that running a node today is purely altruistic, there are indirect incentives for doing so:
Full nodes offer the best privacy model. If you’re using a centralized wallet, you have no privacy — the wallet provider knows all of your transactions and addresses. If you’re using an SPV wallet, your privacy is not obviously as terrible, but is nonetheless fundamentally broken. With a full node, you download all the blockchain data and only query for addresses / transactions locally — network observers can’t see what you’re interested in.
Full nodes offer the strongest security model. When you have a copy of the ledger that you have validated yourself, you no longer have to trust a third party to be honest about the state of the ledger. If you’re using a centralized wallet, you’re completely trusting that they are running nodes that enforce the rules of the network. If you’re using an SPV wallet, you’re trusting that the majority of hashpower is validating the rules of the network to which you agree.
If you configure your node to accept incoming connections, it helps the network by sending blocks and transactions to other full nodes to help them sync, and it services data requests from lightweight wallets. From this standpoint full nodes altruistically support the health of the network. Some users may wish to do this in order to protect their investment in Bitcoin.
From a macro perspective, full nodes keep the network honest. The more entities who are actively running nodes to audit their economic interactions, the more robust the network is against attacks. If you’re thinking from a nation-state attack scenario, more nodes = more “doors that have to be kicked down” in order to coerce the node owner into making changes against their will.
How To Run a Full Node
If you have an always-on computer you can follow these instructions to install a fully validating node. If you’re overwhelmed by the 150+ configuration options, you can check out my user-friendly config generator.
If you don’t have an always-on server or desktop available but would like a low cost node, you could follow instructions to build a node with a Raspberry Pi or you can buy a preconfigured node from Bitseed.
How To Use Your Full Node
The obvious way to make use of a full node is to just use the wallet functionality on the node, but this probably isn’t very convenient if you don’t carry your full node machine around with you. So what is one to do? Answer: use lightweight wallets that allow you to configure connecting to your own full node!
At time of writing, the SPV wallets I’m aware of that support connecting to a specific full node are as follows:
If you set up an Electrum server alongside your full node, you can configure the following wallets to connect to it:
If you set up a Bitcore Wallet Service, you can configure the following wallets to connect to it:
Note when setting up other wallets to connect directly to your full node, you’ll need to ensure that incoming connections are correctly routed to it. Check out this network configuration guide for details.
It’s also worth noting that given the open source nature of the system, many other possible configurations could be developed. For example, several years ago BitGo realized that a lot of enterprises had written their wallets to directly using Bitcoin Core’s JSON RPC API and thus it was a pain for them to switch to use BitGo’s API. We found a nice compromise and created BitGoD, which enables a drop-in replacement that is compatible with Bitcoin Core. The added bonus is that it also enables users to continue running their full node and use it to validate that the transactions BitGo sends and receives on behalf of the user. If would be great if other web wallets offered similar software so that users could have the best of both worlds — flexibility in using lightweight wallets without compromising trustlessness.
Exercise Your Rights or They Will Atrophy
What are you willing to pay to secure your financial sovereignty? Is a few hours of your time or a couple hundred dollars too high to bear? Don’t fall victim to apathy — deferring such decisions to others is a conscious act of ceding your sovereignty.
With regard to the great Bitcoin scaling debate, Andreas Antonopoulos laid out the reasoning behind keeping the block size small — and thus keeping the cost of running a fully validating node low. Suffice to say, blocks can never be large enough to meet global demand.
The scaling debate has revealed a fundamental economic conflict between users who want fast, cheap transactions and users who want fast, cheap cost of full ledger validation. As Andreas notes in his talk, this isn’t an issue of scale. It’s an issue of maintaining the more important principles underpinning the system: autonomy, privacy, security, and liberty.
Keep this in mind when you hear of plans to “scale up” Bitcoin so that only the wealthiest individuals and institutions can afford to run fully validating nodes. Keep this in mind when some people try to convince you that Bitcoin is ruled by “Nakamoto Consensus” and the only nodes that matter are those owned by miners. Do you disagree with such a vision for the future of Bitcoin? Empower yourself by running a full node — no one can take this power away from you!