-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
reputation/personhood oracle as an Integritee OCW #300
Comments
some test snippets: rust code: result: |
This task could actually also help with another problem: Maybe we want to be a bit more inclusive and just know "who has an account with nonzero balance?" in some local community. There is a cryptographic ZKP way for this: https://forum.polkadot.network/t/mmr-por-how-to-do-a-proof-of-reserves-on-a-parachain-without-leaking-information/2075 but the TEE approach seems much simpler |
to get started, test your OCW against this encointer node, which includes the teerex pallet |
Motivation
It is not always practical to run or trust an encointer collator api endpoint. Sometimes, we just want to know the reputation of a specific encointer account.
A TEE oracle could fill this gap.
Potential Integrations
Idea
a. "get reputation for account XYZ" callable by anyone (not a proof of unique personhood without commitment)
b. "get reputation badge for myself. here's my nostr pubkey", authentication needed with one or several encointer accounts
For nostr, the oracle has its own nostr profile which is the issuer of the badges (see NIP-58. the oracle can send nostr events and issues badges like "has a uniqueness reputation of 3/5 on the encointer network". Such badges have a TTL (see NIP-40) after which more recent reputation has to be presented to obtain a new badge
Requirements
Implementation Option 1
Onchain: new pallet
encointer_reputation_commitments
In order to get reputation linkability, we need an immutable record of commitments to purposes. While each purpose could maintain such registry for themselves, this is not possible for every purpose. Nostr. for example has no way of referring to a common consensus on commitments. Subsocial could, as they run their own parachain, but it would take integration effort which may slow down adoption. So the Encointer mainnet could provide such a simple registry:
where
commitment
is the hash of the requesting purpose account (i.e. nostr pubkey) and a random salt which should be unique per call and must later be provided to request a badgeOCW:
The text was updated successfully, but these errors were encountered: