Adding verifiably deterministic signatures to your existing Ethereum keys will make it possible to have a unique, anonymous identity. Developing this cryptographic primitive, or PLUMEs, into wallets, will unlock sybil-resistant anonymous apps like zk nullifiers for anonymous unlinked airdrops, anonymous decentralized voting which only allows one vote per account, anonymous proof of solvency, and message boards with a consistent identity. We think that fully executing this work will create a whole new class of dapps and web3 social apps with pseudonymity.
This anonymous identity, or your 'PLUME' (privately linked unique message entity), is a new verifiably deterministic signature on your existing Ethereum keypair.
This grant will go to helping to implementing ERC 7524 in more wallets, auditing the code, and engineering faster and faster zero knowledge cryptography behind it. Note that this scheme offers an improvement to semaphore or tornado cash nullifiers, because the first few people who sign up will not have small anonymity sets. The grant will also help to publish the paper that proves the security of the scheme via a DDH-VRF argument, and pay for conference expenses so it can be presented more widely. It will be split amongst Aayush, Shreyas, Skaunov, Bermuda, ZKSnap, and future maintainers and devs, as well as covering travel for anyone giving PLUME-related talks!
If you'd like to read the paper, it can be found at https://aayushg.com/thesis.pdf . The slides to fully explain the new scheme are found here: https://docs.google.com/presentation/d/1mKtOI4XgKrWBEPpKFAYkRjxZsBomwhy6Cc2Ia87hAnY, and the code is here: https://github.com/plume-sig/zk-nullifier-sig. The academic paper is here: https://eprint.iacr.org/2022/1255 . A blog post is here: https://blog.aayushg.com/nullifier. DM @yush_g on Twitter with questions, or in #plume in the EF PSE Discord! Initial research was funded by a $4k grant from 0xPARC and done as part of an MIT masters thesis.
WANT TO HELP? We are looking for help to integrate this scheme into more wallets, give grants to people building anonymous discussion or voting applications with ERC7524 and the in-browser halo2 proof, and redo stealthdrop.xyz to work with this scheme. If you're excited about being a major part of the future of Ethereum and creating novel primitives like private voting, private airdrops, proof of solvency, or message boards with reputation, please reach out to @yush_g on Telegram or Twitter! We have grants out from this Gitcoin Grant pool available to give.
APRIL 2024 UPDATE: Your money has gone to good use! We have been able to pay Sergey Kaunov to resolve issues, improve the API, and maintain the repo. We also released official packages on npm (plume-sig) and cargo (plume_rustcrypto). We also were able to pay Shreyas to finish PLUME in halo2: https://github.com/plume-sig/zk-nullifier-sig/pull/82 to use as part of ZK Snap's private voting protocol (what Ameen calls the "holy grail" of private voting). We also were able to give grants to Bermuda to build a PR into Rabby Wallet, although we are still waiting on word back to merge. We also made all of the reviewer-requested changes to ERC 7524: https://github.com/ethereum/ERCs/pull/242
OCTOBER 2023 UPDATE: Your money has gone to good use! A number of open source contributors have picked up bounties and resolved over half of the outstanding issues. Grants funded by you helped get a PR out to Taho Wallet (by Oren Yomtov) to integrate PLUME, and have a Ledger C implementation (by PSE) finished for which we are waiting on both an audit and review by their team. We also have a grant in progress with Aztec to get PLUME into Noir to be a note type on their network, and Mina published work regarding PLUMEs in their system as well. While we got a grant to integrate into Metamask Snaps, a recent change actually made that impossible. We also published ERC 7524 for PLUME to give teams a universal standard :)
APRIL 2023 UPDATE: Your money has gone to good use! Due to your generosity, we were able to push forward a lot of progress, including that we were able to develop a Metamask snap (deployed at nullifier.xyz) and push an independent Javascript implementation that discovered an overflow bug in both of the Rust implementations! We also released a circom version, and received a V2 proposal from Poseidon. We also started working on a Ledger implementation with two new teammates (as of April 2023). We also are building towards an ERC/EIP as well as early bugfixes and a V3 proposal with a smaller hash to curve circuit, both of which we are actively polishing drafts on in collaboration with EF PSE and hope to have published once the halo2 proof is done.
A V2 proposal was submitted by Poseidon/Manta in Q1 2023: https://www.notion.so/mantanetwork/PLUME-Discussion-6f4b7e7cf63e4e33976f6e697bf349ff?pvs=4 which we have already built into the original repository and ERC!
PLUME: Pseudonymously Linked Unique Message Entities, aka Verifiably Deterministic Signatures on Ethereum History
-
applied to the CollabTech Round and Thresholds Experiment 2 months ago of which the application is still in a pending state
-
accepted into Developer Tooling and Libraries 6 months ago.