passportxyz / passport

Passport allows users to prove their identity through a secure, decentralized UI
Other
945 stars 451 forks source link

[SPIKE] On-chain Passport Scoring and Data Structure for Attestations #814

Open erichfi opened 1 year ago

erichfi commented 1 year ago

Goal: To understand the requirements and technical specifications for structuring data in the attestations for on-chain Passport scoring, including deduplication, weighted scoring, and gating access to smart contracts.

Acceptance Criteria:

Link to Technical documentation: https://community.optimism.io/docs/governance/attestation-station/

nutrina commented 1 year ago

Copying over my comment from #813:

Regarding the data structure of the attestation station: https://community.optimism.io/docs/governance/attestation-station/#state

To my understanding the mapping could be as follows:

A. creator (gitcoin smart contract) => about (passport owner) => stamp key (Twitter|TwitterFollowerGT100|TwitterFollowerGT500| ... => val (bytes)

or it could be like:

B. creator (gitcoin smart contract) => about (passport owner) => stamp key (hash) => val (Twitter|TwitterFollowerGT100|TwitterFollowerGT500| ....)

Option A would allow an easy check to see if a user owns a given stamp or not. But it make deduplication hard. On the other hand maybe we do not need deduplication at this level, and this would be done in the Scorer ....