Skip to content

[Design] Prove link between Uniqueness Proof and Session Proof #747

@paolodamico

Description

@paolodamico

Motivation

One interesting approach in general of World ID is to prove to an RP you only have one account with them. This can be accomplished by the RP setting an epoch and requesting a Uniqueness Proof per epoch (e.g. a calendar year). Without epochs, then a user would never be able to "rotate" their "verification" in an RP account (because the user cannot prove the previously verified RP account and hence the RP cannot "unverify" the old account, if the RP doesn't unverify then it leads to double claims.

Now, assuming an RP has this epoch scheme, the RP may want to ensure continuity of the same World ID from one epoch to another. For example, let's say I first verify my RP-Account belongs to a human (through the PoH credential) at epoch $t$. At epoch $t+1$, I generate a new Uniqueness Proof which is completely unlikable to the verification on epoch $t$. This particular RP needs to ensure that at epoch $t+1$ I haven't sold/transferred/traded my account with someone else, so wants to ensure that when I verify my account at epoch $t+1$, I prove I am still the same World ID holder.

Design Space

One approach to solve this is that at epoch $t+1$ I provide a Session Proof (with action = epoch $t$) such that the RP establishes continuity, and I provide a Uniqueness Proof for epoch $t+1$ to maintain my verification active. The proofs however would need to have some mechanism to privately prove they're coming from the same World ID.

This is not the only approach to solve this. Open design space.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions