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

ZK Deterministic Signature RPC method (Plume) #17482

Closed
wants to merge 8 commits into from

Conversation

rrrliu
Copy link

@rrrliu rrrliu commented Jan 30, 2023

Explanation

Adds new eth_getPlumeSignature RPC method that implements a novel ECDSA nullifier scheme.

The eth_getPlumeSignature method takes in two parameters, a message and an address, then generates a deterministic signature (plume) and several other inputs. The plume can be used as a nullifier to prevent double-spending in an anonymity set. This capability unlocks novel on-chain behavior, such as private DAO voting, fair, non-doxxing airdrops, and more.

Screenshots/Screencaps

plume-with-confirm.mov

Before

RPC method did not exist!

After

plume-confirmation-window

Manual Testing Steps

After building and running MetaMask locally, enter this into the browser console

window.ethereum.request({
    method: 'eth_getPlumeSignature',
    params: [
        'this is a message to sign',
        '<YOUR ETHEREUM ADDRESS>'
    ]
})
    .then(data => console.log(data))

A confirmation screen should open up. After clicking confirm, you will see the plume and other signals outputted into the console.

See screen capture above for more details.

Pre-merge author checklist

  • I've clearly explained:
    • What problem this PR is solving
    • How this problem was solved
    • How reviewers can test my changes
  • Sufficient automated test coverage has been added

Pre-merge reviewer checklist

  • Manual testing (e.g. pull and build branch, run in browser, test code being changed)
  • PR is linked to the appropriate GitHub issue
  • IF this PR fixes a bug in the release milestone, add this PR to the release milestone

If further QA is required (e.g. new feature, complex testing steps, large refactor), add the Extension QA Board label.

In this case, a QA Engineer approval will be be required.

@rrrliu rrrliu requested a review from a team as a code owner January 30, 2023 03:53
@rrrliu rrrliu requested a review from danjm January 30, 2023 03:53
@rrrliu rrrliu marked this pull request as draft January 30, 2023 03:53
@github-actions
Copy link
Contributor

github-actions bot commented Jan 30, 2023

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@rrrliu
Copy link
Author

rrrliu commented Jan 30, 2023

I have read the CLA Document and I hereby sign the CLA

@rrrliu rrrliu force-pushed the rrrliu/plume-signature branch from d480a01 to 4a7ca9a Compare March 10, 2023 11:14
@rrrliu rrrliu changed the title [WIP] ZK Deterministic Signature RPC method (Plume) ZK Deterministic Signature RPC method (Plume) Mar 10, 2023
@github-actions
Copy link
Contributor

This PR has been automatically marked as stale because it has not had recent activity in the last 60 days. It will be closed in 14 days. Thank you for your contributions.

@github-actions github-actions bot added the stale issues and PRs marked as stale label Jul 20, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Aug 3, 2023

This PR was closed because there has been no follow up activity in the last 14 days. Thank you for your contributions.

@github-actions github-actions bot closed this Aug 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale issues and PRs marked as stale
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant