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

Email wallet ceremony #100

4 changes: 2 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Failing to follow the above instructions, will result in the CI checks failing.
"template": {
"source": "<HTTPS_URL_OF_THE_CIRCOM_FILE>",
"commitHash": "<TEMPLATE_COMMIT_HASH>",
"paramConfiguration": ["<CIRCUIT_INSTANCE_PARAMETERS_ARRAY>"]
"paramsConfiguration": ["<CIRCUIT_INSTANCE_PARAMETERS_ARRAY>"]
},
"verification": {
"cfOrVm": "<DESIRED_VERIFICATION_MECHANISM (VM/CF)>"
Expand Down Expand Up @@ -98,7 +98,7 @@ Failing to follow the above instructions, will result in the CI checks failing.
- template - an object made of:
- source - a string with the URL of the circom file
- commitHash - a string with the commit id (needs to be a GitHub commit hash)
- paramConfiguration - an array of numbers with the parameters of the circuit template
- paramsConfiguration - an array of numbers with the parameters of the circuit template
- verification - an object detailing how the circuit's zKeys will be verified
- cfOrVm - a string with either "CF" or "VM". If "VM" the following must be added:
- vmConfigurationType - a string with the VM type - options:
Expand Down
4 changes: 2 additions & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ Failing to follow the above instructions, will result in the CI checks failing.
"template": {
"source": "<HTTPS_URL_OF_THE_CIRCOM_FILE>",
"commitHash": "<TEMPLATE_COMMIT_HASH>",
"paramConfiguration": [6,8,3,2]
"paramsConfiguration": [6,8,3,2]
},
"verification": {
"cfOrVm": "CF"
Expand Down Expand Up @@ -91,7 +91,7 @@ Failing to follow the above instructions, will result in the CI checks failing.
- template - an object made of:
- source - a string with the URL of the circom file
- commitHash - a string with the commit id (needs to be a GitHub commit hash)
- paramConfiguration - an array of numbers with the parameters of the circuit template
- paramsConfiguration - an array of numbers with the parameters of the circuit template
- verification - an object detailing how the circuit's zKeys will be verified
- cfOrVm - a string with either "CF" or "VM". If "VM" the following must be added:
- vmConfigurationType - a string with the VM type - options:
Expand Down
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2023 Ethereum Foundation

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
18 changes: 7 additions & 11 deletions ceremonies/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ To request a new ceremony to be setup, you will need to submit a PR with a folde
- fill the *p0tionConfig.json* file accordingly:
+ The title of the ceremony will end up being its prefix. Prefixes are simply the title all lowercase, with dashes (*-*) instead of whitespace. For example, given a title of *Example Ceremony*, the prefix will be *example-ceremony*.
+ Fill the rest of the fields with the desired data, ensuring that each circuit details are correct, and that you chose the required Verification method.
+ In the artifacts fields, please add the correct storage path and bucket name - note that we require both the *r1cs* and the *wasm* files.
+ In the artifacts fields, please add the correct storage path on AWS (the URL to the artifacts) - note that we require both the *r1cs* and the *wasm* files.
+ *Note* that you can use [p0tion phase2cli](https://github.com/privacy-scaling-explorations/p0tion) as follows to verify that the config file is correct:
* `phase2cli validate --template $PATH_TO_THE_TEMPLATE`
- create a directory inside *./ceremonies* and name it with the *prefix* (detailed in the bullet point above).
Expand Down Expand Up @@ -65,16 +65,14 @@ The script will upload your artifacts to a S3 bucket of your choice (must be own
"template": {
"source": "<HTTPS_URL_OF_THE_CIRCOM_FILE>",
"commitHash": "<TEMPLATE_COMMIT_HASH>",
"paramConfiguration": ["<CIRCUIT_INSTANCE_PARAMETERS_ARRAY>"]
"paramsConfiguration": ["<CIRCUIT_INSTANCE_PARAMETERS_ARRAY>"]
},
"verification": {
"cfOrVm": "<DESIRED_VERIFICATION_MECHANISM (VM/CF)>"
},
"artifacts": {
"bucket": "<THE_BUCKET_NAME>",
"region": "<THE_AWS_REGION_WHERE_THE_BUCKET_LIVES>",
"r1csLocalFilePath": "<PATH_TO_THE_CIRCUIT_R1CS>",
"wasmLocalFilePath": "<PATH_TO_THE_CIRCUIT_WASM>"
"r1csStoragePath": "<URL_TO_THE_CIRCUIT_R1CS>",
"r1csStoragePath": "<URL_TO_THE_CIRCUIT_WASM>"
},
"name": "<CIRCUIT_NAME>",
"dynamicThreshold": "<THE_DYNAMIC_THRESHOLD (NUMBER)>",
Expand All @@ -101,7 +99,7 @@ The script will upload your artifacts to a S3 bucket of your choice (must be own
- template - an object made of:
- source - a string with the URL of the circom file
- commitHash - a string with the commit id (needs to be a GitHub commit hash)
- paramConfiguration - an array of numbers with the parameters of the circuit template
- paramsConfiguration - an array of numbers with the parameters of the circuit template
- verification - an object detailing how the circuit's zKeys will be verified
- cfOrVm - a string with either "CF" or "VM". If "VM" the following must be added:
- vmConfigurationType - a string with the VM type - options:
Expand All @@ -116,10 +114,8 @@ The script will upload your artifacts to a S3 bucket of your choice (must be own
* "st1"
* "sc1"
- artifacts - an object with the storage path to the r1cs and wasm on s3
- bucket - a string with the bucket name
- region - the AWS region where the bucket live
- r1csStoragePath - a string with the r1cs storage path e.g. "test-ceremony/circuit.r1cs"
- wasmStoragePath - a string with the wasm storage path e.g. "test-ceremony/circuit.wasm"
- r1csStoragePath - a string with the r1cs storage path on S3 e.g. "https://test-ceremony.region.amazonaws.com/circuit.r1cs"
- wasmStoragePath - a string with the wasm storage path on s3 e.g. "https://test-ceremony.region.amazonaws.com/circuit.wasm"
- name - a string with the circuit name
- dynamicThreshold - if selected dynamic timeout please enter the threshold here as a number
- fixedTimeWindow - if selected fixed timeout please enter the time window here as a number
Expand Down
142 changes: 142 additions & 0 deletions ceremonies/email-wallet-trusted-setup-ceremony/p0tionConfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
{
"title": "Email Wallet Trusted Setup Ceremony",
"description": "This is a trusted setup ceremony for the Email Wallet protocol",
"startDate": "2023-11-12T00:00:00",
"endDate": "2023-11-14T00:00:00",
"timeoutMechanismType": "FIXED",
"penalty": 3,
"circuits": [
{
"description": "Email Wallet: Account Creation circuit",
"compiler": {
"version": "2.1.5",
"commitHash": "127414e9088cc017a357233f30f3fd7d91a8906c"
},
"template": {
"source": "https://github.com/zkemail/email-wallet",
"commitHash": "1871987e282bc0ea57d5436066730d5efd4ec9a3",
"paramsConfiguration": []
},
"verification": {
"cfOrVm": "VM"
},
"artifacts": {
"r1csStoragePath": "https://storage.googleapis.com/email-wallet-zkeys/account_creation.r1cs",
"wasmStoragePath": "https://storage.googleapis.com/email-wallet-zkeys/account_creation.wasm"
},
"name": "EmailWallet-Account-Creation",
"fixedTimeWindow": 3,
"sequencePosition": 1
},
{
"description": "Email Wallet: Account Init circuit",
"compiler": {
"version": "2.1.5",
"commitHash": "127414e9088cc017a357233f30f3fd7d91a8906c"
},
"template": {
"source": "https://github.com/zkemail/email-wallet",
"commitHash": "1871987e282bc0ea57d5436066730d5efd4ec9a3",
"paramsConfiguration": [121, 17, 1024]
},
"verification": {
"cfOrVm": "VM"
},
"artifacts": {
"r1csStoragePath": "https://storage.googleapis.com/email-wallet-zkeys/account_init.r1cs",
"wasmStoragePath": "https://storage.googleapis.com/email-wallet-zkeys/account_init.wasm"
},
"name": "EmailWallet-Account-Init",
"fixedTimeWindow": 3,
"sequencePosition": 1
},
{
"description": "Email Wallet: Email Sender circuit",
"compiler": {
"version": "2.1.5",
"commitHash": "127414e9088cc017a357233f30f3fd7d91a8906c"
},
"template": {
"source": "https://github.com/zkemail/email-wallet",
"commitHash": "1871987e282bc0ea57d5436066730d5efd4ec9a3",
"paramsConfiguration": [121, 17, 1024, 512]
},
"verification": {
"cfOrVm": "VM"
},
"artifacts": {
"r1csStoragePath": "https://storage.googleapis.com/email-wallet-zkeys/email_sender.r1cs",
"wasmStoragePath": "https://storage.googleapis.com/email-wallet-zkeys/email_sender.wasm"
},
"name": "EmailWallet-Email-Sender",
"fixedTimeWindow": 3,
"sequencePosition": 1
},
{
"description": "Email Wallet: Claim circuit",
"compiler": {
"version": "2.1.5",
"commitHash": "127414e9088cc017a357233f30f3fd7d91a8906c"
},
"template": {
"source": "https://github.com/zkemail/email-wallet",
"commitHash": "1871987e282bc0ea57d5436066730d5efd4ec9a3",
"paramsConfiguration": []
},
"verification": {
"cfOrVm": "VM"
},
"artifacts": {
"r1csStoragePath": "https://storage.googleapis.com/email-wallet-zkeys/claim.r1cs",
"wasmStoragePath": "https://storage.googleapis.com/email-wallet-zkeys/claim.wasm"
},
"name": "EmailWallet-Claim",
"fixedTimeWindow": 3,
"sequencePosition": 1
},
{
"description": "Email Wallet: Account Transport circuit",
"compiler": {
"version": "2.1.5",
"commitHash": "127414e9088cc017a357233f30f3fd7d91a8906c"
},
"template": {
"source": "https://github.com/zkemail/email-wallet",
"commitHash": "1871987e282bc0ea57d5436066730d5efd4ec9a3",
"paramsConfiguration": [121, 17, 1024]
},
"verification": {
"cfOrVm": "VM"
},
"artifacts": {
"r1csStoragePath": "https://storage.googleapis.com/email-wallet-zkeys/account_transport.r1cs",
"wasmStoragePath": "https://storage.googleapis.com/email-wallet-zkeys/account_transport.wasm"
},
"name": "EmailWallet-Account-Transport",
"fixedTimeWindow": 3,
"sequencePosition": 1
},
{
"description": "Email Wallet: Announcement circuit",
"compiler": {
"version": "2.1.5",
"commitHash": "127414e9088cc017a357233f30f3fd7d91a8906c"
},
"template": {
"source": "https://github.com/zkemail/email-wallet",
"commitHash": "1871987e282bc0ea57d5436066730d5efd4ec9a3",
"paramsConfiguration": []
},
"verification": {
"cfOrVm": "VM"
},
"artifacts": {
"r1csStoragePath": "https://storage.googleapis.com/email-wallet-zkeys/announcement.r1cs",
"wasmStoragePath": "https://storage.googleapis.com/email-wallet-zkeys/announcement.wasm"
},
"name": "EmailWallet-Announcement",
"fixedTimeWindow": 3,
"sequencePosition": 1
}
]
}
Loading
Loading