Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: nullius on December 29, 2017, 09:32:10 PM



Title: Licensing with a Bitcoin Consensus Clause
Post by: nullius on December 29, 2017, 09:32:10 PM
Today, I released the bech32(1) (https://github.com/nym-zone/bech32) and easyseed(1) (https://github.com/nym-zone/easyseed) 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 (https://raw.githubusercontent.com/nym-zone/bech32/master/LICENSE.txt).  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 (https://bitcoincore.org/), 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 (https://github.com/bitcoin/bitcoin/blob/master/COPYING).  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.


Title: Re: Licensing with a Bitcoin Consensus Clause
Post by: DannyHamilton on December 29, 2017, 11:25:59 PM
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.

Have you considered at all the possibility that the current "Bitcoin Core" contributors might in the future lose control over that moniker?  That a different set of developers could rise up and create an alternate set of consensus rules under the name "Bitcoin Core" while the rest of the world all sticks to a set of consensus rules that are not part of future "Bitcoin Core" scamcoin pretending to be Bitcoin?

Under those circumstances, have you just created a situation where your code can ONLY be used by a scamcoin attempting to usurp the Bitcoin name and lead everyone astray?


Title: Re: Licensing with a Bitcoin Consensus Clause
Post by: nullius on December 29, 2017, 11:53:50 PM
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.

Have you considered at all the possibility that the current "Bitcoin Core" contributors might in the future lose control over that moniker?  That a different set of developers could rise up and create an alternate set of consensus rules under the name "Bitcoin Core" while the rest of the world all sticks to a set of consensus rules that are not part of future "Bitcoin Core" scamcoin pretending to be Bitcoin?

Under those circumstances, have you just created a situation where your code can ONLY be used by a scamcoin attempting to usurp the Bitcoin name and lead everyone astray?

You’re right.  It is a problem.  (I will make a little edit to my original post.)

I will keep that clause in my own code; as copyright holder, I could re-license it in response to such adverse events as you describe.  But for large-scale collaborative projects such as Core itself, such a solution is obviously impracticable.

Projects with centrally controlled development typically have a trademark, restricted on terms similar to what I describe.  For but one of many examples, Firefox.  You can hardfork it all you want, but not use the Firefox name and logo.  Whence my little idea.

In a situation where persons with horrid ulterior motives attempt hostile takeover of a project from a myriad of angles—repeatedly, for years—it seems self-defeating to avail to such persons the technological improvements of which they have demonstrated themselves incapable.  It is a political problem—by the etymological definition of that word, a people problem; and people problems cannot be solved solely by technical solutions.  I look to use every tool at my disposal, on strictly pragmatic grounds.  Perhaps may there be another way, on similar lines?


Title: Re: Licensing with a Bitcoin Consensus Clause
Post by: colatkinson on December 30, 2017, 11:07:30 PM
Out of curiosity, what is the source of the "Antiviral License?" I can't find any reference to it elsewhere on the internet.

Also of note, while I don't know if you particularly care about this, but what you're describing is not open source software. Per the OSI definition[1], software licenses which restrict against specific fields of endeavor, persons, or groups, are not open source.

Additionally, the restriction on copyleft licenses seems vague--what defines a copyleft license? Is there a distinction between strong (GPL, AGPL) and weak (MPL, LGPL) licenses? IANAL, but I feel like it might be better to just use an established license.

[1]: https://opensource.org/osd-annotated