In my previous post, there was a hidden confession. I’ve been active in the Bitcoin space for quite a while now, and always felt well-versed in its technicalities. But I only recently realized what it actually was.
With the community locked in a tiring debate for a while now, we failed to notice an important milestone. We finally grew out of our old explanations, meant to introduce newcomers. Things like “Bitcoin is a digital currency”, or “A decentralized ledger”. We are now a more mature community, with many more members than before. And it might be the time to put more emphasis on educating long-time bitcoiners, than newbies. Because if we’re not all clear on the details of how (and why) things work, it’s going to be hard to consolidate on a single path forwards.
The problem with understanding Bitcoin is, it’s too easy to get obsessed with the tech. We keep getting told that the technology behind bitcoin “secures” our coins somehow. That it uses “cryptographic proofs” and “algorithms” to make things “decentralized”. Actually, the biggest innovation in Bitcoin is a social, game-theoretic one. Signing transactions with cryptographic keys to prove ownership isn’t a new idea. The thing that is new, is the aligning of incentives so that everyone profits by doing their part.
But just like in politics, in order for this system of checks and balances to work, people must be aware of it. In this post I will try to explain the balance of power between miners, users, and node operators. There are many other subjects to cover, and if this post is useful (let me know by clicking the 💚 at the bottom of this post!), I’d love to make this “primer” a series.
The power of miners
We all know what incentivizes miners to mine: the block reward, currently at 12.5 BTC per block, and the miner fees.
But what incentivizes miners to follow the rules?
There’s a popular belief that miners are somehow “forced” by the “power of math” to follow the “laws of bitcoin”. This is false. The rules that make bitcoin what it is, its consensus rules, are hard-coded into node software like Bitcoin Core. And there’s nothing special about them! They’re just lines of code, which mean things like “the block reward halves every 4 years”, and “coins can’t be created out of thin air”. There’s also one that says “blocks must not contain more than 1 MB of data”
But what’s enforcing those rules? If they’re nothing but lines of code on a miner’s (or miner pool’s) client, what’s to stop them from changing them? What’s to stop a miner from producing a block that awards her with 25 bitcoins, instead of 12.5? Well, it’s not the “magic of cryptography”. In theory, any miner could do that. What’s stopping them, is that they’ll get punished — their peers will reject the block, and the block’s miner will lose its reward altogether.
Some think that what keeps miners in check are the other miners. If one miner will build an invalid block, the rest of the miners will ignore it, and the attacker will lose out. It’s true to an extent, but what if a lot of miners collude to change the rules? Popular belief says that if miners try to change critical rules, like the 21 million cap, bitcoin will lose its value. Due to this, it is assumed, it’s in the best interest of miners to avoid doing so. This isn’t always correct, though. Here’s an example:
Let’s say 75% of miners decide they wish to bring the block reward back to 25 bitcoins. They get the best analysts they can find, and get a prediction that doing so will cause many users to lose trust in the system. The value of bitcoin would be expected plummet from $1000 USD, to $600. The thing is, this still leaves the scheming miners in profit — the price of bitcoin took a 40% hit, but the miner reward doubled. Instead of 12.5 * $1000 = $12,500, they’d be making 25 * $600 = $15000. That’s a 20% increase in revenue!
So we see that under some circumstances, it could make sense for the miners to disobey the rules. And these days we are finding ourselves in a similar situation, in fact — some miners wish to change the rules and mine bigger blocks. Everyone agrees that bigger blocks will hurt decentralization to a certain extent. But some users and developers believe this is a huge risk, while many miners and other users calculate that this risk is negligible. The miners’ incentives to make bigger blocks are big enough to make them want to force changing the rules, yet the opponents are strong enough to make that an issue.
So what’s stopping miners from making changes, even though they are sometimes incentivized, as a group, to do so? The answer is: full nodes. But bitcoin is kind of difficult to explain. So allow me instead to use the metaphor of fake news.
Enforcing rules in a post-truth era
During the last presidential campaign, liberals and parts of the mainstream media were blaming social networks, mostly Facebook, for allowing “fake news” to spread — mainly stories that were plain lies, describing events that never happened. They claimed Facebook has a responsibility to make sure lies aren’t represented as truth on their platform. Perhaps unsurprisingly, the use of that term has since been turned on its head, and is used mostly by Trump supporters to describe supposedly unfair representation by the media. The problem of “figuring out the truth” is what bitcoin set out to solve. Allow me to explain.
So let’s consider an imaginary parliament in the future Republic of Liberland. The members of that parliament are elected by the citizens of Liberland, in order to represent them in making the laws that everyone should live by. These laws are what makes modern society tick, so this is important. So laws are passed, and they are open for everyone to review and comment on, and everyone is happy.
But what happens when a powerful member of parliament decides to avoid paying his taxes? The agreed upon laws are very clear on the subject of taxes, but what’s to stop politicians from cheating? Citizens can’t go over each other’s tax forms just to make sure they are correct.
So citizens have two mechanisms that can help here. The first is that other politicians, which are also powerful, would love to see their rivals fail. So if they happen to stumble upon information that proves that another member of parliament is breaking the law, they are likely to do something about it. This is like miners that are expected to ignore invalid blocks, increasing their own chances to find a valid block.
But revealing the wrongdoings of colleagues is not always in the best interest of politicians! Sometimes they make deals that would make it worth it for them to keep their mouths shut. As we discussed before, this could also be true for miners, under certain circumstances.
The second mechanism to protect the citizens, is the media. The media is (supposedly) incentivized to always seek the truth. They are able to parse and understand all of society’s laws, and then reveal anyone not following them. This can work well, but as we all know it is proving more and more difficult to tell if media outlets (and which ones) are truly “seeking the truth”. Some are claiming that the media is giving a hard time to some politicians, not because these politicians are breaking the law, but because it’s in the best interest of some news conglomerates to take them down. So how can an honest citizen figure out the truth anymore?
The Bitcoin Solution
Bitcoin solves this problem in a different way. It gives up the notion that some group, like “the media”, can be somehow incentivized to seek the truth for users. Instead, it’s the users’ job to seek the truth for themselves. They do this by becoming validating full nodes.
The laws of bitcoin, unlike the laws of Liberland, are extremely simplified. There’s a very small set of things that’s possible to do at all in Bitcoinland. And that’s a good thing, because that makes it easy for computers to validate them automatically. So now a full node can validate the entire history of all things that ever happened in Bitcoinland. If it finds something illegal along the way, it will refuse to trust that version of reality, and everything that supposedly occurred later.
It will ignore that chain, and will find another one that is valid. And that’ll be the only one that’s considered the truth for that node, even if there’s another, illegal chain, that has more mining power backing it.
And that’s what’s keeping miners honest. They understand that people with vested economic interest in the Bitcoin project, will be validating their incoming transactions with their own full nodes. If a miner tries to cheat along the way, he’ll be ignored — even if other miners try to support him. And they all risk losing their mining rewards — which is why they’ll avoid trying to cheat altogether.
But running a node is difficult!
Some people feel that running a full node is too hard. So they use block explorers like blockchain.info (or wallets that use such block explorers) as their source of truth. This is kind of similar to trusting the media for everything you think about the world. It might be easier when there’s not a lot at stake, but I think it’s irresponsible. Especially when transacting significant amounts. Ask any cryptocurrency exchange if they’re OK with trusting someone else as their source of truth, or if they prefer to be running their own full nodes. If the big players don’t trust centralized block explorers, why should you?
There’s also the misconception that you have to accept incoming connections on your full node (the famous “more than 8 connections” rule) in order to be useful to the network. If you accept incoming connections, you’ll help with distributing the block chain to other nodes. But it turns out this isn’t very important, as it’s trivial for others to do so, and it’s not really required that home users help. What’s important is that as many users as possible will use their own nodes to validate their own incoming transactions, in order to keep the balance of power in bitcoin. You don’t even need to use Bitcoin Core’s wallet for that — some mobile wallets, like GreenBits, can securely connect to your full node at home and use it to validate your transactions.
Full Nodes and Colu
In Colu, we are helping to build the community around Colored Coins, an open protocol built on top of Bitcoin for issuing and transferring digital currencies. Colored Coins differ from Bitcoin in that full nodes have even more power — Bitcoin miners don’t validate Colored Coins transactions at all, and it’s solely the job of full nodes to do that — making the Colored Coins protocol even more decentralized than Bitcoin in some respects.
While it’s already possible to run your own Colored Coins full node, it’s not yet as easy as we would like it to be. We want to make sure that there are as many people as possible that run their own nodes and secure the network — and as a bonus, a full Colored Coins node is a full Bitcoin node as well! This is why we’re making running a Colored Coins full node much simpler and much less resource-intensive than it was in the past.
In the past, Colored Coins was a generic offering for “digital assets” on the blockchain, but we are gearing up to release more details about our updated vision for Colored Coins, as the backend allowing economies of all sizes to issue their own currencies. You’ll be hearing more about our updated full node and how it fits into this larger idea in the near future.
We also believe that Bitcoin Core, as the reference implementation of the Bitcoin full node and consensus rules, is extremely important for the ecosystem. We think that companies in the space should be doing more to support it. We’ll be sharing more information on how we‘re going to contribute to Bitcoin Core very soon.
If you liked this post, click the💚 below so other people will see it on Medium!