Why are bitcoiners so obsessed with free open source software? And what’s wrong with open source licenses which restrict commercial use? After all, the developers should find a way to monetize their work and the entire tech sector is filled with patents which secure intellectual property.
In other words, why does Bitcoin software have to be free and open source, in a way which allows anyone to use it for any purposes (including commercial use)?
Well, this is about the nature of verification and incentives. Let’s say that I write the best wallet code ever. I publish the source code, but expect royalty payments from other companies and individuals that want to use it. This can help me signal to VCs that I have a product which can be sold, so that I can also raise some funding and grow my business.
Sounds like a solid plan, right? Well, it would work quite well if this wasn’t about Bitcoin. You see, the Bitcoin standards for code are very high in terms of honesty and transparency. Something that manages the ownership and transmission of provably-scarce and in-demand digital money should not be taken as lightly as “just another app”.
Naturally, people are always skeptical when they deal with BTC software. This is why the “Don’t trust, verify” slogan emerged and it’s also the reason why developers get paid to check the code before it starts managing a significant amount of bitcoins.
But wait, isn’t it enough that developers publicly publish the code to their work? Why does the software also have to be free? Well, there’s a catch which concerns incentives: if people can’t use your code in a commercial way, then fewer people will care enough to scrutinize everything. Ideally, open source code should get vetted by multiple developers, across an extended period of time.
The most tested something is, the sturdier and safer it becomes – so this is why modifying and repurposing code even for commercial purposes matters. Next up, I’m going to present to you two case studies from the Bitcoin space.
Case Study: Trezor
Let’s take the example of Trezor, the world’s first Bitcoin hardware wallet. The two masterminds behind the project, Slush and Stick, were stubbornly in favor of using general-purpose parts that run on free open-source software. Even if it meant that anyone could fork their work to create a competing product like the KeepKey, the Coldcard, and the BitBox02.
By offering this free open source license, they’ve increased the incentives to verify and harden the code. If KeepKey sells a product which uses the Trezor codebase, then it’s likely that the company will find some issues that they will report back to Trezor. If the situation is worse and a customer has a problem, then the seller will have to figure out a solution. And this solution will also get back to the creators of the original product, so they can also fix it.
Therefore, we can say that the existence of the KeepKey, the Coldcard, and the BitBox02 has only improved the security of Trezor. And even in cases when they found no major issues, they proved that the code is safe.
Open source is a collaborative effort which takes the original work and expends it to serve different purposes and fulfil the needs of more users and developers. And if the software enables something as delicate as bitcoin ownership and management, then it must be uncompromising in its transparency and incentives.
Unless enough people verify the code and test it, you probably shouldn’t touch it. And if a product makes use of commercial licenses, then it’s actively discouraging the most critical of reviewers from contributing – the competitors who want to build by using your work as a starting point.
Case Study: Bitcoin Full Nodes
My main inspiration for writing this article is rooted in the debate surrounding full node dashboard software. Essentially, RaspiBlitz is the only uncompromising actor in this field – but their user interface is not nearly as friendly as the one used by myNodeBTC (which only recently switched to a free open source license) and Umbrel (which uses a commercial open source license to prevent unauthorized forks).
It’s only normal for bitcoiners to want their software to benefit from the greatest amount of scrutiny. At the same time, the developers shouldn’t have to work for free.
MyNodeBTC is objectively great and might be responsible for popularizing the user friendly-dashboard which is free to download, but costs extra for the integration of extra services such as BTCPay Server. The company is also selling “node in a box” devices to those who don’t want to build their own node from a Raspberry Pi. This may be a profitable business model, but does it not guarantee that the software has been scrutinized by independent developers unless other individuals and companies can also use it for commercial purposes.
Likewise, Umbrel is today’s most intuitive dashboard for running a full Bitcoin node. It looks sleek, nice, and elegant. It has all the features. But its open source license makes it a commercial product that cannot be used by competitors. It’s all been outlined in their legal letter and, while the development team acknowledges that the situation is not optimal, their plan is to monetize the software.
Another rising actor which offers a nice dashboard under a restrictive open source license is Start9 Labs. Their Embassy OS looks promising, will add lots of features, but will definitely need to switch to an MIT license if they want all the benefits of free independent scrutiny.
Again, this would have been perfectly fine anywhere outside of the Bitcoin space. It’s fine for Linux distributions like Red Hat and SUSE, it’s optimal for video game engines like Epic’s Unreal, but it won’t work for Bitcoin software.
The Creative Commons Non Commercial Non Derivatives (CC-NC-ND) license type works on the “you can look, but you cannot touch” principle. It’s great for artists, but it discourages crucial security experimentation. By being allowed to fork the code, play with it, and even sell it, you get a lot of useful feedback and enable others to discover issues that you wouldn’t have thought about.
While you can pay for audits and reviews, they only go as far as publishing a report which relies on the expertise and reputation of a team of experts. There’s still trust involved, even if you’re dealing with renown professionals.
On the other hand, making your software free and open source (FOSS) will actively encourage anyone on the internet to use your code – so every fork is a dedicated audit which extends the purpose, functionality, and security of the original design. And if major breakthroughs are made with your code, then nobody stops you from using them. It’s likely that you, as the original developer, will retain the first mover advantage and network effects (as it happened in the case of Trezor).
How Is Free Open Source Software Supposed to Make Money?
If you’ve read the article up to this point, then you will probably call me an entitled communist who expects others to work according to his expectations. And you’re free to call me any names you want, but my goal here is to seek the best tool for individual sovereignty with Bitcoin. If the best of these tools are objectively free and open source, then I’m going to use these conditions for analyses.
And I’m very much aware that I wrote a Bitcoin full node review last year and it treated the free open source criterion pretty shallowly. But even though I feel ashamed of some of my previous work, I am happy that I’m constantly learning and getting better at what I do.
Now let’s talk about the two ways in which free open source software can make money. The most obvious one is donations: people who use something free that they find useful will send some money in exchange. Now, I know that this idea is very ideology-driven and in practice most users will not make a single donation if they can get something for free.
But there are lots of individuals who possess disposable income – and when they come across free open source software which does the job of a paid product, they will send donations. Sometimes companies that create free open source software also create foundations to allow donors to deduct the money they send from their tax amounts.
However, these criteria don’t really apply to Bitcoin software – as the programs don’t replace paid alternatives and we don’t really have foundations. This doesn’t mean that people should stop sending donations, though – they’re the best way of showing someone that you appreciate the work.
This leads us to the second way of making money from free open source software: consultancy work. And it goes like this: if you built something useful and free, it still doesn’t mean that most people will understand how it works or will afford to pay computer scientists to reverse engineer it. So they’d rather pay the makers to make custom installations, provide tech support, and add new essential features.
RaspiBlitz and MyNodeBTC are already offering this kind of consultancy – the former in a custom way, and the latter through a $99 premium service. But the only ones doing it right (at least in the Bitcoin spirit sense) are Fulmo (RaspiBlitz).
As someone who provides free Bitcoin education and relies on donations and sometimes sponsorships, I can really understand why it’s important to find good monetization means. I’m all for funding developers who work on Bitcoin projects and I’m often times upset that Bitcoin development is underfunded due to greater shitcoin interests (this may become the subject for another article).
But my advocacy is for finding ways to monetize through means that are compatible with the demands of Bitcoin. This is very hard in a HODL culture where people sending donations may feel like Laszlo Hanyecz when he bought his two pizzas.
But we really need to establish a healthier donation culture and also get consultancy when we need it (though this is more of a feature for companies that make a lot of money and don’t want to take risks). Anyway, my point is that we like to talk a lot about building a parallel economy with Bitcoin, but the incentives rarely make us take steps towards it. Free open source software is important and we should only impose the highest security standards on those who produce it – while also supporting their work.
Donate to Bitcoin Takeover!
Speaking of donations, if you found my work useful here are the ways in which you can support me to keep going:
BTC address: 3FKZ5EYWBaWYSQCVytFJTVkQU5QK4BxY96
Lightning Tip via Tippin: https://tippin.me/@TheVladCostea