Announcing Halo 2

The Zcash community ultimately determines what is appropriate for Zcash. But we don’t surface all ECC decisions to the community. We need to make judgement calls about what is appropriate, as we did here.

We have often heard from the community that it wishes there were greater protections from others who may “capture” the software we build and exploit it for their own commercial purposes. It’s a broad open source problem that we, in good faith, are trying to solve on behalf of the Zcash community.

Your frustration about our decision process has been heard and we’ll certainly consider it as we consider future decisions. At this point, we’d really like feedback on the merits of the model and whether it is good for Zcash and good for the open source community.

6 Likes

Regarding the license choice, Zebra is MIT+Apache2 licensed.

Unfortunately we won’t be able to include any non-permissively licensed software in Zebra, so an incompatible license would be a hard blocker on deployment.

5 Likes

Valid concern.

2 Likes

The ECC-developed Zcash Rust crates are also MIT+Apache2 licensed, and zcashd is MIT licensed, so ECC is already incentivised to ensure that any implementation of Halo 2 is licensed compatibly with those licenses.

8 Likes

How should the community expect future decisions on licensing to be made? Internally only, or with community input?

Hi JoshS,
Genuine question: What was the license aiming to achieve?
I think some people in this thread think its a way for ECC to keep their software proprietary. Which makes some people concerned.

My limited understanding is the opposite: ECC is trying to let anyone who uses it keep it proprietary for a year and then those people can either publish their new work (including anything built on top of halo) under the same license OR negotiate a different license with whoever owns the copyright for the software.

3 Likes

We’re here now, asking for community input. Now is a great time to provide it. :wink:

How should we protect the research and engineering the Zcash community has funded for the benefit of Zcash, while making it also available to benefit all of the world, without the risk of capture by those wishing to exploit the research and engineering for their own profit? If this is the wrong model, then why is it wrong, and how can it be improved?

But this isn’t just a Zcash problem. It’s a larger issue with open source models. We, as a community, have the potential to make a positive impact. Let’s do that.

5 Likes

Did I answer your question in my response to Sarang?

Not really. Either interpretation could be justified that way. The question is: which one is it? Because I think the possibility of the first one is what has the, if not pitchforks, maybe sporks, coming out.

1 Like

This doesn’t answer my question at all.

I see how it might be misinterpreted.

No, it is not intended that ECC will extract value from the Zcash community by keeping its software proprietary. This isn’t a strategy to commercialize the software. This is a means to protect the interests of the Zcash community. If it doesn’t do that, then let’s focus on why and what would.

3 Likes

I believe your question is a red herring and ill intended.

1 Like

I don’t appreciate the accusation of bad faith.

I asked because I am concerned about the decision-making process behind this. Whether or not the changed license is beneficial or not, the decision was made internally, with no community input. I think it is important to know if the community should expect similar decisions in the future to be made internally only.

4 Likes

Given devfund extension, think it would be better for company rep to use MIT license on all software; otherwise feels like you’re having your cake and eating it - having guaranteed income stream, but also acting like a for profit that doesn’t have that guaranteed stream.

Paraphrasing, devfund would be more acceptable imo, if software generated were public goods…in which case what’s wrong if some party later makes profit with it?

3 Likes

There are three concerns here.

  1. Why was this decision made with out community input?
  2. Was this the right decision? It seems given the obvious license compatibility concerns with ECC’s own software libraries and ZFs, that there’s some discussion to be had. And maybe in the future this could be avoided if decisions were made in public with feedback.
  3. this is some kind of bad faith trick by ECC.

I don’t see the last one, but it’s hard to argue against because I have not the foggiest idea what this license was trying to achieve.

I think this might be easily addressed by a simple fill in the blank:

If ECC released Halo under GPL/aGPL (a viral license that disallows proprietary uses/including services), ___($1) bad thing would happen. By releasing it under TGPPL, this lets ECC do ____($2). (2) prevents (1) by ______.

a8d79a582572d777357bb5b6cfe2b4b29096486a

7 Likes

Is it because we are worried our competitors leverage Halo 2 & deploy it before Zcash? zksnarks, Sapling are already being used by other projects - should we be happy or sad about that? I would say HAPPY

Many members already made great points regd. this. What’s the one thing that made ECC take this step for Halo 2?

3 Likes

It seems like a way of enforcing alignment of principles i.e. Zcash is for everyone, proprietary development is dissuaded due to the legal reprecussions and open source isn’t because its exactly the same for them as it was before, Zebras have standards and if you’d like to fork the thing the herd has decided to continue funding then I don’t think adhering to one of them (a fundamental one but nonetheless) is too much to ask (unless it is, in which case begone)

Hi @Autotunafish you responded something similar in another thread, what are you talking about? are you asking community to fork off if they want something to change?

TGPPL says (emphasis mine):

  1. External Deployment. The term “External Deployment” means the use,
    distribution, or communication of the Original Work or Derivative Works
    in any way such that the Original Work or Derivative Works may be used by
    anyone other than You, whether those works are distributed or
    communicated to those persons or made available as an application
    intended for use over a network
    . As an express condition for the grants
    of license hereunder, You must treat any External Deployment by You of
    the Original Work or a Derivative Work as a distribution under section
    1(c).

So, similarly to the Affero GPL, remote services such as websites and SaaS that are derivate works must publish their sourcecode within a year? (Note that some contend that even linking in the code, as a library, makes the whole application derivative work.)

A few questions:

  1. What is the rationale for this, especially in the present context? I observe that Affero GPL is far less popular then the GPLv3, which is identical other than not having such a provision.

  2. How does the above phrasing compare, in its implications (other than the 1 year grace period), to the analogous phrasing in the Affero GPL? To recall, the latter is:

Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software.

  1. How does this affect compatibility with other licenses? Recall that the Affero GPL would be incompatible even with its sister license, the GPL v3, if it weren’t for an explicit exemption in the former:

Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License.

and in the latter:

Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.

  1. More generally, what licenses are compatible with TGPPL?

    Ideology and abstract goals aside, this is a crucial practical question. We are very used to compromising and using open-source license that don’t perfectly match our tastes, because the alternative is a compatability nightmare or (more commonly) an adoption blocker that benefit no one. I’m not innocent, myself, of crafting custom licenses in the past; but in this day and age, I’ve come to view custom open-source licenses with much suspicion. They are more commonly the result of juvenile playfulness or idealism, than of well-reasoned problem-solving.

5 Likes

I’m not suggesting it but you are free to do that and I might ask you to consider the constraints that make that possible because all I can tell the new liscense does is ensure that future possibility with forked derivatives after a year, it protects the publicly allocated resources directed at this public good by ensuring things copied from it will eventually remain there too