Over the past year, I have been engaging with the halo2 community through:
- providing support in the Halo 2 Ecosystem Discord and Office Hours;
- understanding and documenting the forks and projects building on halo2; and
- contributing to new features in halo2.
Having developed a better understanding of the ecosystem, I believe that the popular forks have diverged significantly enough that we can expect them to be long-lived. However, community contributions that can benefit zcash/halo2 include:
- low-level optimisations (e.g. curve operations, lookup arguments);
- general-purpose features (e.g. Challenge API); and
- security analysis and formal specifications.
I will finish the year by identifying a set of features that can be realistically upstreamed, and aim to fully upstream one of these to demonstrate the community workflow.
The scope of work I have completed this year diverges from the initial milestones set out in this grant: I have focused more on community engagement, and less on upstreaming features. I have not yet claimed any part of the grant, and would be happy to adjust / reduce the grant accordingly as the ZCG decides. (Iit’s been lots of fun serving as halo2 community manager, and I plan to continue after this year regardless of the grant.)
Community resources
I help to moderate and maintain the following community resources:
- halo2 Ecosystem Discord: a space where builders can ask questions and find collaborators. Notably, much of the hacspec formal specification took shape in a discussion in the Discord.
- weekly office hours
- halo2.club: a directory of projects related to halo2.
New features
- mvlookup: an implementation of a more efficient lookup argument based on the logarithmic derivative. This has been tested in Scroll’s fork and ezkl, and could be a candidate for upstreaming
- cq: an implementation of a more efficient fixed lookup argument using cached quotients. Since this uses a trusted setup under-the-hood, it is likely not suitable for upstreaming.
Contributor workflow
I will finish the year by identifying a set of features that can be realistically upstreamed, and aim to fully upstream one of these to demonstrate the community workflow.
Further, I would like to highlight another effort to standardise contributor workflows for zcash-maintained cryptography projects: the Algebraic Improvement Proposal. I plan to contribute to discussions around this process.