{"title": "Halo2 Backend for Noir", "logoImg": "bafkreidsfhbdprr4ta64r23ma3oajwk4uq3y75eiawdhrcqvvwavsltdmy", "website": "https://mach34.space", "bannerImg": "bafkreihvmzkyl3tqkx5ajfy7in2iaxejubnmelh3ycejhguza2b3f7t4ra", "createdAt": 1682117894851, "userGithub": "Ian-Bright", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..M0qTzAeCkLjEodlkzxsIpqiQhv6LZEf2dqVcnemawxyXI5hEmZaBOPfbkdsZuL5Wox-vhQX9pNlNx2LBx15ADw", "type": "Ed25519Signature2018", "created": "2023-04-21T23:00:24.016Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2023-04-21T23:00:24.016Z", "expirationDate": "2023-07-20T23:00:24.016Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x3DFaCd79E9A4dE85B1b8Fb16A0C62dC6971424Fd", "hash": "v0.0.0:kBMsmjcSKbHLCu3oSDq8PPCqctIu9bHcj3UqOffwNwA=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextGithubOrg#Mach-34#66142236"}}}, "description": "## Scope\nThis grant helps fund the construction of a Halo2 backend for the Noir zkDSL. We believe this is a worthwhile project to fund because:\n * All work is fully open-source and provides new ZK tooling as a public good\n * 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)\n\nThe 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.**\n\n## Technology\n[Halo2](https://zcash.github.io/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](https://github.com/zcash/orchard) to achieve increased performance and security. [EF PSE forked Halo2](https://github.com/privacy-scaling-explorations/halo2) and changed the commitment scheme to KZG. KZG provides [superior proof succinctness](https://hackernoon.com/kzg10-ipa-fri-and-darks-analysis-of-polynomial-commitment-schemes) by reintroducing trusted setups. Though the security of this scheme is objectively weaker than IPA in Vanilla Halo2, the [KZG Summoning Ceremony](https://ceremony.ethereum.org/) offers sufficient security assurances for most use cases. Exciting projects like [EF PSE's](https://github.com/privacy-scaling-explorations/zkevm-circuits) and [Scroll's](https://github.com/scroll-tech/scroll-zkevm) zkEVMs employ the KZG fork of Halo2 to facilitate Zero-Knowledge proving.\n\n[Noir](https://aztec.network/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](https://github.com/noir-lang/aztec_backend), the LambdaClass team connected the [Noir ACIR to Gnark](https://github.com/lambdaclass/noir_backend_using_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.\n\nThe 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. \n\n### Members\nThis project is being built by [Mach 34](https://mach34.space) with support from [Aztec Protocol](https://aztec.network). See [Mach 34 Team](https://mach34.space/team) for more depth on team & experience.\n\nJack Gilcrest\nDiscord: jp4g#1337\nTwitter: https://twitter.com/jp4g_\nLinkedIn: https://linkedin.in/jp4g\nGitHub: https://github.com/jp4g\nENS: jp4g.eth\n\nIan Brighton\nDiscord: Brightir#8154\nTwitter: https://twitter.com/Brightir2025\nLinkedIn: https://www.linkedin.com/in/ian-brighton/\nGitHub: https://github.com/Ian-Bright\nENS: ianb.eth\n\n### Previous Activity\nMach 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.\n\n * 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](https://prop.house/nouns/private-voting-research-sprint).\n * BattleZips-Noir: A demonstration of the [Noir DSL used for a simple Battleship game](https://github.com/BattleZips/BattleZips-Noir) settled onchain. The codebase was accompanied by a [tutorial video series](https://www.youtube.com/watch?v=25_FzjlG7ZU&list=PLabpoAlaCBY3SM6xHmZCOhPHlmLB4EY6H). Mach 34 worked with Aztec on this project to create approachable resources for developers that want to begin using the Noir DSL\n * BattleZips-Halo2 (SEE \"Note on BattleZips-Halo2 below\"): Jack and Ian worked on [BattleZips-Halo2](https://github.com/battlezips/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](https://github.com/battlezips/halo2-pedersen-commitments).\n\nNote on BattleZips-Halo2: Jack Gilcrest and Ian Brighton worked as **individual contributors** to build [BattleZips-Halo2](https://github.com/battlezips/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.\n\n\n## Use of Funds\nAll funds will go to the two Mach 34 developers Jack Gilcrest ([@jp4g](https://github.com/jp4g)) and Ian Brighton ([@ian-bright](https://github.com/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.\n\n### Other Sources of Funding\nMach 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.\n\nRequirements 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.\n", "logoImgData": {}, "bannerImgData": {}, "projectGithub": "Mach-34", "projectTwitter": "mach34_"}