G

Gitcoin Passport Delegation

Use your Gitcoin Passport Score with any of your accounts.


The problem Gitcoin Passport Delegation solves

If you separate your finances on-chain from you public persona on-chain, you might find yourself in a situation where you need Gitcoin Passport score with account which has no score. While you other account has one. Just moving funds to public-facing account would destroy last bits of privacy you have. This software offers an alternative. Assuming the protocol which requires GP score is willing to accept this software, you can prove that score is at some other account you own is at least X.

Challenges I ran into

At the moment of submission circuit compiles and performs almost all of needed checks. Data for the prover can be generated using

./generate.py

.

Problems I've encountered:

  1. Noir support for eip712, eip191 (E variant). I've tried implementing encode_defunct (EIP191, E), but run out of time. Lack of Noir experience. Instead I rely on python script to prepare hash that is signed as a private input. This is an obvious security problem to be resolved via proper encode_defunct implementation in Noir.
  2. Data signed as a part of gitcoin passport stamps is hard to get. Stamps themselves are easily available, but it seems that data that goes into EIP712 signature is stored on Ceramic Network. Since I haven't had time to set it up, I just mocked the stamps.

There are other things I've haven't got to do yet:

  1. Haven't deployed and tested delegation registry onchain.
  2. When delegator chooses just to use their score directly, they need to produce a signature. Next contract needs to check it, hash it and add it to registry.

Tracks Applied (2)

Product Path

As I understand mechanic of shielded pools, long standing protocol interactions will require "stand-in" addresses, spawn...Read More

Aleph Zero

Best ZK Application deployed on zkSync

Doing ZK privacy on Era is great, since cost of the proof verification is just compute, and Era does recursive proofs to...Read More

zkSync ∎

Technologies used

Discussion