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

feat: support EIP-7524 PLUME signatures #2047

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

chiefbiiko
Copy link

Explanation

This PR adds a new eth_getPlumeSignature RPC method that implements a novel ECDSA nullifier scheme as described in EIP-7524.

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.

Screenshot

plume_rabby

Manual Testing Steps

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

await window.ethereum.request({
  "method": "eth_requestAccounts",
  "params": []
});

accountAddress = (await window.ethereum.request({
  "method": "eth_accounts",
  "params": []
}))[0];

await window.ethereum.request({
  "method": "eth_getPlumeSignature",
  "params": [
    "this is a test message",
    accountAddress
  ]
});

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

Needs RabbyHub/eth-simple-keyring#3

Copy link

New dependencies detected. Learn more about Socket for GitHub ↗︎

Package New capabilities Transitives Size Publisher
npm/@colors/colors@1.5.0 environment 0 39.5 kB dabh
npm/amcl-js@3.1.0 Transitive: environment, filesystem +14 3.35 MB
npm/js-sha256@0.10.1 None 0 38.9 kB emn178
npm/plume-sig@2.0.3 Transitive: environment, filesystem +17 3.5 MB

View full report↗︎

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant