BOSL or MIT - Orchard

Hm, that is news to me. Thanks for the clarification @hloo

Watching the conversation evolve, I would like to see an updated post from ECC to resolve the confusion around BOSL, who can use/access Orchard crates/code and the resulting relicensing status of such software. This is important specifically since many developers in the Zcash ecosystem will be building Orchard support in their products & services in the coming months.

6 Likes

We can’t expect Zcash to be the reserve currency or the native internet money if ECC (or any single centralized entity) is the gatekeeper on dev (by way of licensing). It just will not work.

I also agree with @secparam that this topic will take up unnecessary time, energy, talent, and resources. For example, core engineers at ECC and ZF having to take time to make their personal views (support for MIT) known on this thread just seems silly to me.

Let builders build and increase productivity/collaboration to be the best use case and implementation of halo2. There’s a delicate balance between competition and collaboration… but closing the doors and having a gatekeeper will stifle progress in the space imho and put another bad taste in folks mouths.

3 Likes

IMO the wild west of cryptocurrencies has a place for Crypto Capitalism.

5 Likes

It seems like you are suggesting that developers outside of ECC and users of halo2 should pay royalties or accept the throttling of their progress that effectively happens from BOSL.

The block reward streams are already a form of compensation/funding (and huge competitive advantage) for ECC.

If that funding is not enough for ECC to stay ahead of competition, then maybe they need an executive leadership team with bigger financing vision, experience, and abilities so that a bigger or more efficient team can roll out the best protocol ahead of competition.

Or @aiyadt are you suggesting that Musk should do a hostile takeover of ECC/ZF like he did with Twitter? (Which is an interesting idea… how much would that cost?)

3 Likes

Hi folks! I’ve been reading the threads, trying to learn where other folks are coming from.

I’ve seen some questions about the history and motivation for the Bootstrap Open Source Licence in the first place. Here’s a quick recap of our motivation in choosing the BOSL in the first place, plus a recap of the Filecoin partnership deal. Then at the end I give my general plea for why sustainable economics is critical for our mission.

It can be confusing because there are two different things in play here: 1. The requirements of the BOSL itself for people to make derived works, and 2. Why ECC doesn’t automatically give a license exception to any project that asks. Those are two different things but they both arise from the same motivation — we believe that it is critical to make our work toward achieving our mission sustainable. I’ll touch on each of these two things below.

— why BOSL?

The motivation is the sustainability of free and open source software. Free and open source software as currently practiced suffers from the “tragedy of the commons” problem, which means — at least in economic theory — that it will be “under-produced”. That means the world will get less free and open source software, and less maintenance and improvement of that software, than people need.

One of my core beliefs is that we need less ideology and more pragmatism to succeed at our mission. That means learning from facts and not just from theories. So do the facts show that free and open source software does, in fact, get created and maintained too little to serve the world’s people? Yes. As Nadia Eghbal and Feross Aboukhadijeh have documented, free and open source software is currently produced far less than people need. It is indeed a tragedy, just as economic theory predicts.

Looking back on it, that just makes sense. If the people who are contributing, who are creating the value, receive no more reward from it than anyone else, then economic theory and common sense predicts that this be unsustainable and will produce poor results for everyone in society.

In fact, during the process of ECC releasing Halo2 and Orchard under BOSL, we got two new data points about this, when two of the most important projects in the entire crypto industry — Uniswap and MetaMask — both abandoned open source and went to proprietary software licenses instead. In both cases, it was because they considered it unsustainable to continue to give away all of their work for free, including to competitors who were taking money that they could have earned, without contributing anything back.

So this was our motivation in releasing Halo 2 (the world’s best zero-knowledge proof system) and Orchard (the world’s best shielded money protocol) under the BOSL — as an experiment in making free and open source software more sustainable.

— why not give a license exception to every project that asks? Or to everyone in the world?

Electric Coin Co holds the copyright to Halo 2 and Orchard, so we can grant licenses to specific users or for specific uses, or even grant additional permissions to the everyone to use these codebases under different terms. So why don’t we just grant licensing exceptions to every project that asks, or equivalently, why don’t we just grant the entire world permission to use Halo 2 and Orchard however they like, by releasing it under the MIT license?

The answer, again, has to do with sustainability of our mission. The ZEC holders are the ones who are contributing value to the world by supporting all of our work at ECC as well as the work of the Zcash Foundation, the Zcash Community Grants program, and through them to other groups downstream. And, the ZEC holders are the ones who are going to continue funding this value-creation for the world, at least through the end of the Dev Fund (2020–2024), or even — if they so choose — beyond.

This includes the discovery and the implementation of Halo 2 and Orchard. Without the support of the ZEC holders, it would not have been possible. It would have been another one of those might-have-beens that never happened. It would have been, in the jargon of economists, “under-produced”.

If we at ECC take the support of the ZEC holders, create value with it, and then give that value away for free to everyone else, then we would be short-circuiting the feedback loop that sustains our mission. (As per Tokidoki’s question.)

As an aside, I also wouldn’t feel right about that. It would seem unjust, to me. It would seem like a betrayal of the ZEC holders. However, even if you disagree with me on that moral/emotional dimension, perhaps you can still agree with me on the economic dimension, below.

If we contribute value to everyone else in the world, but we contribute value to the ZEC holders more, then that makes a positive economic feedback loop which is sustainable, which is scalable, and which is resistant to capture.

This is another of my core beliefs: we need to continue to do both at once — to produce more value for the world than we capture, and to reward contributors more than we reward non-contributors. Both are necessary for the sustainability and scalability of our mission. Ideological positions that prioritize only value creation and neglect economic feedback loops are doomed to failure. So are greedy strategies that prioritise value capture and neglect value creation.

So in my view the sustainability of our mission hinges on simultaneously both producing more value than we capture, and rewarding contributors more than non-contributors. And the core contributors of the Zcash mission are the ZEC holders, who make everything else possible.

— the Filecoin and Ethereum partnership

We now have a data point indicating that our approach of being selective about licensing of Halo 2 and Orchard can work! That data point is our partnership with the Filecoin and Ethereum organizations. (In answer to GGuy’s question.) That partnership has come in two steps (so far). In the first agreement, Filecoin orgs and the Ethereum Foundation agreed to pay $2m to ECC and collaborate on building Halo, and granted special exceptions to the BOSL for Filecoin and for Ethereum. In the second agreement, the Filecoin orgs agreed to give grants worth up to $7m and the ECC agreed to give grants up to $2m to teams who extend Zcash’s functionality, and ECC agreed to MIT-license Halo 2 (but not Orchard). That $9m can fund a lot of good work that adds functionality to ZEC, contributing value back to the ZEC holders — more than it does to the holders of all other tokens in the world.

It’s possible that by withholding a general-purpose license from everyone in the world to use Orchard for free under MIT, that ECC might be able to strike another deal with another partner, in which they contribute substantially back to the ZEC holders. Or maybe not! You can never tell. But if we were to license Orchard to everyone for free right now under MIT, then that would definitely cease to be a possibility.

Finally, I know that some people disagree with me about the above. Some folks, who are smart, honorable, well-informed people, believe that the “give everything away for free” strategy is already succeeding at freeing and empowering the world’s people, or maybe that it can start succeeding while still giving everything away for no cost to everyone. Some folks believe that it is a moral imperative to create free and open source software, and to give everything away to everyone for free, regardless of how successful that strategy is at providing global freedom.

I respect those people, and it’s fine with me if other people believe differently than I do, but if you want to understand why I make the choices that I make, start with the fact that I believe what I wrote above — my moral imperative is to nothing less than global freedom, and my current belief is that both producing and sharing excess value and nurturing economic positive feedback loops are necessary to achieve that mission.

35 Likes

Why was Seth directed to the forum to seek the community’s input? The poll in this thread indicates that the community is against Bootstrap’s BOSL and supports an MIT licensing. Doesn’t seem to matter anyway.

1 Like

Thank you zooko for your support to the zec holders… maybe i m wrong but i think your take is the right choice.

5 Likes

I support this strategy.
It will be interesting to see what data this decision creates.

Are future changes possible though if needed?

2 Likes

A quick note about forum polls:

Forum polls have no parameters set on them as to the age of an account or involvement in the Zcash community. It literally just takes a disposable or real email address to make a new account and click the vote button.

This is in contrast to a ZCAP poll where the number of expected voters are a known quantity and the polling is resistant to Sybil style attacks.

17 Likes

I disagree with your approach but I understand your perspective given your status/position in the community. Thank you for taking the time to clarify your reasons. I have never been more optimistic for the future of Zcash. :hearts:

5 Likes

Usual disclaimer: these opinions are my own, not likely to be those of others at ECC, etc.

I’ll just very briefly add my position here: I am a fan of copyleft licenses, and I believe that Orchard should be dual-licensed under BOSL/GPLv3. As the GPL is a more restrictive license than BOSL (it requires immediate release of source code with a binary, rather than a 1-year buffer) this increases the usability of Orchard within the free software ecosystem, while still allowing closed-source use with the “1 year head start” that BOSL provides.

Copyleft licenses explicitly defend against private capture of public goods. And I wanted to respond here to something that @secparam suggested - that BOSL is intended to be a “try before you buy” license. I personally don’t believe that this is the intent of the license. As I understand it, when a third party creates a derived work from BOSL-licensed software, they are compelled to provide the source under the same conditions after one year. This means that if, on day 1, I make a modification to BOSL-licensed software, those modifications must be released under BOSL on day 366. However, consider what happens to the modifications that I make on day 2: those must be released on day 367. This creates what one could consider a “sliding window” of proprietary advantage: a company making BOSL-licensed software gets a perennial 1-year head start on competitors that want to take advantage of their improvements, but the important part is that those improvements eventually become usable by the commons. Software evolves quickly, and a sliding 1-year head start is sufficient to obtain a profitable first-mover advantage, without requiring closed-source software.

In a way, this is kind of the same idea implemented by patents and copyright ownership in general: an entity gets time-limited exclusive rights to their improvements, which must eventually be shared with the commons. It’s the duration of copyright and patent terms that makes them abusive; a 1-year exclusive right seems like a better balance for software, to me.

10 Likes
  1. What will happen to librustzcash? Everything depends on it and it has a dependency on the orchard crate.
    Currently, it’s MIT but mustn’t it switch to BOSL?
    If yes, aren’t you worried that this will deter community contributions and leave all the dev work with the ECC and their friends?
  2. I understand the position of many people is that the zcash dev fund paid for ECC to build Orchard and that it should not be given away for free.
    But what prevents Monero (for example) to fund a rewrite for 1M on the condition that it is MIT licensed? Still cheaper than paying ECC

IMO, the BOSL only prevents open source contributions to zcash rather than encouraging broader adoption.

@nuttycom For me, the issue lies in the “virality” of the BOSL. Even if projects release their source from day 1, they will still have to adopt the BOSL and thus make sure that it’s ok with their contributors.

4 Likes

Ok, so both you and Str4d have brought up this idea. That BOSL is purely a time limited grant of exclusive use and there’s no permission involved and no way out of it after. BOSL is merely intended to encourage short term innovation privately that must become public. I’ve seen that said no where else, so if its true, that should be clarified officially and prominently . Also ECC should explicitly pledge not to relicense proprietary work done during the 12 month period (because i’m pretty sure they could now in practice even if by some pinky promise in the license its allegedly immutable. And very sure people will accuse them of planning that,)

But, at least as a plausible intent, this makes sense. But even by the intent this license is a whole lot of headache for almost no gain. Weird licenses cause people to have doubts about safely including a library in their source code. All it takes is someone raising the issue in a meeting, everyone realizing they’d need to talk to a lawyer, and then people deciding its not worth the money and headache. That’s going to prevent some wallet dev from making a zcash wallet. It’s going to get us artfully trolled by the monero community when they ask for permission again for an exception. All for the hope that 1) someone could do proprietary stuff they’d then release it later and we’d benefit 2) you can make meaningful profits off only a year of keeping stuff secret. Having spun up a few blockchain startups now, I wouldn’t take that bet and would therefore not use Orchard. Instead I’d tell a team to do a clean room implementation from the spec + the MIT licensed crates and then never reveal their secret sauce.

This is still not worth the headache.

7 Likes

@zooko, a quick but very important question your post raises: why, today, is Orchard BOSL licensed going forward and not GPL or even MIT? Its great ECC got 9 million for MIT licensing HALO in the past, but

  1. would anyone really pay for Orchard? Orchard isn’t Halo, the awesome general zk proof tech ECC invented. Its much more niche to the Zcash ecosystem. And, given the halo libraries, someone who wanted to do proprietary work modifying orchard could easily build a clean room implementation from the spec fairly easily. That would avoid a licensing mess and the weird 12 month window BOSL gives them to profit off proprietary changes to Orchard.

  2. Did BOSL play a role in these deal? Remember, the whole question is can we replace BOSL with MIT or GPL.

Specifically, did the 12 month exception actually come in to play for licensing Halo (before it was MIT licensed)? Because if it didn’t, then BOSL was functionally equivalent to GPL in the negotiations and you could have done the same deal with GPL and Eth/Filecoin paying to get out of a copy left license (which is, in effect, what they did to remove BOSL). And so, even if there was potential revenue for licensing Orchard, we could still get it without the BOSL headaches.

Without BOSL, we’d get rid of these headaches about having a weird license. We wouldn’t be getting trolled by the Monero community, we wouldn’t have a source of FUD against Halo and Zcash, nor would we risk wallet devs not wanting to touch Zcash because some of our libraries the devs must use have a weird license and the devs worry this will get them in trouble.

7 Likes

Thanks zooko. So it appears there are 3 options. GPL only is a 4th option but has similar outcomes to BOSL + GPL so won’t specifically mention it. I’ll try and summarise where I think the discussion is at.

BOSL

BOSL + GPL

GPL

MIT

MIT

4 Likes

experiment

Trying to reach some form of outcome from this discussion I think @zooko raises a very important point that I think it warrants another poll. (P.S. I know these polls are not perfect but it might help those not posting express their views).

  • I would prefer to continue the BOSL experiment for (at least) a few more months so we can review outcomes/feedback
  • I would prefer to change (or adjust) the license now

0 voters

5 Likes

Hey folks, it’s been less than a day since I posted my long comment above, and tweeted it, and I’ve gotten an overwhelmingly supportive response from Zcashers on Zcash twitter. I collected all of them that I saw (excluding, of course, ones I didn’t see, from twitter accounts that I have blocked because I think they are counter-productive or low-quality), and I’m pasting them all in here. If you want to understand or predict my choices, be aware that I consider this kind of feedback to be a strong signal of support from the Zcash community.

First of all, I want to give a shout-out to BlocksAdvisors for boiling down my main theme into one succinct sentence: “Positive feedback loops create positive externalities.”. That’s exactly right!!

Second, the handful of responses that weren’t entirely supportive. See attached threads on twitter for the ensuing conversations:

And lastly, the overwhelmingly supportive responses:

https://twitter.com/rekodi_i/status/1521985921721278470

https://twitter.com/ildep2015/status/1521997335823323137

https://twitter.com/Allen_ZEC/status/1522005501659254784

https://twitter.com/Allen_ZEC/status/1522027533843279875

7 Likes

Can we have delayed MIT but baked in that it will go to MIT after a fixed time period. And baked in exceptions for all code that benfits Zcash i.e. wallets, free2z,com, etc?

Edit: Realized the poll at the top has now more people MIT than BOSL

Edit: We should go full MIT after a fixed period! With the current BOSL license no exceptions to unfriendly projects that dont benefit Zcash.

1 Like

P.S. I consider this to be a strong signal of support from the Zcash community for the general model, not necessarily for specific decisions like whether to grant a licensing exception for Monero or whether to release Orchard under the MIT licence right away. The model I mean is the one shown in this diagram, and succinctly stated by BlocksAdvisors as “Positive feedback loops create positive externalities.”

5 Likes