Hello, Seth here from the Monero community.
I was looking through the Orchard and Halo 2 code to see what work is being done on this side of the pond, and I noticed that the Orchard code is published under a “BOSL” license with various copyleft restrictions. The Halo 2 code is being transitioned into an open MIT license.
The Zcash core code and the Monero project publish their code under a permissive MIT or BSD-3 license. These licenses allow people to do pretty much whatever they want with the code.
The Orchard code however requires that any derivative work also include the same BOSL license. Including this same license is not possible in Zcash or Monero’s case, unless they were to relicense all their code. This is unrealistic, since there are hundreds of contributors over the years.
The ECC and Zcash Foundation have somewhat solved this issue by issuing a “special exception” to the Zcash and Zebra repositories, allowing the Orchard code to be included in these repositories without requiring that these repositories also change the rest of their code to be BOSL.
This exception allows for this copyleft Orchard code to reside within an otherwise permissive codebase. Normally, this is not allowed under the BOSL or the GPL. This exception makes it somewhat like the LGPL, but only for projects with an exception (not for everyone).
I was asked by Josh and Zooko of the ECC to create this post asking for a special exception in the Orchard license to allow for the Monero project to potentially use the code in its more open GPL-3 codebase.
What this would allow
- The Monero project could include Orchard code to make a derivative work without needing to license the Monero code under the same BOSL restrictive license.
- The Monero project would need to include a note about the BOSL code so that others would know they can’t use this Orchard code in another non-BOSL project, unless that project also had an exception.
- The Orchard code will remain under its BOSL license.
What this does NOT mean and what it would NOT allow
- Monero will not necessarily use this code. I can’t promise that. Monero may still do its own thing.
- It will not be able to be used in any other project that uses a different license without a special exception.
If the goal of the Zcash community is to build strong open-source ecosystems and to advance privacy, I believe that there is no meaningful reason to prevent other open-source projects from using the Orchard code. Granting an exception to the Monero Project would allow Monero to potentially use the code without also making the code available for use in closed-source applications.
If such an exception is NOT granted, then it would signal that the BOSL license’s purpose is NOT only to require additional open-source development and thus foster open-source development. It will also function as a roadblock that directly inhibits open-source projects, innovation, and growth.