Skip to content
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

Add ERC: PLUME Signature in Wallets #242

Merged
merged 22 commits into from
Apr 17, 2024

Conversation

Divide-By-0
Copy link
Contributor

ERC 7524

Previously at #37 (review) but that got closed
Ethmagicians Discussion: https://ethereum-magicians.org/t/erc-7524-plume-signature-in-wallets/15902

This PR fixes all of @SamWilsn's requested changes.


When opening a pull request to submit a new EIP, please use the suggested template: https://github.com/ethereum/EIPs/blob/master/eip-template.md

We have a GitHub bot that automatically merges some PRs. It will merge yours immediately if certain criteria are met:

The PR edits only existing draft PRs.
The build passes.
Your GitHub username or email address is listed in the 'author' header of all affected PRs, inside .
If matching on email address, the email address is the one publicly listed on your GitHub profile.

@eip-review-bot
Copy link
Collaborator

eip-review-bot commented Feb 7, 2024

✅ All reviewers have approved.

@eip-review-bot eip-review-bot changed the title Add ERC: PLUME Signature in Wallets #37 Add ERC: PLUME Signature in Wallets Feb 7, 2024
Copy link

github-actions bot commented Feb 7, 2024

The commit 2d07dd1 (as a parent of 05663b5) contains errors.
Please inspect the Run Summary for details.

@github-actions github-actions bot added the w-ci label Feb 7, 2024
@github-actions github-actions bot removed the w-ci label Feb 7, 2024
@Divide-By-0 Divide-By-0 changed the title Add ERC: PLUME Signature in Wallets Add ERC-7524: PLUME Signature in Wallets Feb 24, 2024
@eip-review-bot eip-review-bot changed the title Add ERC-7524: PLUME Signature in Wallets Add ERC: PLUME Signature in Wallets Feb 24, 2024
@Divide-By-0
Copy link
Contributor Author

Divide-By-0 commented Feb 24, 2024

Bumping @SamWilsn on review! Sam already left a lot of comments on the earlier version of this PR, and I fixed all of them.

Copy link
Contributor

@SamWilsn SamWilsn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Just try to tighten up that abstract while you're in draft.

Comment on lines +15 to +17
ZK-SNARKs have enabled ideation for new identity applications based on anonymous proof-of-ownership. One of the primary technologies that would enable the jump from existing apps to systems that require anonymous uniqueness is the development of verifiably deterministic signatures. Because Ethereum is based on ECDSA, there is no way right now for someone to verify that a signature is generated deterministically, even with ‘deterministic’ ECDSA signatures: a ZK-SNARK proof would need someone’s private key to do so, and some hardware wallets do not even allow viewing of a private key. Broadly, we don’t want to export/copy-paste the private key into a SNARK to be an intended user behavior, and most hardware wallets will not be able to run SNARK arithmetization inside a secure enclave for existing schemes (and nor do we want to standardize an entire proof system inside a wallet right now when they emerge and evolve almost every year). Thus we are left to select a new algorithm that offers us verifiable, deterministic nullifiers that can be SNARKed outside the enclave.

One specific example of how such a signature can lead to unique pseudonymity is that we prove it was generated correctly in a ZK-SNARK that only reveals publicly the hash(signature), and the SNARK additionally proves some property the public key has (i.e. is in some anonymity set, has executed some set of actions on chain, etc). This proof is the only thing that is ever seen by other people, and so the hash(signature) can be used as a “nullifier”: a public commitment to a specific anonymous account, to forbid actions like double spending, or allow a consistent identity between anonymous actions. We aim to standardize a new verifiably deterministic signature algorithm that both uniquely identifies the keypair, and keeps the account identity secret, where verification does not require a secret key. The specific signature function we found (and will discuss for the rest of the post) is $hash(message, public\ key) ^ {secret\ key}$.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could probably shorten the abstract a bit. Keep it brief and technical, and move the relevant bits into motivation.

@eip-review-bot eip-review-bot enabled auto-merge (squash) April 17, 2024 21:29
Copy link
Collaborator

@eip-review-bot eip-review-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All Reviewers Have Approved; Performing Automatic Merge...

@eip-review-bot eip-review-bot merged commit 7b6abd6 into ethereum:master Apr 17, 2024
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants