Given that an open, transparent, distributed p2p network is a central element of Bitcoin project it seems unusual that it is licensed under the MIT license which allows proprietary closed source derivatives.


Does anyone know if there was a stated or expressed reason for not choosing a free software license?

Has there been any discussion to license future versions of the Bitcoin client under licenses which have "copy left" and "patent retaliation" provisions such as GPL?

  • 1
    Just to clarify, Bitcoin clients adhere to an open protocol. Some of the other Bitcoin clients are FOSS - free, open source software: en.bitcoin.it/wiki/Category:Free_Software Nov 4, 2011 at 20:47
  • 4
    MIT licence is less restrictive than for example copyleft, giving you freedom to do more with it. It allows people to make the choice of whether they want to give their source code away or not, which can draw more people in to work on the project than if they wouldn't have that option.
    – ThePiachu
    Nov 4, 2011 at 21:15

3 Answers 3



If the only library is closed source, then there's a project to make an open source one.

If the only library is GPL, then there's a project to make a non-GPL one.

If the best library is MIT, Boost, new-BSD or public domain, then we can stop re-writing it.

I don't question that GPL is a good license for operating systems, especially since non-GPL code is allowed to interface with the OS. For smaller projects, I think the fear of a closed-source takeover is overdone.

  • 2
    +1. Awesome cite. I disagree with the assessment but interesting to see the logic. Nov 4, 2011 at 23:59
  • Noble idea... but now everyone and their uncle is claiming their fork is the 'real' bitcoin... Jan 22, 2018 at 9:31
  • @RosdiKasim That's the entire point of a decentralized system. Nobody gets to make an authoritative claim of ownership or authenticity. Aug 26, 2022 at 9:20

Using a more restrictive license would have slowed adoption. The biggest obstacle to Bitcoin is lack of adoption. Anything that would restrict the set of things people can do with Bitcoins or make it more expensive or more difficult to use them in particular ways increases the chances that Bitcoins never get significant penetration.

Some Bitcoin uses involve proprietary, closed source derivatives. How would it help Bitcoins to discourage those uses?

But the actual historical reason is even more important. If the Bitcoin client had been licensed under the GPL, anyone who wanted a proprietary client would have to recreate it. That would create a whole host of real problems that would harm the usefulness of the Bitcoin system.

For example, say the developers want to add a new type of script. Right now, they can add support for that script in the official client and everyone will have it in a few months. But if there were proprietary versions, they may never be able to cost justify adding the new scripts, and this could cause adoption of the new scripts to fail. If a new currency supported those scripts and forks meant Bitcoin didn't, that could make Bitcoins fail.

Or say there was a bug in the client that caused it to accept blocks that are subtly invalid. If the network had a significant number of clients separate developed, they might reject those blocks while the official client accepts them. If fewer than 50% of the network runs the official clients or miners tend to run the proprietary clients, this could result in a serious network fork that would be very painful to resolve.

Another problem would be if different clients wind up using different attack resistance methods. If one client passes a message another client considers abusive, attackers could exploit this to isolate nodes from the rest of the network. Having all clients use the same logic for validating messages avoids this attack method. (If X punishes nodes for it, X also won't pass it to other nodes. So if other nodes follow the same logic as X, X will never get punished. But if X passes a message Y punishes for, sending that message to X will result in X not punishing you, but X getting punished by Y.)

  • Revisiting this two years later there are as of yet no proprietary clients being distributed. There is a lot of proprietary work done in the Bitcoin "ecosystem" but these are specific internal implementations which would have been compliant with a GPL style license anyways. Sadly what has restricted alternative development isn't licensing but the fact that there is no independent library. The QT (reference) client is a library, full node implementation, and a specific wallet all rolled into one codebase with the major functions horribly interdependent. Maybe someday this can be refactored. Aug 1, 2013 at 18:06
  • If Bitcoin was under the GPL the Bitcoin developers could sue companies developing proprietary "Bitcoins" for all profits. All they need is a black hat / grey hat hacker to decompile the code, and dump it publicly. They can then grep for matching portions of code, and sue like Ghostscript did.
    – ZeroPhase
    Sep 17, 2021 at 0:32
  • @ZeroPhase Which would have meant those developers would not have existed, weakening bitcoin in comparison to how much stronger it would be with those developers and applications. Sep 17, 2021 at 0:44
  • @DavidSchwartz I'm definitely more practical in terms of licensing. I do think there is a business model, using the GPL, with a decentralized bank backed by a basket of crypto assets and stablecoins printing money to buy financial assets, while inflating and deflating the currency based on current demand. You then start businesses this bank funds. I believe they'd be capable of economically dumping on competitors while paying more to talent. They should not need to turn a profit for decades if the debt to equity ratio is correct. Something like SBF Holdings, but purely on blockchain.
    – ZeroPhase
    Nov 20, 2022 at 3:38
  • The GPL is just there to prevent corruption on either side. If the decentral bank implements bad policy. The code gets forked and you have a competitor with all of these vertically integrated businesses capable of shifting loyalty. I think it's one of many solutions f monopolies
    – ZeroPhase
    Nov 20, 2022 at 3:44

Satoshi did not use a FOSS license because it was not intended to be a community project. The protocol was intended to be set in stone for its entirety. Satoshi was also not around in 2011-2012 when others were given access and moved the code to github.

  • 2
    This is 100% the opposite of the truth. In fact, the idea was that bitcoin could not be technologically surpassed or obsoleted because any innovations would have to be open source and patent free and so could just be incorporated by bitcoin. Aug 26, 2022 at 9:20
  • 1
    Having read a lot of Satoshi's communications and followed Bitcoin development for about a decade, this answer is plainly false.
    – Murch
    Sep 7, 2022 at 15:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.