$3,570.09 crowdfunded from 835 people
$14,997.54 received from matching pools
Scope
This grant helps fund the construction of a Halo2 backend for the Noir zkDSL. We believe this is a worthwhile project to fund because:
- All work is fully open-source and provides new ZK tooling as a public good
- Halo2 is fantastic, except for the DevEx. By plugging Halo2 into a DSL, we can mitigate one of the largest issues with Halo2's adoption (especially among new ZK developers)
The delivered code is FOSS under the same license as Noir itself. Upon completion, anyone will be able to write Noir code to build Halo2 circuits.
Technology
Halo2 is a cutting edge Zero-Knowledge proving system built by the ZCash team. Vanilla Halo2 does not require a trusted setup, and the ZCash team upgraded the ZCash blockchain with the Orchard circuit to achieve increased performance and security. EF PSE forked Halo2 and changed the commitment scheme to KZG. KZG provides superior proof succinctness by reintroducing trusted setups. Though the security of this scheme is objectively weaker than IPA in Vanilla Halo2, the KZG Summoning Ceremony offers sufficient security assurances for most use cases. Exciting projects like EF PSE's and Scroll's zkEVMs employ the KZG fork of Halo2 to facilitate Zero-Knowledge proving.
Noir is a Zero-Knowledge Domain-Specific Language (zkDSL) purpose built to expedite the developer experience in ZK. DSLs abstract away as much complexity of ZK circuit building as possible. Code written in Noir first compiles to an "Abstract Circuit Intermediate Representation" (ACIR) which is in turn compiled to a backend proving system. The ACIR can be compiled to R1CS or an arithemtic circuit, and theoretically any backend could be built into Noir. For example, while Aztec shipped Noir with Barretenberg, the LambdaClass team connected the Noir ACIR to Gnark. In short, as more proving schemes are added to the Noir backend, zkDSL users can switch between proving systems according to their needs without having to rewrite a single line of code in their circuit.
The paradigm mirrors the difference between "Blockchain Architects" and "Blockchain Developers". While architects focus on building the blockchain and its virtual machine, developers focus on building applications on top of the blockchain. By making the "architect" role optional to using a blockchain, the barrier to entry is lowered considerably. Noir lowers the barrier to entry for ZK application developers similarly by abstracting away the proving system from the developer.
Members
This project is being built by Mach 34 with support from Aztec Protocol. See Mach 34 Team for more depth on team & experience.
Jack Gilcrest Discord: jp4g#1337 Twitter: https://twitter.com/jp4g_ LinkedIn: https://linkedin.in/jp4g GitHub: https://github.com/jp4g ENS: jp4g.eth
Ian Brighton Discord: Brightir#8154 Twitter: https://twitter.com/Brightir2025 LinkedIn: https://www.linkedin.com/in/ian-brighton/ GitHub: https://github.com/Ian-Bright ENS: ianb.eth
Previous Activity
Mach 34 and Aztec Protocol agreed to begin working on this project on April 17th, 2023. Thus, there is no work completed on this specific project we are seeking funds for. However, we have been busy working on Halo2 and Noir in the past three months.
- Anounymous: A thoroughly designed proposal to use Noir's UltraPlonk to build private voting into NounsDao Governance. Our submission placed 4th out of 20 proposals.
- BattleZips-Noir: A demonstration of the Noir DSL used for a simple Battleship game settled onchain. The codebase was accompanied by a tutorial video series. Mach 34 worked with Aztec on this project to create approachable resources for developers that want to begin using the Noir DSL
- BattleZips-Halo2 (SEE "Note on BattleZips-Halo2 below"): Jack and Ian worked on BattleZips-Halo2 which demonstrated the Battleship game in the Halo2 proving system. This project began the exploration of Halo2's accumulation and recursion in order to "roll up" the moves of a game into one proof. Though further R&D is needed to demonstrate the scalability prospect, the repository serves as a unique demonstration of using Halo2 for privacy in arbitrary business logic. This work included the development of a standalone pedersen commitment gadget in Halo2.
Note on BattleZips-Halo2: Jack Gilcrest and Ian Brighton worked as individual contributors to build BattleZips-Halo2 with a grant from the Ethereum Foundation's Privacy and Scalability Explorations Team. While we bring this experience to Mach 34, it is important to note that Mach 34 did not build BattleZips-Halo2. EF PSE has no affiliation with Mach 34, and prospective grant donors should be aware of this fact.
Use of Funds
All funds will go to the two Mach 34 developers Jack Gilcrest (@jp4g) and Ian Brighton (@ian-bright). Work on this project will be a full time equivalent (FTE) of 2, and such funding will allow us to be singularly focused on delivering the Halo2 backend for Noir with no distractions.
Other Sources of Funding
Mach 34 has secured a grant from Aztec Protocol to build the Halo 2 Backend for the Noir DSL. We are in an exploratory phase doing requirements engineering; as such the full scope and consequentially the grant value has not been determined.
Requirements engineering is expected to be completed on May 14th, 2023. The full value raised for this project will be transparently updated as details become fully available.
Halo2 Backend for Noir History
-
accepted into ZK Tech Round 1 year ago. 835 people contributed $3,570 to the project, and $14,998 of match funding was provided.
-
applied to the Web3 Open Source Software Round 1 year ago which was rejected