BOSL or MIT - Orchard

Hi @str4d , any idea if forks of the zcashd repository will be allowed?

zcashd says MIT license, but will contain BOSL Halo 2 code.

1 Like

Would someone be so kind to list a pro’s and con’s list here?

Thank you for the explanation! All this discussion about the BOSL has been very interesting. I was about to start a thread asking about it.

Your missing one other thing which is probably the key point:
You can, after using BOSL code with in the 12 month exemption, go get a license for the codebase that isn’t BOSL and keep it in your binaries.

Two ways you might do this:

  1. purchase a license from the license owner (the electric coin company LLC)
  2. get some exemption from the community (which technically is probably a license from ECC)

Its important to keep this in mind, because theres are governance risks to handling that. They range from the minor (the thread yesterday) and some trolling to more major issues like what would happen to the money if, e.g., facebook, paid for a license.

4 Likes

The exception should be granted but the license, especially given the timeframes it involves with open-sourcing derivatives, should be left alone at least for a good while to see how it works out as a protective measure.

1 Like

If we want Zcash to be the greatest privacy coin in the future we need all the help we can get. We need 100s or 1000s of developers comfortable contributing to the Zcash codebase. I don’t think it matters if the initial exposure to the Zcash code is through commercial applications or other cryptocurrencies. Chances are, if we have the best tech, some of those developers will also contribute to the Zcash community.

  1. Do we think QEDIT is going to be a net benefit to the community?
  2. Did their exposure to sapling and their commercial work net benefit the community?
  3. Would their commercial work have been hampered by a BOSL license?
6 Likes

My reasoning is simply based on the assumption that a non-trivial amount of work went into figuring out the license and that the protective measures it affords may be worth that.

2 Likes

The problem is, there’s literally no upside to this license. The downside risk is someone asks to use the only thing the license creates the possibility off — a non-copy left version of the code. Because this option is permissioned— it must be granted by ECC — it creates governance problems. And is a source of fud in the general crypto currency community about Zcash. And we’ve already seen that happen. Against that, no one has offered a single potential upside.

if you read carefully, no one from ECC besides Zooko, possibly his brother, and the company coms people, are prepared to defend this publicly (and indeed even less privately). Several people (at ECC even) have explicitly and publicly said it’s a bad idea. Several others implicitly.

The thing is, BOSL is not a catastrophically bad idea. Its mostly harmles. Its just a brain fart that will 1) eat up time and energy when issues around it bubble to the surface (e.g. right now) 2) be a source for FUD against Halo2. Which is ironic, since the point of halo was to reduce the FUD against Zcash.
We should get rid of BOSL just to save the headache.

10 Likes

This does appear to be the case. It’s really unfortunate that the community is so divided on this.

Unfortunately the community is probably not going to hear about the any missed opportunities caused by this. Those that don’t like the license, or hear FUD about the license, will move on. Many won’t hang around to hear more or ask for an exception.

2 Likes

As part of both BOSL and GPL being copy-left, I’d at least hope Orchard is relicensed with a GPL exception (or such an exception is written into the BOSL as a whole which is then applied to Orchard). Given BOSL’s requirement on being OSS, which the GPL also requires (to some degree), removing the 12 month delay you’re permitted if you immediately want to OSS your code shouldn’t be an issue.

The one issue I see with such a scheme is the fact that the GPL doesn’t actually require open sourcing your code, only providing source to your customers who are allowed to distribute it, which is a slight distinction. It can also be further stated that if we shift it from GPL to GPL + OSS status, the GPL status arguably becomes irrelevant. So long as your code is actively OSS under one of several valid licenses… it shouldn’t be an issue IMO. The one distinction with moving from GPL + OSS to just {L} + OSS is that Zcash, if MIT licensed and using Orchard, could be forked into a private codebase without the Orchard library (yet potentially with an API matching alternative under a different license). With GPL/BOSL’s propagation applied, Zcash and its usage of Orchard would be ineligible for such private usage (ignoring the fact it has an exception and is MIT regardless).

I don’t think we should be concerned about license propagation to code using Orchard when the primary user doesn’t have such propagation, and should solely focus on ensuring that contributions to Orchard itself, along with its uses, are OSS (if that’s desired in the first place). That would mean a {L} + OSS exception, for {MIT, BSD, LGPL, GPL…}. That said, I do truly believe it should simply be MIT to not only encourage open development, remove all this drama, and remove legal ambiguities, yet also to remove Zcash’s dependency on a corporate exception (which I believe makes its binary non-FOSS? As you can no longer legally fork it as you’d immediately lose the exception and have a MIT codebase which is incompatible after 12 months? Can you promote an existing MIT codebase to BOSL without seeking permission from every single contributor?)

7 Likes

That’s a good point.

I also hadn’t thought about a community driven fork in this context. Let’s say a large portion of the Zcash community disagreed with a protocol decision made to Zcash and wanted to fork. Community would be required to adopt a BOSL license for the fork. ECC would still retain copyright which they could sell/relicense however they see fit.

2 Likes

The MIT license does allow sublicensing, of course, yet I’m not sure the BOSL text is compatible and if it isn’t… then it would be illegal for the community to fork Zcash from the ECC without not only removing Orchard as an active pool, yet also removing the blockchain verification enabling validation of the Orchard transactions on record (unless an alternative implementation was provided or an exception was acquired by the ECC who is theoretically being forked from, or every single contributor to every line of code in the project offered permission to license their work under the BOSL, which should be considered impossible).

There is the caveat that the Zcash Foundation has an exemption granted to Zebra, meaning if Zebra hits production status the Zcash Foundation could sponsor such a fork, but it prevents pure-community actions without any organizational support.

2 Likes

I think you might misunderstand what is it exactly being licensed under BOSL. Also, regarding forks, we have Zebra now. Another good reason to have multiple implementation of the protocol.

In defense of BOSL, can anyone point out the way to make sure people don’t just profit off what the Zcash community has funded through the development fund, without giving anything back to the community?

1 Like

We don’t. We allow and even encourage usage from others outside the community. We shouldn’t assume the next breakthrough will come from ECC. We are nowhere near the limits of this technology. We need all the help we can get. And in the mind of many cryptographers and developers we create that friendly collaborative environment by releasing improvements and developments in a liberal open source license.

“Do to others as you would have them do to you.”

7 Likes

It should move to MIT licence. I dont think there is any strong opposition to it. Yes, even if we paid for it.

Edit: Realized there’s a poll. Clearly im wrong, some people do think that it should stay BOSL…

1 Like

I did mean Orchard as the Rust crate with “unless an alternative implementation was provided” immediately following the quote you provided. As for Zebra, it’s only Zebra as published by the Zcash Foundation, which was my second paragraph.

1 Like

My opinion: I voted for MIT licence.
My reasoning: Having a licence that is hard to work with will hurt Zcash more than it helps by stifling ecosystem, wallet software in particular. We already have the exact same situation with the trademark, let’s not repeat same mistakes.

5 Likes

How does BOSL affect your other project RYO @fireice_uk ? I thought I heard you were going to use Halo?

1 Like

You can mix MIT and GPL code (large parts of Linux kernel are MIT-licenced drivers) as long as the final licence is GPL. If there is no re-licence I will consider that route.

What if we agree to relicense Orchard crate from BOSL into MIT by NU6? I believe the current plan by QEDIT is to release the Orchard Shielded Asset protocol (i.e. UDA/ZSA) by building on Orchard. This way, we can ensure some stability in the next few months while at the same time giving the community more chance for input and ask for clarification if ECC would do it, or not, and why.

Personally, I think there should be some discussion on how to solve this particular problem. At the end of the day, not many Zcashers joining the movement to support unrelated, or worse, competing projects in the space.

I still don’t see anyone who dislike BOSL address this particular question. Cheers!

1 Like