zk-passport / openpassport

Generate privacy-preserving ID proofs
https://openpassport.app
328 stars 57 forks source link

Attestation Standard #202

Closed 0xturboblitz closed 1 month ago

0xturboblitz commented 1 month ago

Right now, the app sends the proof to the SDK in the OpenPassportVerifierInputs format, then the sdk creates an OpenPassportVerifierReport by parsing inputs from the proof.

We want an object that represents the OpenPassport attestation. It doesn't necessarily have to comply with W3C's VC standard, but it should expose all the attributes and the proofs necessary for verifying them. My proposal is to replace OpenPassportVerifierInputs with OpenPassportAttestation, and have the SDK simply respond true or false when the attestation is passed. OpenPassportAttestation would look like this:

{
  context: "OpenPassport"
  circuit: "register"
  attributes: {
    ...all the current context of VerifierReport,
    ...including optional attributes like `isCountryInList` that includes a list of countries, and `isOfacSanctioned`
  }
  proofs: {
    dscProof
    cscaProof?
    dsc?
  }
  verifiers: {
    dscProofVkey
    cscaProofVkey
    // those are links to github, e.g. "https://github.com/zk-passport/openpassport/blob/ef68691f886ca8512de320afb066ea9186fcb70e/common/src/constants/vkey.ts"
  }
}
fishonamos commented 1 month ago

@0xturboblitz . I will love to work on this. Kindly assign.

onlydustapp[bot] commented 1 month ago

Hey @fishonamos! Thanks for showing interest. We've created an application for you to contribute to Proof of Passport. Go check it out on OnlyDust!