Halo 2 BOSL Impact on Zcash Forks

Zcashd is MIT licensed,
Zcashd includes Halo 2, which is BOSL licensed

Are forks of the zcashd repository allowed?
If not, would they be allowed if the Halo 2 code was removed and replaced with a pointer to it?

Thank you, I’m not a lawyer and want to follow the licenses properly. Not familiar with BOSL libraries

1 Like

https://github.com/zcash/halo2/blob/main/LICENSE-BOSL

https://notes.andymatuschak.org/z2B4XzXo1mDV3ydhWanGxDMYWKXCQfX6mCiS

1 Like

Hi, so my interpretation is that since the zcashd code is MIT license, it can be forked because “MIT is a permissive license”

Is that correct or no?

Disclaimer: I am not familiar enough with the BOSL or the MIT license to comment with any authority.

However, my limited understanding of the subject, is that Halo2, and the Zcash Orchard payment protocol (which is what you would be forking) are under two separate licenses.

To foster greater collaboration and reuse, Halo 2 is now shared under the more common and permissive MIT license or Apache 2.0 license. Orchard, the Zcash payment protocol built on Halo 2, will remain under BOSL.

So, I believe that means the ECC crate, which has the Orchard circuit, is still under BOSL.

Thereby, if you fork Orchard it would fall under BOSL, not MIT.

CC @str4d if I am correct?

3 Likes

(I am not a copyright lawyer, or any kind of lawyer for that matter.)

@Shawn is correct. The relevant copyright info is here, showing the exception that enables the zcashd and zebrad codebases to be generally licensed as MIT instead of BOSL:

Forking zcash/zcash would result in a distribution that falls outside the exception, and therefore would require either:

  • Distributing the fork per the BOSL terms, which (AIUI - I am not your lawyer) would allow the fork to continue being licensed as MIT for up to a year, but would then require relicensing as BOSL after that point.
  • Obtaining a similar exception from ECC, to allow the fork to be distributed under the MIT license beyond a year (per whatever terms the exception might have).
  • Removing the BOSL-licensed code from the fork, namely the orchard crate (and also the halo2* crates if the fork was made now, but zcashd 5.0.0 will use the MIT-licensed halo2* crates instead of the earlier BOSL-licensed versions).
6 Likes

Thank you for the clear explanation.

1 Like

FYI - the Zclassic account(I assume run by Rhett) has been tweeting this and other similar tweets

2 Likes