Why Bitcoin is the Biggest Opportunity for Developers in 2023
An overview of the benefits of building a decentralized economy on Bitcoin, and how to get started
Table of contents
- A Brief Note for Crypto Skeptics
- Bitcoin Economy vs Ethereum Economy
- A Strong Foundation
- Energy Usage
- Technology and Economic Incentives
- How to Build on Bitcoin
- Bitcoin Layer 2 Solutions
- Coming Up Next
When thinking of opportunities for web3 development, most people will immediately think of Ethereum as the go-to chain for building web3 dapps. Historically, Bitcoin has been seen as the OG cryptocurrency that is great at being money but is wasteful, boring, and somewhat of a dinosaur. It was useful for kicking off the cryptocurrency revolution, but hasn't innovated and is being left behind by more modern, useful chains like Ethereum.
I'd like to challenge that idea and make an argument for why I think Bitcoin is currently a sleeping giant in the web3 ecosystem and why it's an excellent opportunity for developers to launch projects and careers.
I'll also provide a brief roadmap for how to get started if you agree and are interested in jumping on board with me.
A Brief Note for Crypto Skeptics
If you are skeptical of the whole blockchain/crypto/web3 space, I get it. The industry is filled with hype and there is a good chunk that is not useful. This is a major reason why I chose to work in the Bitcoin space specifically.
Bitcoin is currently being used around the world to help people preserve wealth when they find themselves in situations like living under an authoritarian regime or their country's currency is suffering from hyperinflation.
There are billions of people around the world that live in highly volatile, unpredictable places where their ability to function in the economy is completely out of their control. Censorship-resistant money like Bitcoin empowers them to collect and preserve wealth despite controls placed on centralized alternatives.
However, I think the money itself is only half the battle. I also believe it's necessary to build decentralized systems on top of this money and build a global economy that is as (or close to) decentralized as Bitcoin itself.
If we don't do that, people can't use Bitcoin to meaningfully participate in the economy without having to eventually resort to some sort of traditionally centralized system, which can derail things.
My core thesis is that Bitcoin is a fantastic decentralized system of money, and now it's our job as developers to build the tools and systems for people to create an economy on top of it.
The how and why of doing that are the focus of this series. So if you consider yourself a skeptic, I invite you to come along for the ride and see the massive opportunity latent in Bitcoin for building useful technology while also building a successful career for yourself.
Bitcoin Economy vs Ethereum Economy
As of the time of this writing, January 2023, the market cap of Ethereum sits at about $191 billion, while the market cap of Bitcoin sits at about $410 billion.
Yet if we look at the size of the economies built on top of these two ecosystems, we can see that Ethereum's is large and robust, while Bitcoin's is nearly non-existent.
Why is this?
Historically, Bitcoin's functionality has been very limited. You can't build robust decentralized apps with it. This is by design. A core ethos of Bitcoin has always been to be as secure and simple as possible.
One tradeoff with adding functionality is that it also adds complexity, which in turn adds potential points of failure.
Bitcoin's simplicity is its strength, but it also makes it difficult for developers to do cool things with it.
On top of that, the culture of Bitcoin has largely been one of buy and hold, so there wasn't much demand for a decentralized economy from hardcore Bitcoiners.
Ethereum has proven that the market is hungry for more use cases of cryptocurrency beyond just holding, and we are reaching a stage now where many Bitcoiners want to use their Bitcoin and make it productive, rather than just holding on to it and waiting for "number go up".
We've also seen this interest renewed in the Bitcoin community with the rise of Ordinals, causing a lot of contention in the community about whether or not this kind of data should live on the main chain or whether it should live on layers. We'll get more into that towards the end of this post.
But it would take significant changes to Bitcoin's core protocol to enable the same kind of functionality as Ethereum, changes that come with compromises that I would argue are not worth the cost.
However, new technologies are emerging that allow us to achieve the same functionality that we get with Ethereum, without modifying Bitcoin itself.
We'll talk about those later in the article, but for now, Ethereum does exist, so why build on Bitcoin? The first half of this article will address the why of building on Bitcoin, and then we'll get into the how.
A Strong Foundation
To get us in the right frame of mind, we need to think about the whole purpose of blockchain technology: to create a completely decentralized, permissionless, trust-minimized form of money
I strongly believe that Bitcoin is the superior technology for this purpose, and will explain why in this article. But I think it's important to not get caught up in the hype of the crypto industry and to remember the foundational reason why we are building these things.
The technology we use needs to align with this purpose, and if the technology itself creates incentive structures that don't align with this purpose, we shouldn't be using it for a global decentralized economy.
Much of this article will discuss one of the key differences between Bitcoin and Ethereum/most other chains: proof of work vs proof of stake.
The technological architecture blockchains are built with makes a huge difference in the behavior of the users of those chains, and it's crucial to build them in a way that incentivizes the behavior required to build the decentralized economy we are after.
That's the context of this reasoning. I don't have any problems with proof of stake as a technology on its own, what I am skeptical of is that it is the right choice to build this global money and economy.
Probably the most common argument for why proof of stake is a superior system to proof of work is the concept of energy usage.
This is a vast, complex, nuanced topic that deserves a serious study of its own. The TL;DR version is that the solution is not nearly as simple as many people would make it seem.
Usually, you hear some argument along these lines:
"We all know that consuming too much energy is a bad thing, and if we could have a system that uses 99.9% less energy than proof of work while maintaining all of the security benefits, why wouldn't we do that?"
Let's look at each premise, both explicit and implicit, contained in this line of reasoning piece by piece because while the logic of this thought process makes sense, every single premise is flawed.
Bitcoin uses too much energy
This statement is just a rephrasing of what the person stating it believes: "I don't Bitcoin is valuable enough compared to the amount of energy it uses."
This is a better, more intellectually honest place to start, and gives us a solid place to start examining if this is a logical position to hold.
For context, nobody thinks that energy consumption is bad on its own, it's just whether or not the value being produced as a result of that energy consumption is worth it or not.
For example, here is a partial list of things that use more energy than the entire Bitcoin network and how they compare.
If we want to go with the argument that Bitcoin uses too much energy, we also need to admit that everything on this list should also not exist since it uses too much energy.
But we don't do that because we understand these things have value that is created as a result of energy usage.
So, then the question becomes, is Bitcoin's energy usage worth it?
Even if Bitcoin becomes wildly successful with trillions of dollars of utility and billions of users, it might rise to consume more than 1% of global energy usage. But is it that much when we consider the fact that it would be running the entire decentralized economy at that point, and all of the benefits that come with that?
Don't forget that part of this is assuming that proof of stake can't replicate Bitcoin's security and decentralization, we'll get to that soon.
in addition to this, Bitcoin is a very large driver of unique energy sources that would otherwise be completely wasted.
This is a rabbit hole of a topic too deep for this article, so I highly recommend any interested developers read the work of [Lyn Alden](https://twitter.com/LynAldenContact), [Nic Carter](https://twitter.com/nic__carter), and [Troy Cross](https://twitter.com/thetrocro) to get a better handle on the nuances of the energy debate.
Here is an excellent piece to get you started. I took a lot of the information contained here from this source.
[Bitcoin's Energy Usage Isn't a Problem](https://www.lynalden.com/bitcoin-energy/) - Lyn Alden
I quickly want to address the idea of "cost per transaction." I see this comparison made by advocates of other chains constantly, that so-and-so chain is energy efficient and each transaction only uses as much electricity as sending an email or something like that.
This is a flawed way to think about Bitcoin's energy usage and is comparing apples to oranges.
Bitcoin's energy usage comes from miners creating new blocks and earning the new block subsidy, and the network uses largely the same amount of energy regardless of how many transactions are contained in a block.
While it is true that Bitcoin's energy usage scales with how many users are on the network, thinking about the cost per transaction is nonsensical.
Covering the rest of the implicit assumptions requires looking at things from an economic and technological angle, so let's do that now.
Technology and Economic Incentives
Blockchain technology is inherently tied to economic incentives. The technology itself is built to be money, and we can create tools and software that utilize it, but the economic structures and incentives are a key piece of how a particular chain functions.
With blockchains, the economic incentives and technological structure are closely linked, so we'll look at them together.
I don't think proof of stake is a good economic model on which to build a global reserve currency, for several reasons:
No connection to real-world resources
No unforgeable costliness
Increased cost of running a node
Let's go through these.
If you aren't familiar with how these consensus mechanisms work, here's a decent very quick, high-level overview or you can take a look at Lyn Alden's article on proof of stake for a more detailed comparison.
No connection to real-world resources
One of the crucial components of Bitcoin is that it is connected to a real-world resource: energy. Mining new Bitcoin costs something tangible in the physical world.
With proof of stake, there is no such connection to real-world resources. New ether are created as a result of validators staking their ether.
Why does this matter?
In proof of work, miners are not directly punished by the network for attempting to write invalid data, the punishment is simply that they waste the resources that they spent to attempt the invalid data write.
In a proof of stake system, it needs to be more complex. Validators need to have some sort of incentive system and be punished for attempting to manipulate data, that is why they stake their existing resources.
If they attempt to produce invalid data, they are slashed, meaning they lose their staked resources.
At first glance, that doesn't sound like much of a problem. Why waste the energy on needing to solve complex cryptographic puzzles when we can just utilize staked resources to accomplish the same goal?
A proof of work protocol's connection to the real world keeps the incentive structure simple. With proof of stake, the system needs to get exponentially more complex to invent incentive structures that solve the same problems that are solved by proof of work inherently.
This complexity creates too many attack vectors and is too experimental to serve as a global decentralized currency.
I understand that there are very smart people working on solutions to these problems, but the technology is too experimental and too complex for me to feel comfortable building things that are supposed to run a global economy with.
No unforgeable costliness
Another aspect of proof of work is that it is not possible to forge a copy of a chain. The literal proof of work of the chain prohibits that from happening. Since Bitcoin is programmed to adjust the difficulty of the algorithm automatically to produce blocks on average every 10 minutes, the number of Bitcoin blocks is proof of time passed.
It's not possible to write a block without solving that puzzle, so it's not possible to recreate a Bitcoin chain without doing that work all over again.
Proof of stake does not have this benefit, so you can spin up a copy of a proof of stake chain that looks just as valid as the original.
So again, we have added complexity in figuring out how to determine how the protocol punishes bad actors who are attempting to vote on multiple chains.
Before proof of stake went live, Ben Edginton, an Ethereum developer, spoke about some of the drawbacks and potential complexity implications of a proof of stake system on the [Compass Mining Podcast](https://compassmining.io/education/heres-how-ethereum-developers-are-thinking-about-mev-and-eth2/).
Here's what he said:
"The reason it has taken a while, you know we’ve relied on proof-of-work in Ethereum for five plus years, is that proof-of-stake is complicated. Proof-of-work is fundamentally very simple, is easy to analyze, is easy to implement and deploy, and proof-of-stake has a lot of moving parts. You can code up a proof-of-work algorithm in a hundred lines [of code] or so. Our current clients are a hundred thousand lines or so for proof-of-stake.
And I think the theoretical foundations for proof-of-stake have taken time to mature. It’s not obvious how to make it robust, there are attacks like long-range attacks and things that just don’t exist in proof-of-work, that we’ve had to think through and come up with solutions to, so that’s just taken time. So we’ve relied on the tried and tested proof-of-work algorithm and it served Ethereum well."
Despite the technical risks, my biggest issue with proof of stake is the risk of centralization.
There is no cost to staking in a proof of stake network. Whoever has the most coins has the most influence over which transactions get processed, and since they are earning the most rewards from an absolute standpoint, they can keep staking more and more and earn more and more influence over the network.
It's a "rich get richer" system from the ground up.
They can exponentially grow their stake, rewards, and influence over the network forever, and have no incentive to pull their stake and allow new entrants to overtake them.
Imagine this analogy laid out by Lyn Alden.
It would be like a political system where you get a vote for every hundred dollars you have, and then also get paid a dollar by the government for casting each vote. Mary the high school science teacher with $20,000 in net worth gets 200 votes, and earns $200 from the government for voting. Jeff Bezos, with $200 billion in net worth, gets 2 billion votes, and earns $2 billion from the government for voting. He’s a more valuable citizen than Mary, by a factor of a million, and also gets paid more by the government for already being wealthy.
That’s not a system many folks would like to live in. Eventually it would likely consolidate into an oligopoly (if it wasn’t already), with a handful of multi-billionaires controlling most of the votes and ruling everything. If it gets too centralized, that kind of defeats the purpose of a decentralized blockchain.
Contrast this to the fact that Bitcoin miners need to constantly be keeping up with and investing in new technology to keep up with new market entrants, it's much more difficult to develop an entrenched set of miners.
In addition, it costs physical resources to mine, which need to be continually spent, whereas staking is a one-time action that compounds over time.
This is great for stakers, but arguably not so great for the network as a whole.
A common misconception is that stakers can control a proof of stake system at a protocol level. That is not true. Just like Bitcoin miners don't have much control over the protocol, that's more in the hands of the users.
But what validators and stakers do have control over is which transactions are included in the chain, which gives them power over what transactions can be added, a serious detriment to the censorship-resistance property of blockchains.
We can see an example of this playing out with OFAC-compliant transactions.
Post-merge, more than 50% of blocks produced were produced by OFAC-compliant MEV-boost relays.
MEV-boost relays are centralized entities that allow you to outsource block production to increase value from block production. Following the merge, 82% of relay blocks were produced by a single entity, Flashbots.
Furthermore, as of this writing, most of the ETH staked on Ethereum is staked between a single decentralized entity and a bunch of centralized exchanges.
While this can allow many individuals to participate in staking, theoretically increasing decentralization, there are still concerns about how decentralized staking is in practice.
In addition to centralization risks posed by single entities influencing what transactions get added to the chain, we need to remember that a proof of stake chain's liveness is also determined by stakers.
The liveness of the Ethereum chain is also affected by the proof of stake process, meaning that over 33% of staked eth would be required to negatively affect the liveness of the chain.
Sounds great, except when you think about the fact that that percentage is hit in just two entities. The issue here is that the liveness of the chain now rests not on the entirety of the Ethereum network, but rests on organizations like Coinbase and Lido functioning correctly.
Even if these entities do become completely decentralized they are still largely responsible for maintaining the liveness of the Ethereum chain.
This is fine for a blockchain that is meant to function more like a development platform or company, but far from ideal for something that is designed to serve as a global decentralized money and economy.
But isn't Bitcoin primarily mined by pools as well? Yes, the primary difference again comes back to this issue of mining being connected to real-world resources.
Remember that staking means that the more money you have staked and the longer amount of time you have it staked, the more influence you have over the network.
This makes it extremely difficult for new actors to come in and disrupt the big validators. They are economically incentivized to just continue letting their stake grow perpetually.
The fact that your ability to become a validator is connected to the internal token makes it somewhat of a zero-sum game. Once the big players have been established, other actors can't collect enough tokens to catch up with how much they will be exponentially gaining as a result of their staking reward.
With proof of work, someone's ability to disrupt a large player's mining control is dependent on external factors. A mining pool that begins to act maliciously cannot simply coast because it has the most hash power. Its hash power does not continue to compound without having to spend anything as in proof of stake.
This effect is somewhat mitigated by staking pools, but the vast complexity of proof of stake makes switching pools easier said than done.
I highly recommend reading Scott Sullivan's guide to proof of stake for a detailed breakdown of these and other issues.
One final note: I know there are many answers and proposed solutions to these issues, and I'm not discounting those or saying that any of these things will happen, but the tradeoff of all this experimental technology and relying on so many of these inter-related ifs to all go according to plan is not a bet I'm willing to make when building a system so integral to society.
This topic is a rabbit hole, and I know there are many responses and nuanced arguments to the points I've raised here. I'm sure I missed things. Every developer needs to do their research and decide which tradeoffs are worth it for their values and what they are trying to build.
I've laid mine out here, hopefully, they've helped you think about things differently. There are much smarter people than myself who do an excellent job of explaining these things as well.
I will refer interested developers to these pieces to go into more detail about why proof of stake systems may not be the ideal system to build a global economy with.
[Bitcoin's Energy Usage Isn't a Problem](https://www.lynalden.com/bitcoin-energy/)
[Proof of Stake: A Blockchain Centralization Dilemma](https://www.lynalden.com/proof-of-stake/)
[Bitcoiner's Guide to Proof of Stake](https://scottmsul.substack.com/p/a-bitcoiners-guide-to-proof-of-stake)
How to Build on Bitcoin
Now that we've laid out some of the reasons I'm choosing to build decentralized apps on Bitcoin, let's look at how we can do that.
Until now, developers and users who wanted to build decentralized tools and to build an open, permissionless, decentralized economy didn't have much choice other than Ethereum or other proof of stake chains like Solana, Avalanche, NEAR, etc.
Sure, we can build apps that utilize Bitcoin, but not at much more than the saving and payment level. I'm not discounting the importance of these things, but they aren't of much interest to developers and they aren't enough.
We can't create a decentralized financial system using only Bitcoin. If you want to do things with your Bitcoin other than buy, hold, or pay, you need to use centralized services and trusted intermediaries.
If we want decentralized money, we also need the infrastructure and tools utilizing that money to be decentralized as well.
What are some examples of this? I am generally skeptical of DeFi tools that tend to function much like ponzis, but what I am very interested in is how we can recreate existing financial instruments and come up with new ones that not only utilize Bitcoin as the money but also run on rails that are decentralized as well.
A decent framework for understanding the use cases here is to think of anything that utilizes a contractual agreement between two parties. Once you start to think about this, you realize that almost every interaction you have in your daily life involves something like this.
The majority of these are "handshake agreements" between two trusted parties, but a significant chunk of them are more official agreements with paperwork and terms laid out between two parties that may or may not have a personal relationship.
These are good examples of where smart contracts can help.
Investments are a prime example. If you want to borrow or lend Bitcoin in exchange for interest, you currently have to go through a centralized entity and custody your Bitcoin. If we can make that system decentralized as well, we unlock a whole new category of activity, utilizing Bitcoin, but without having to go through centralized entities.
Remember that Bitcoin itself is designed to create a form of money that is permissionless and trust-minimized. Smart contracts are a way for us to take the actions that we actually take with that money and make them decentralized and trust-minimized as well.
So how can we unlock robust smart contract functionality for Bitcoin without modifying the crucial properties that make it so secure and decentralized?
That's where Bitcoin layers come in.
This will be the main focus of the rest of this series, as we go in-depth into how to build things on Bitcoin.
For now, I just want to give a high-level overview of my earlier claim that we can build apps with comparable functionality to Ethereum on Bitcoin without modifying the core protocol.
Bitcoin's Limited Functionality
The first thing we need to understand is that Bitcoin does have some fundamental programming ability utilizing its programming language, Script.
However, what you can do with it is limited. We'll be covering this in great detail in future posts, but you can't fundamentally trigger certain actions to happen based on Bitcoin transactions, and you can't utilize any real-world data from oracles.
Outside of very limited use cases like DLCs, you can't write expressive smart contracts on Bitcoin.
Similarly, Bitcoin can handle only a few transactions per second, so the transactions don't scale well. Again, this is by design as it helps to keep the requirements to run a full node very low, increasing decentralization.
Bitcoin layers can solve both of these problems. Today we'll take a brief look at two of them: Lightning for scaling and Stacks for smart contracts.
Bitcoin Layer 2 Solutions
Lightning is a P2P scaling solution for Bitcoin that utilizes Bitcoin's native script language to create a payment solution that can handle more transactions per second than the Visa network.
It allows users to open channels with each other, make a series of transactions, and then write them all back to the main chain as a single batch transaction.
Individual transactions occur off-chain on the P2P Lightning network and then settle back to Bitcoin. This allows for much faster transactions and a high capacity but fundamentally does not expand the functionality of Bitcoin.
That's where things like Stacks come in.
Where Lightning allows the Bitcoin network to scale as far as the capacity for payments, Stacks is what expands the functionality and allows us to write smart contracts.
Full disclosure, I work as the Developer Advocate for the Stacks Foundation, so my perspective in writing this comes from that. I originally found Stacks and started working on it because I was becoming disillusioned with where Ethereum was headed.
If you want to read the details about how Stacks works in detail, I've written about that elsewhere. Still, the short version is that Stacks is a blockchain protocol that is connected to Bitcoin via its proof of transfer consensus mechanism.
It has its own token but is anchored to Bitcoin and can't exist without Bitcoin.
It allows for fully expressive smart contract functionality using a language called Clarity, which is designed for security and safety.
If you are interested in diving in further, you can take a look at this Intro to Stacks tutorial.
The takeaway is that Stacks allows us to write smart contracts for Bitcoin, and with the upcoming releases of sBTC and the Nakamoto Release of the chain itself, we will be able to do this using native Bitcoin, so users never have to interact with Stacks itself, all done in a trustless and decentralized manner.
We'll be covering how to build things on Bitcoin using Stacks in-depth later in the series.
The key takeaway is that it allows us to create the same level of functionality on Ethereum but on Bitcoin, without changing any of the things that make Bitcoin resilient.
Stacks and building the decentralized Bitcoin economy are at the very early stages right now. That's a double-edged sword for developers. It means that resources for building are more sparse than they are on something like Ethereum.
The upside is that it is a huge asymmetric bet. There are tons of opportunities for developers to build new use cases and get involved in creating a decentralized economy on top of Bitcoin.
As builders, what we need to do now is to start building things that take advantage of this opportunity by building things that use Bitcoin to create a decentralized economy.
The best thing you can do right now is to start learning how to build with Bitcoin and get ready for the sBTC release on Stacks.
In addition to a lot of content I'll be releasing here over the coming months, here are a few things you can do right now to begin learning how to build robust Bitcoin dapps and write smart contracts for Bitcoin.
If you have an idea for a product you'd like to build, I'd also encourage you to check out the Stacks Web3 Startup Lab to begin working toward making your vision a reality.
Coming Up Next
Next in the series, I'll be detailing how exactly Bitcoin works and how you can begin getting set up for Bitcoin development on your machine.
Throughout the rest of this series, we'll walk through the process of building a full-stack Bitcoin dapp, learning all the essential concepts along the way.