BOSL or MIT - Orchard

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

The enclosure of the commons has produced a lot of negative outcomes too - so the details of how we manage shared resources are important.

For example, there is almost no cost to duplicating open access digital resources, unlike common land. And people who are deprived of access to common land often became much poorer.

The “tragedy of the commons” model itself has been criticised heavily:

Here is some in-depth research on alternative models of property:

5 Likes

As Shawn intimated, forum polls are of limited utility in assessing the sentiment of the Zcash community.

However, the Zcash community has already expressed a clear preference for how Zcash should be licensed, in ZIP 1014:

All substantial software whose development was funded by the Dev Fund SHOULD be released under an Open Source license (as defined by the Open Source Initiative), preferably the MIT license.

The definition of the term “SHOULD”, as used in ZIP 1014, is “that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course.”

“Full implications” includes both the expected beneficial impact and any expected or potential negative impacts.

@zooko: You have been eloquent in describing why you believe that adopting BOSL for the Orchard library would be good for Zcash. However, many people have raised concerns about the potential negative impacts, both at the time Halo2 was announced, over 18 months ago, and since (including by me on an Arborist call a year ago).

Those concerns have not been addressed or allayed. Many questions have been raised but there has been very little response from ECC. The best we have is @str4d’s attempts to help people understand what the BOSL license means. However, without clear guidance from ECC, there is inevitably a lot of uncertainty and doubt about the implications of Orchard being BOSL-licensed.

So, @zooko, here some direct questions to you and ECC:

  • Has ECC carried out an assessment of the full implications of using the BOSL license for Orchard, instead of the preferred MIT license? If so, will you make that assessment public?

  • In ECC’s estimation, what are the expected and potential negative implications of retaining the BOSL license for Orchard?

  • Will wallet developers who want to support Orchard addresses and transactions be required to either (a) open source and relicense their entire codebase under BOSL, or (b) get permission from ECC to continue using their existing license(s)? Or is there an alternative approach? Has ECC appraised the developers of wallets like Edge, Unstoppable, ZecWallet and Zwallet of the impact of the BOSL license, and will those wallets support Orchard transactions and addresses following NU5?

  • Same question for exchanges and custodians who want to support Orchard transactions and addresses by using the Orchard library within their own software tooling (as Gemini does with their Sapling withdrawals). Has ECC appraised Gemini of the impact of the BOSL license, and will Gemini be adding support for Orchard withdrawals after NU5?

  • Same question for other products and services that may want to integrate the Orchard library in order to support shielded transactions (e.g. Blockchair’s support for Sapling viewing keys in their blockchain explorer).

  • What does the requirement to adopt the BOSL license mean for projects that incorporate permissively-licensed (e.g. MIT and/or Apache) code created by third parties? For example, if someone wants to fork Zcash post-NU5 by creating a code fork of zcash/zcash, will they need to get agreement from all the Zcash and Bitcoin developers (including Satoshi Nakamoto) to relicense the entire codebase under BOSL? If so (and given the unlikelihood of successfully collecting the necessary agreements), does this effectively mean that the Zcash cryptocurrency can longer be forked without ECC’s permission? Are existing Zcash forks (e.g. Ycash) required to obtain permission from ECC before adding support for Orchard?

  • What criteria has ECC set for evaluating requests for a license exception?

  • Finally, why did Filecoin insist that Halo2 be licensed under MIT/Apache instead of BOSL?

10 Likes

Hi, Teor. Thanks for the response. I’m aware of some criticisms of the “tragedy of the commons” theory, especially the fantastic work (combining both theoretical and empirical research) of Elinor Ostrom and her husband. There’s an episode of the Econtalk podcast about that work that I really enjoyed: Peter Boettke on Elinor Ostrom, Vincent Ostrom, and the Bloomington School. In an open source project that I used to contribute to — Tahoe-LAFS — we tried to leverage Ostrom’s theory.

It sounds like you might be one of those people whose opinions I respect that I differ from on this, as I mentioned:

Since I wrote that, BlocksAdvisors provided me with a much better way to state that last sentence: “Positive feedback loops create positive externalities!".

3 Likes

I agree with the goal of creating positive feedback loops, and I recognise the huge issues in funding open-source software in a sustainable way.

And I think that helps clarify my question:

  • what property rights are we controlling here? What are the benefits and drawbacks?
  • are there alternative ways to get similar benefits?
5 Likes

Not speaking for ECC, and limiting this comment just to an easily answered technical question:

librustzcash is a “Zcash project published by the Electric Coin Company” as defined in the orchard crate’s copyright terms, and therefore it need not switch to BOSL.

Note that the orchard crate is not a huge amount of code; it’s about 38 kloc including comments and documentation (measured using Count LOC online). The bulk of the Orchard circuit is implemented in halo2_gadgets.

4 Likes

@zooko I’m not sure your diagram addresses the underlying concern many have.

Currently we do have a feedback loop. It comes from the community using the value created by ECC and then others (some of which are in the Zcash ecosystem) multiply that value. Some of that value comes back to ZEC.

I’m not sure it’s easy to short-circuit that feedback loop without reducing the value produced by others.

Now the thing I want everyone to notice is that the community and others are really effective at multiplying that value produced by ECC. It seems like an extraordinarily risky experiment to try and short circuit that feedback loop when long term we should be looking to focus our efforts on things that have a multiplying effect.

4 Likes

The Arborist call helped clarify these questions, at least from my personal perspective.

For the Zcash community, the benefits are:

  • ECC’s BOSL-licensed software is paid for by the Zcash community via the dev fund
  • ECC controls the right to use its software libraries in specific ways
    • ECC gets to decide what good uses of its software are
    • ECC gets to decide how to direct the benefits (for example, the FileCoin partnership payments)

But the drawbacks are:

  • outside contributors who want to avoid the risk of BOSL don’t join the Zcash community
    • the Zcash community is smaller and less productive

So while ECC gains from using BOSL, it isn’t guaranteed to achieve an overall benefit for the entire Zcash community. So if there is a positive feedback loop here, it’s quite narrow.

Similarly, when we look at the wider tech ecosystem, the Zcash community benefits because:

  • zcashd is built on bitcoind, Rust & crates, sqlite, gcc/llvm …
  • Zebra is built on Rust & crates, rocksdb, parts of bitcoind, gcc/llvm, …

If we want those technology stacks to remain healthy, so we continue to benefit from new features and performance improvements, we might need to give back as well.

12 Likes

I think this set of questions absolutely needs to be answered, and I’m frustrated they have yet to (in general, not in the 8h since posting). While zooko did finally release the opinion of the ECC on this matter, which I appreciate as there’s been a lack of communication there, I will say I feel it skips over the fact that the community may be unable to continue the Zcash blockchain without organizational support. This concern would be alleviated by question 6 of theirs.

Regarding question 3/4, I was actually planning to integrate ZEC into my own upcoming work, yet I am unfortunately here to say I will be unable to depending on how this plays out, as it’d no longer meet the definition of free software as a whole (see last paragraph). I will also note that while librustzcash from the ECC is exceptioned, I actually have my own fork of librustzcash which uses different package versions to resolve conflicts in my work. I would be unable to do this in the future without my entire work being BOSL, which is absolutely not what I’m planning (I’m planning the project as a whole to be MIT/GPL with MIT components). I do not believe this is any way sustainable nor do I want to keep a project involving several different currencies locked to old versions because I have one dependency I can’t tweak the versions of, without breaking copyright law, nor can I remove due to users. It’s really just something I’m unwilling to risk/work around/build a dedicated set of microservices for.

Specifically replying to zooko’s response:

I do believe you said this stance could be changed with the community’s decision on Twitter, and would need that in order to be changed as it was funded by the ZEC community. Would you be willing to officially present the decision in a Helios poll for members of ZCAP to vote on (as the forum polls here do show there is interest, yet as stated above, are not necessarily accurate)?

ECC has directly said they’re looking to profiting from Orchard licensing. Considering this is ZEC funded development, will that funding be in any way given directly back to the ZEC community (not just ECC has money so ECC can do more things which possibly benefits ZEC)?

Halo 2 as on GitHub never had its license updated and still solely has BOSL published, preventing the developers I know from being willing to work with it (as that’s the much more definitive source than a blog post). I find it dishonest to claim its MIT licensed when the PR to do so has been stalled. Could you please ensure it’s finally merged? This happened 10 hours ago.

And then finally, in response the mention of ZIP 1014, The Open Source Definition | Open Source Initiative section 8 means Zcash, if using this exception, will no longer be FOSS. While it may be possible to convert it back to FOSS using a BOSL sublicense, it will not be as presented (yet if anyone can just rename the license and be done with it… maybe? it’s all such a mess). This is inexcusable IMO.

7 Likes

I am very much against using ZCAP as a mechanism to resolve this issue (or any issue) and/or to gauge sentiment of the community. Its unrepresentative. its a tiny sample size. The process of getting into Zcap is gatekept and has allowed for people who are not active in the Zcash community (some hostile) to get in. Also many of ECC and ZF executives and staff are on ZCAP and there is a clear CoI (even tho in this instance most of them want MIT). The poll on top is very representative of the emphasis: active community here on the forums. I actually appreciate @zooko taking Zcashers on twitter into account.

I do have one observation to make. From what I can see, ‘most’ devs want Orchard to be MIT. While most non dev Zcashers want it to stay BOSL. I fear Zcashers want it to stay BOSL because they dont understand the implications for outside devs working on Zcash Orchard will have. I understand that Zcashers dont want to give away Zcash tech, after all we paid for it. But we should ask ourselves why we dont mind that all other code including HALO (which is a rather big deal) is MIT… but dont want Orchard to be MIT…

4 Likes

I’d posit the ECC and ZF members who are active on ZCAP are expected to vote their opinion, and any pressure by ECC/ZF to the contrary would be hostile. Besides, it is private voting, so I don’t believe any conflict of interest caused by the orgs could arise. It’s also the precise fact that most of the ECC/ZF members seem to be personally advocating for a move away from BOSL to some degree that’s why I want a formal poll to be done. If the members wanted to use their personal vote for BOSL to benefit their group in some form (CoI caused by the individuals)… they wouldn’t be here on the forums advocating against BOSL.

As for sample size, that is a fair criticism, except the forum was criticized for not being manipulable when the explicit purpose of ZCAP is to manage these decisions by a verifiable community vote. If Zooko, head of the ECC, says it’s up to the community to decide, and then the community has a forum poll in favor of MIT, and then that’s not usable because it’s not verifiable, and then ZCAP is proposed, and that’s not usable because… what is usable? The status quo? Does the comment become this won’t change? I feel we need to either hear there isn’t a community process (despite previous comments) or have the community process formalized (which I’d presume to be ZCAP).

I had another paragraph, yet I moved this to the previous thread where it may be better focused.

1 Like

I think this is an excellent point.

8 Likes

Can we put some things in perspective here?

The amount of funds committed by these two partnerships is nearly insulting imho; the optics of the partnership is good, but the amount of money is more an indication of failed negotiations imho.

The bottom line with BOSL is it puts ECC (ie Zooko at the moment) in control of who can build on the software. At the very least, it raise questions and uncertainty about what OUTSIDE developers feel they can build with the crates and dependencies… that stifles innovation from outside ECC. Great example 1 is what @secparam mentioned he’d advise startup projects to do above (just avoid non MIT licenses). And good example 2 is there are rumblings in the community about just avoiding building on Zcash (and choosing a different coin). So, this seems like another way of ostracizing outside developers (see threads on Zwallet/WarpWallet if you need a reference).

I disagree with the BOSL license and the implication for the future development of Zcash. Satoshi made a revolutionary discovery; and Zcash built on that. DigiByte developed a key real-time diff adjustment feature; and Zcash adopted it. ECC now discovers halo2… and now we need to throttle other’s development because of “the mission”. Come on now :joy:

7 Likes

Ostracizing rhett, scamcoin forker of zclassic and bitcoinprivate ? :white_check_mark:
Ostracising monero trolls and their toxicity towards Zcash community ? :white_check_mark:

So far, the BOSL licence is working as intended and protect Zec holders. Thank you @zooko :pray:

Do you have anymore examples or are you done with your bad faith, and your out of touch of reality and ridiculous semantics ?

4 Likes

Ostracizing rhett, scamcoin forker of zclassic and bitcoinprivate ? :white_check_mark:

Agreed. :clap:

Ostracising monero trolls and their toxicity towards Zcash community ? :white_check_mark:

Totally agreed, standing ovation :clap::clap::clap:

Do you have anymore examples or are you done with your bad faith, and your out of touch of reality and ridiculous semantics ?

Unfortunately I can work you through an example (myself) here, if you ask this question in a non-loaded manner.

1 Like

Well if issues happened to you, this is very unfortunate because you are a long standing & good community member. I’d like to nurtur the good people obviously

Maybe this is a way of seeing where the community stands. I voted and look forward to seeing the results.