Skip to content

Commit

Permalink
docs: update trusted setup docs and fix links
Browse files Browse the repository at this point in the history
  • Loading branch information
ctrlc03 committed Sep 2, 2024
1 parent 1c34f5b commit 6ea4c7a
Show file tree
Hide file tree
Showing 9 changed files with 22 additions and 16 deletions.
2 changes: 1 addition & 1 deletion .github/scripts/downloadZkeys.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import path from "path";
const ZKEY_PATH = path.resolve(process.argv.slice(3)[0]);
const ZKEYS_URLS = {
test: "https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v2.0.0/maci_artifacts_10-2-1-2_test.tar.gz",
prod: "https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.2.0/maci_artifacts_6-9-2-3_prod.tar.gz",
prod: "https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v2.0.0/maci_artifacts_14-9-2-3_prod.tar.gz",
};
const ARCHIVE_NAME = path.resolve(ZKEY_PATH, "maci_keys.tar.gz");

Expand Down
2 changes: 1 addition & 1 deletion apps/website/blog/2024-02-28-maci-v1.2.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ As part of configuring a MACI deployment, the coordinator sets a user signup gat

With the addition of this new gatekeeper, EAS (and soon™ [Hats Protocol](https://www.hatsprotocol.xyz/), MACI instances could be configured to e.g. only allow Ethereum accounts with a trusted EAS attestation or those designated with a specific role by the Hats Protocol. These modules open up new avenues for access control strategies.

We expect to continue to expand our [gatekeeper capabilities](https://github.com/privacy-scaling-explorations/maci/tree/dev/contracts/contracts/gatekeepers) and welcome the community to come up with new and innovative ways to grant access to MACI's rounds, helping make MACI more customizable and sybil-resilient. The Hats Protocol gatekeeper is [currently in progress](https://github.com/privacy-scaling-explorations/maci/pull/1191) and will be released soon™ (in v1.2.1).
We expect to continue to expand our [gatekeeper capabilities](https://github.com/privacy-scaling-explorations/maci/tree/dev/packages/contracts/contracts/gatekeepers) and welcome the community to come up with new and innovative ways to grant access to MACI's rounds, helping make MACI more customizable and sybil-resilient. The Hats Protocol gatekeeper is [currently in progress](https://github.com/privacy-scaling-explorations/maci/pull/1191) and will be released soon™ (in v1.2.1).

### Documentation Website

Expand Down
2 changes: 1 addition & 1 deletion apps/website/blog/2024-05-08-ethdam.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ ECDH(coordinatorPrivateKey, randomKeyPair.publicKey)

The `randomKeyPair.publicKey` that was sent as `{x: 1, y: 1}` was eventually passed by the coordinator to a zk-SNARK circuit to try and decrypt the corresponding message and perform further processing.

When passed to the circuit, the code would perform the ECDH operation by performing a scalar multiplication between the public and the coordinator private key. This happens inside the [`MessageToCommand`](https://github.com/privacy-scaling-explorations/maci/blob/dev/circuits/circom/utils/messageToCommand.circom#L45) template, which calls the [`ECDH` template](https://github.com/privacy-scaling-explorations/zk-kit/blob/main/packages/circuits/circom/ecdh.circom). Here, there is a call to [`escalarMulAny`](https://github.com/privacy-scaling-explorations/zk-kit/blob/main/packages/circuits/circom/ecdh.circom#L26) which in turns calls [`SegmentMulAny`](https://github.com/iden3/circomlib/blob/master/circuits/escalarmulany.circom#L154), where we encounter the final call to [`Edwards2Montgomery`](https://github.com/iden3/circomlib/blob/master/circuits/escalarmulany.circom#L78) where the error pops up.
When passed to the circuit, the code would perform the ECDH operation by performing a scalar multiplication between the public and the coordinator private key. This happens inside the [`MessageToCommand`](https://github.com/privacy-scaling-explorations/maci/blob/dev/packages/circuits/circom/utils/messageToCommand.circom#L45) template, which calls the [`ECDH` template](https://github.com/privacy-scaling-explorations/zk-kit/blob/main/packages/circuits/circom/ecdh.circom). Here, there is a call to [`escalarMulAny`](https://github.com/privacy-scaling-explorations/zk-kit/blob/main/packages/circuits/circom/ecdh.circom#L26) which in turns calls [`SegmentMulAny`](https://github.com/iden3/circomlib/blob/master/circuits/escalarmulany.circom#L154), where we encounter the final call to [`Edwards2Montgomery`](https://github.com/iden3/circomlib/blob/master/circuits/escalarmulany.circom#L78) where the error pops up.

Looking inside the [`Edwards2Montgomery`](https://github.com/iden3/circomlib/blob/master/circuits/montgomery.circom#L21-L40) template, we can see the operation that is performed on the public key. In short, the point is [converted](https://en.wikipedia.org/wiki/Montgomery_curve#Equivalence_with_twisted_Edwards_curves) from the Twisted Edwards form to Montgomery form, as it allows for cheaper operations inside the circuit (whereas outside it is represented in its original Twisted Edward form).

Expand Down
4 changes: 2 additions & 2 deletions apps/website/blog/2024-06-17-understanding-maci.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ If you’re interested in more of the technical details, check out the MACI docu

## Real-World Applications and Limitations

Imagine a world where funding for public goods, like community projects or open-source software, is decided through fair and transparent voting. This is where MACI shows its true potential. [Quadratic funding](https://qf.pse.dev/quadratic-funding) is already harnessing MACI's capabilities to enhance user privacy and discourage any form of collusion in funding decisions.
Imagine a world where funding for public goods, like community projects or open-source software, is decided through fair and transparent voting. This is where MACI shows its true potential. [Quadratic funding](/docs/use-cases/public-goods-funding/quadratic-funding) is already harnessing MACI's capabilities to enhance user privacy and discourage any form of collusion in funding decisions.

However, like any system, MACI isn't perfect. Its effectiveness hinges on the honesty of the coordinator – the entity or person overseeing the voting process and tallying the results. A dishonest coordinator could pose risks, but thankfully, MACI is designed to minimise even this possibility, maintaining a high level of integrity in the voting process.

Expand All @@ -58,6 +58,6 @@ As we've explored, Minimal Anti-Collusion Infrastructure (MACI) stands as a test

Blockchain technology is continually evolving, and with tools like MACI, it's becoming more accessible and trustworthy. Whether you're a blockchain enthusiast, a developer, or someone just starting to explore this exciting field, MACI represents a significant step forward in creating a more democratic and transparent digital world.

We encourage you to delve deeper into MACI and the broader world of blockchain by reading through our [documentation](https://maci.pse.dev/docs/introduction) and installing MACI. Join us too on our [Discord](https://discord.com/invite/sF5CT5rzrR) to report any bugs or to chat with our team. Your involvement can help shape a future where digital voting is not just secure, but also truly representative of the people's voice.
We encourage you to delve deeper into MACI and the broader world of blockchain by reading through our [documentation](/docs/introduction) and installing MACI. Join us too on our [Discord](https://discord.com/invite/sF5CT5rzrR) to report any bugs or to chat with our team. Your involvement can help shape a future where digital voting is not just secure, but also truly representative of the people's voice.

Together, let's embrace these advancements and contribute to a fairer, more transparent digital voting landscape.
2 changes: 1 addition & 1 deletion apps/website/blog/2024-07-23-q2-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ On the outreach and support side, we also engaged with several communities to ru

The use of a Coordinator Service would greatly simplify the operation requirements when running MACI. To better support communities running MACI polls, whether as a QF round or a simple voting application, the team has prioritised the development of a Coordinator Service that can be used by any Round Operator.

In the last three months we successfully completed the first iteration of a [proof generation service](https://github.com/privacy-scaling-explorations/maci/tree/dev/coordinator), which can be used to more easily finalise MACI polls. Additionally, work on a frontend dashboard has started. This dashboard can be used to more easily deploy contracts in a customisable way via an intuitive user interface.
In the last three months we successfully completed the first iteration of a [proof generation service](https://github.com/privacy-scaling-explorations/maci-platform/tree/main/packages/coordinator), which can be used to more easily finalise MACI polls. Additionally, work on a frontend dashboard has started. This dashboard can be used to more easily deploy contracts in a customisable way via an intuitive user interface.

### ✅ MACI Core Protocol Improvements

Expand Down
2 changes: 1 addition & 1 deletion apps/website/blog/2024-07-30-roadmap-q3.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ The team is doubling down efforts to build a comprehensive voting platform with
- Move application's data storage from Vercel to IPFS
- Support contributing/voting to multiple rounds on the same deployment

Our efforts will include supporting community organisers who want to fork and operate MACI Platform rounds in production. If you're interested in running a round for your community, [please get in touch](https://maci.pse.dev/docs/use-cases/public-goods-funding/quadratic-funding/apply)!
Our efforts will include supporting community organisers who want to fork and operate MACI Platform rounds in production. If you're interested in running a round for your community, [please get in touch](/docs/use-cases/public-goods-funding/quadratic-funding/apply)!

## Coordinator Service

Expand Down
4 changes: 2 additions & 2 deletions apps/website/blog/2024-08-10-maci-v2.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ We have removed some features that were never used in production, namely [Topup]

We highly thank [Chao](https://github.com/chaosma) for his work on these two features over the past years, and look forward to integrating similar features in the future as we come up with new use cases and performance improvements.

On top of that, the [merkle tree-like structure](https://maci.pse.dev/docs/developers-references/smart-contracts/AccQueue) holding the signups has been swapped out for a more efficient incremental merkle tree ([LazyIMT](https://github.com/privacy-scaling-explorations/zk-kit.solidity/tree/main/packages/lazy-imt)). This offers some savings for users signing up, as well as simplifies the steps required to finalise a poll, by merging all leaves together and removing the need to compute the subroots and root of the tree.
On top of that, the [merkle tree-like structure](/docs/developers-references/smart-contracts/AccQueue) holding the signups has been swapped out for a more efficient incremental merkle tree ([LazyIMT](https://github.com/privacy-scaling-explorations/zk-kit.solidity/tree/main/packages/lazy-imt)). This offers some savings for users signing up, as well as simplifies the steps required to finalise a poll, by merging all leaves together and removing the need to compute the subroots and root of the tree.

### Improved contract tasks

Expand All @@ -52,7 +52,7 @@ Custom Gatekeepers are a great way to guard MACI against Sybil attacks, and with

For instance, with Gitcoin Passport as the gatekeeper, the MACI round organiser can set a threshold score and only allow new users with a passport score greater or equal to that threshold. Additionally, with Zupass, we can now gate access to holders of specific event tickets.

We expect to continue to expand our [gatekeeper capabilities](https://github.com/privacy-scaling-explorations/maci/tree/dev/contracts/contracts/gatekeepers) and welcome the community to come up with new and innovative ways to grant access to MACI's rounds, helping make MACI more customizable and sybil-resilient.
We expect to continue to expand our [gatekeeper capabilities](https://github.com/privacy-scaling-explorations/maci/tree/dev/packages/contracts/contracts/gatekeepers) and welcome the community to come up with new and innovative ways to grant access to MACI's rounds, helping make MACI more customizable and sybil-resilient.

## Documentation

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ pnpm build-test-circuits-c -- --out-path $OUT_PATH
pnpm build-test-circuits-wasm -- --out-path $OUT_PATH
```

Please note that the circuits are configured with testing purpose parameters, which means it can only handle a limited amount of messages (up to 25 messages). For more information on the parameters and how to configure them, please refer to the individual circuit documentation within this page. Also, within the [configure-circomkit](https://maci.pse.dev/docs/installation#configure-circomkit) section of the `installation` page, you'll see how you can update the config file with new params.
Please note that the circuits are configured with testing purpose parameters, which means it can only handle a limited amount of messages (up to 25 messages). For more information on the parameters and how to configure them, please refer to the individual circuit documentation within this page. Also, within the [configure-circomkit](/docs/quick-start/installation#configure-circomkit) section of the `installation` page, you'll see how you can update the config file with new params.

To compile a single circuit, you can run:

Expand Down
18 changes: 12 additions & 6 deletions apps/website/versioned_docs/version-v2.x/security/trusted-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,22 @@ For more info on trusted setup ceremonies please refer to p0tion's [docs](https:
## Maci v2.0 Trusted Setup Ceremony (most recent)

:::info
Maci v2.0 Trusted Setup Ceremony is ongoing and the circuits cannot be yet used in production.
Maci v2.0 Trusted Setup Ceremony is now completed and the circuits can be used in production.
:::

To participate in the ceremony please head over to [p0tion's website](https://ceremony.pse.dev/).

This page will be updated once the ceremony is complete.

For this release, we plan to run two ceremonies, one with smaller size circuits (more accessible to contributors) due to smaller batch sizes for proving on chain, and one with larger circuits and large batch sizes for proving. Smaller size artifacts can be used for smaller rounds or for operators that want to run everything on a local computer vs using a beefy server. On the other hand, we plan to use the artifacts with larger batch sizes for large rounds and solely on a server.

### Small Batch Size Ceremony

:::info
To download the artifacts, please run the following command from within MACI monorepo's root directory:

```bash
pnpm download-zkeys:ceremony
```

:::

Here are the **maximum** values supported by these artifacts:

**_ProcessMessages_**
Expand Down Expand Up @@ -79,9 +84,10 @@ Please be advised that you will not be able to use these artifacts with MACI v2.
:::

:::info
You can download all of the artifacts using the following command from maci's monorepo root:
MACI v1.2 artifacts are stored on [Amazon S3](https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.2.0/maci_artifacts_6-9-2-3_prod.tar.gz). Please either download directly, or checkout any of the maci v1.2 tags to access the artifacts using the following commands:

```bash
git checkout v1.2.5
download:ceremony-zkeys
```

Expand Down

0 comments on commit 6ea4c7a

Please sign in to comment.