Today, I released the
bech32(1) and
easyseed(1) utilities; and I have been preparing to release more little Bitcoin gadgets.
When it came to the question of licensing, my gut instinct was to instead disclaim copyright and release the code to the public domain. (
The public domain is not a license, “CC0” confusion to the contrary notwithstanding.) However, several real-world problems stopped me from so doing. One is the persistent ills caused by imposters who fork Bitcoin code whilst stealing the trust engendered by the Bitcoin name.
Therefore, I released the code under an
open-source license with some special clauses. The clause hereto pertinent is what I call the
Bitcoin Consensus Clause, which requires that derivative works with functionality related to digital money (so-called “cryptocurrency”)
must either fully adhere to consensus rules fully compatible with Bitcoin Core, or use a name which does not contain the word “Bitcoin”. I bashed this out in a few minutes, and didn’t yet spend any time tightening up the legalese; but the wording is clear on its face.
I do wish that Core itself had added such a clause to their license. Why don’t they? Has this ever been discussed? If so, I have not seen it. [Edited: DannyHamilton pointed out the obvious problem. Duh.]
Obviously, my intent in this particular clause is not to cause problems for honest altcoins. By “honest”, I mean an altcoin which at least has the common decency to make its own name, genesis block, network and block magic numbers, etc.—otherwise stated, an altcoin which stands or falls on its own merits
and does not pretend to be Bitcoin.My general desire is that people should copy and use my code freely in both commercial and noncommercial projects. But I find revolting the idea that my code could be abused by or for a scamcoin which pretends to be Bitcoin. Now, as long as there exists an idiotic copyright/licensing régime, it is illegal for my code to abused in such a way. I don’t mind being pragmatic about that.