@maci-protocol/website 0.0.0-ci.f4bc8a6 → 0.0.0-ci.f4e2c46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -2
- package/blog/2024-02-28-maci-v1.2.0.md +1 -1
- package/blog/2024-08-10-maci-v2.md +1 -1
- package/docusaurus.config.ts +2 -2
- package/package.json +13 -13
- package/src/pages/roadmap.md +39 -80
- package/static/img/circuits/MACI-Circuits.excalidraw +79 -79
- package/static/img/circuits/ecdh.svg +1 -1
- package/static/img/circuits/messageToCommand.svg +1 -1
- package/static/img/circuits/messageValidator.svg +1 -1
- package/static/img/circuits/privToPubkey.svg +1 -1
- package/static/img/circuits/processMessages.svg +1 -1
- package/static/img/circuits/processMessagesInputHasher.svg +1 -1
- package/static/img/circuits/processMessages_2_0.svg +1 -1
- package/static/img/circuits/processOne.svg +1 -1
- package/static/img/circuits/processTopup.svg +1 -1
- package/static/img/circuits/quinBatchLeavesExists.svg +1 -1
- package/static/img/circuits/quinCheckRoot.svg +1 -1
- package/static/img/circuits/quinGeneratePathIndices.svg +1 -1
- package/static/img/circuits/quinSelector.svg +1 -1
- package/static/img/circuits/resultsCommitmentVerifier.svg +1 -1
- package/static/img/circuits/splicer.svg +1 -1
- package/static/img/circuits/tallyInputHasher.svg +1 -1
- package/static/img/circuits/tallyVotes.svg +1 -1
- package/static/img/circuits/verifySignature.svg +1 -1
- package/versioned_docs/version-v0.x/quadratic-vote-tallying-circuit.md +16 -16
- package/versioned_docs/version-v3.x/core-concepts/key-change.md +28 -28
- package/versioned_docs/version-v3.x/core-concepts/maci-keys.md +1 -1
- package/versioned_docs/version-v3.x/core-concepts/poll-types.md +33 -9
- package/versioned_docs/version-v3.x/core-concepts/polls.md +34 -10
- package/versioned_docs/version-v3.x/core-concepts/spec.md +42 -108
- package/versioned_docs/version-v3.x/core-concepts/state-leaf.md +2 -2
- package/versioned_docs/version-v3.x/core-concepts/workflow.md +1 -1
- package/versioned_docs/version-v3.x/guides/compile-circuits.md +36 -20
- package/versioned_docs/version-v3.x/guides/integrating.md +9 -9
- package/versioned_docs/version-v3.x/guides/testing/testing-in-detail.md +2 -2
- package/versioned_docs/version-v3.x/guides/testing/testing-introduction.md +34 -2
- package/versioned_docs/version-v3.x/guides/troubleshooting.md +62 -17
- package/versioned_docs/version-v3.x/quick-start.md +29 -21
- package/versioned_docs/version-v3.x/resources.md +1 -0
- package/versioned_docs/version-v3.x/security/audit.md +2 -2
- package/versioned_docs/version-v3.x/security/trusted-setup.md +35 -35
- package/versioned_docs/version-v3.x/supported-networks/costs.md +725 -0
- package/versioned_docs/version-v3.x/supported-networks/deployed-contracts.md +9 -9
- package/versioned_docs/version-v3.x/supported-networks/supported-networks.md +16 -0
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/MACI.md +7 -7
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/MessageProcessor.md +1 -1
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/Params.md +2 -2
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/Poll.md +8 -8
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/PollFactory.md +1 -1
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/Tally.md +4 -4
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/VkRegistry.md +8 -8
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/joinPoll.md +3 -4
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/processMessages.md +19 -15
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/setup.md +3 -3
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/tallyVotes.md +5 -5
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/utilities.md +9 -9
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/zk-snark-circuits.md +3 -3
package/LICENSE
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
4
|
-
Cory Dickson, Han Jian, Chih-Cheng Liang, and Koh Wei Jie
|
|
3
|
+
Copyright (c) 2025 Ethereum Foundation
|
|
5
4
|
|
|
6
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -106,7 +106,7 @@ For those looking to contribute directly, report bugs, or offer feedback, our [G
|
|
|
106
106
|
|
|
107
107
|
For practical implementation insights, review our docs as well as the [clr.fund](https://github.com/clrfund/monorepo/) and [QF](https://github.com/quadratic-gardens/qfi) repositories as reference implementations. Both are quadratic funding implementations, a mechanism which otherwise is highly susceptible to collusion and bribery. Most notably, clr.fund is already working on integrating MACI v1.2.0, after having used v0.x until now. You can follow their development effort under this [GitHub branch](https://github.com/clrfund/monorepo/tree/feat/maci-v1).
|
|
108
108
|
|
|
109
|
-
For any other questions or feedback, please reach out to us via [PSE's Discord](https://discord.com/invite/sF5CT5rzrR), in our [`#🗳️-maci` channel](https://
|
|
109
|
+
For any other questions or feedback, please reach out to us via [PSE's Discord](https://discord.com/invite/sF5CT5rzrR), in our [`#🗳️-maci` channel](https://discord.com/channels/943612659163602974/1164613809730748507). We're excited to connect and collaborate with you!
|
|
110
110
|
|
|
111
111
|
## References
|
|
112
112
|
|
|
@@ -84,7 +84,7 @@ For those looking to contribute directly, report bugs, or offer feedback, our [G
|
|
|
84
84
|
|
|
85
85
|
For practical implementation insights, review our docs as well as the [clr.fund](https://github.com/clrfund/monorepo/), [Allo Stack with MACI](https://github.com/gitcoinco/MACI_QF), and [maci-platform](https://github.com/privacy-scaling-explorations/maci-platform) repositories as reference implementations. The first two integrations are quadratic funding implementations, a mechanism which otherwise is highly susceptible to collusion and bribery.
|
|
86
86
|
|
|
87
|
-
For any other questions or feedback, please reach out to us via [PSE's Discord](https://discord.com/invite/sF5CT5rzrR), in our [`#🗳️-maci` channel](https://
|
|
87
|
+
For any other questions or feedback, please reach out to us via [PSE's Discord](https://discord.com/invite/sF5CT5rzrR), in our [`#🗳️-maci` channel](https://discord.com/channels/943612659163602974/1164613809730748507). We're excited to connect and collaborate with you!
|
|
88
88
|
|
|
89
89
|
## References
|
|
90
90
|
|
package/docusaurus.config.ts
CHANGED
|
@@ -46,7 +46,7 @@ async function getConfig(): Promise<Config> {
|
|
|
46
46
|
routeBasePath: "docs/",
|
|
47
47
|
sidebarPath: "./sidebars.ts",
|
|
48
48
|
editUrl: ({ versionDocsDirPath, docPath }) =>
|
|
49
|
-
`${GITHUB_URL}/edit/dev/website/${versionDocsDirPath}/${docPath}`,
|
|
49
|
+
`${GITHUB_URL}/edit/dev/apps/website/${versionDocsDirPath}/${docPath}`,
|
|
50
50
|
remarkPlugins: [remarkMath],
|
|
51
51
|
rehypePlugins: [rehypeKatex],
|
|
52
52
|
includeCurrentVersion: false,
|
|
@@ -59,7 +59,7 @@ async function getConfig(): Promise<Config> {
|
|
|
59
59
|
blog: {
|
|
60
60
|
showReadingTime: true,
|
|
61
61
|
|
|
62
|
-
editUrl: ({ blogDirPath, blogPath }) => `${GITHUB_URL}/edit/dev/website/${blogDirPath}/${blogPath}`,
|
|
62
|
+
editUrl: ({ blogDirPath, blogPath }) => `${GITHUB_URL}/edit/dev/apps/website/${blogDirPath}/${blogPath}`,
|
|
63
63
|
remarkPlugins: [remarkMath],
|
|
64
64
|
rehypePlugins: [rehypeKatex],
|
|
65
65
|
onUntruncatedBlogPosts: "ignore",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maci-protocol/website",
|
|
3
|
-
"version": "0.0.0-ci.
|
|
3
|
+
"version": "0.0.0-ci.f4e2c46",
|
|
4
4
|
"private": false,
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -21,11 +21,11 @@
|
|
|
21
21
|
"types": "tsc -p tsconfig.json --noEmit"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@docusaurus/core": "^3.
|
|
25
|
-
"@docusaurus/preset-classic": "^3.
|
|
26
|
-
"@docusaurus/theme-classic": "^3.
|
|
27
|
-
"@docusaurus/theme-common": "^3.
|
|
28
|
-
"@easyops-cn/docusaurus-search-local": "^0.
|
|
24
|
+
"@docusaurus/core": "^3.8.1",
|
|
25
|
+
"@docusaurus/preset-classic": "^3.8.1",
|
|
26
|
+
"@docusaurus/theme-classic": "^3.8.1",
|
|
27
|
+
"@docusaurus/theme-common": "^3.8.1",
|
|
28
|
+
"@easyops-cn/docusaurus-search-local": "^0.50.0",
|
|
29
29
|
"@mdx-js/react": "^3.1.0",
|
|
30
30
|
"clsx": "^2.1.1",
|
|
31
31
|
"docusaurus-plugin-image-zoom": "^3.0.1",
|
|
@@ -38,13 +38,13 @@
|
|
|
38
38
|
"remark-math": "^6.0.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@docusaurus/module-type-aliases": "^3.
|
|
42
|
-
"@docusaurus/tsconfig": "^3.
|
|
43
|
-
"@docusaurus/types": "^3.
|
|
44
|
-
"@types/node": "^22.
|
|
45
|
-
"@types/react": "^19.1.
|
|
41
|
+
"@docusaurus/module-type-aliases": "^3.8.1",
|
|
42
|
+
"@docusaurus/tsconfig": "^3.8.1",
|
|
43
|
+
"@docusaurus/types": "^3.8.1",
|
|
44
|
+
"@types/node": "^22.15.17",
|
|
45
|
+
"@types/react": "^19.1.4",
|
|
46
46
|
"ts-node": "^10.9.2",
|
|
47
|
-
"typescript": "^5.8.
|
|
47
|
+
"typescript": "^5.8.3"
|
|
48
48
|
},
|
|
49
49
|
"browserslist": {
|
|
50
50
|
"production": [
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
"engines": {
|
|
62
62
|
"node": ">=18.0"
|
|
63
63
|
},
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "cc33cae35b8c11371af766d221e2e94d0348c34c"
|
|
65
65
|
}
|
package/src/pages/roadmap.md
CHANGED
|
@@ -8,14 +8,14 @@ description: An outline of the 2024 MACI team & product roadmap
|
|
|
8
8
|
_This public roadmap is part of our core team's efforts to make our work more accessible and to foster more collaboration from our open source community. We plan to re-assess & iterate on our roadmap over time, and will update this document when we do._
|
|
9
9
|
|
|
10
10
|
:::info
|
|
11
|
-
This document aims to outline the
|
|
11
|
+
This document aims to outline the 2025 MACI roadmap. Our roadmap is under constant discussion and evolution (e.g. see our [high level 2025 roadmap](/blog/2025-roadmap) updates) but we try our best to maintain this page to provide a high-level overview. Please join the conversation in our [discord server](https://discord.com/invite/sF5CT5rzrR) if you have feedback!
|
|
12
12
|
|
|
13
|
-
**Last updated:
|
|
13
|
+
**Last updated: 2025-04-23**
|
|
14
14
|
:::
|
|
15
15
|
|
|
16
16
|
## Team description
|
|
17
17
|
|
|
18
|
-
The MACI core team is a small collaborative engineering team building various projects within [Privacy & Scaling Explorations (PSE)](https://pse.dev/). Our sustained focus is on MACI: an on-chain voting protocol that provides greatly increased collusion resistance & privacy. We also allocate a
|
|
18
|
+
The MACI core team is a small collaborative engineering team building various projects within [Privacy & Scaling Explorations (PSE)](https://pse.dev/). Our sustained focus is on MACI: an on-chain voting protocol that provides greatly increased collusion resistance & privacy. We also allocate a portion of our time to support the practical adoption of this technology by supporting community leaders to run democratic governance and public funding initiatives, like Quadratic Voting (QV), Quadratic Funding (QF), and Retroactive Public Goods Funding (RPGF) grant rounds.
|
|
19
19
|
|
|
20
20
|
## MACI mission & vision
|
|
21
21
|
|
|
@@ -29,8 +29,8 @@ Short term, our vision is to empower developers to build with MACI to create col
|
|
|
29
29
|
|
|
30
30
|
1. ~~2021: MACI integrated by an ecosystem project~~ (✅, [clr.fund](https://github.com/clrfund/monorepo/))
|
|
31
31
|
2. ~~2023: MACI integrated by a PSE project~~ (✅, [QF](https://github.com/privacy-scaling-explorations/qf))
|
|
32
|
-
3. 2024: MACI integrated by an additional external project
|
|
33
|
-
4. 2025: MACI used by multiple DAOs for governance applications
|
|
32
|
+
3. ~~2024: MACI integrated by an additional external project~~ (✅, [PriVote](https://github.com/PriVote-Project), [Gitcoin](https://github.com/gitcoinco/MACI_QF))
|
|
33
|
+
4. 2025: MACI used by multiple DAOs for governance applications
|
|
34
34
|
5. 2028: MACI used in smaller municipal elections (counties, provinces, etc)
|
|
35
35
|
6. 2030: MACI used in national elections
|
|
36
36
|
|
|
@@ -38,110 +38,69 @@ Short term, our vision is to empower developers to build with MACI to create col
|
|
|
38
38
|
|
|
39
39
|
1. ~~2021: release MACI v1.0~~ (✅)
|
|
40
40
|
2. ~~2023: build technical feasibility for 10K concurrent voters on the platform~~ (✅)
|
|
41
|
-
3. 2024
|
|
42
|
-
4. 2026: build technical feasibility for 100K concurrent voters on the platform
|
|
43
|
-
5. 2028: build technical feasibility for 1M concurrent voters on the platform
|
|
41
|
+
3. 2024:
|
|
44
42
|
|
|
45
|
-
|
|
43
|
+
- ~~Q1: release MACI v1.2, with revamped documentation & educational resource~~ (✅)
|
|
44
|
+
- ~~Q3: release MACI v2.0, with cleaner code and improved UX~~ (✅)
|
|
46
45
|
|
|
47
|
-
|
|
46
|
+
4. 2025: release MACI v3.0, with new features for a more scalable and flexible platform
|
|
47
|
+
5. 2026: build technical feasibility for 100K concurrent voters on the platform
|
|
48
|
+
6. 2028: build technical feasibility for 1M concurrent voters on the platform
|
|
48
49
|
|
|
49
|
-
|
|
50
|
+
# 2025 workstreams
|
|
50
51
|
|
|
51
|
-
|
|
52
|
+
In 2025, we are focusing on several initiatives to support the practical adoption of MACI.
|
|
52
53
|
|
|
53
|
-
|
|
54
|
+
## 1) MACI v3.0
|
|
54
55
|
|
|
55
|
-
|
|
56
|
+
This new version comes with features that have been requested in the past, such as polls being more customisable, in terms of voice credits assigned to voters, and gatekeeping mechanisms.
|
|
56
57
|
|
|
57
|
-
|
|
58
|
+
At a high level, the new features/improvements are:
|
|
58
59
|
|
|
59
|
-
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
- Improve/create documentation for developer onboarding & education
|
|
64
|
-
- Revamp documentation stack (via Docusaurus) with versioning & additional resources
|
|
65
|
-
- Voter & coordinator guides to understand full poll lifecycle
|
|
66
|
-
- Build app templates & tutorials that can serve as reference implementations
|
|
60
|
+
- Custom voice credits per poll
|
|
61
|
+
- Custom gatekeeping per poll
|
|
62
|
+
- Replacement of vote merkle trees for more efficient hash-chains
|
|
63
|
+
- Offchain voting via MACI's relayer service
|
|
67
64
|
|
|
68
|
-
|
|
65
|
+
## 2) Coordinator Service
|
|
69
66
|
|
|
70
|
-
|
|
71
|
-
- [MACI development team sprint board](https://github.com/orgs/privacy-scaling-explorations/projects/40)
|
|
72
|
-
- [MACI v1.1.1 refactor milestone](https://github.com/privacy-scaling-explorations/maci/milestone/5)
|
|
67
|
+
The coordinator service is a service to automate MACI coordinator functionality. This includes:
|
|
73
68
|
|
|
74
|
-
|
|
69
|
+
- Contract deployment
|
|
70
|
+
- Subgraph deploying
|
|
71
|
+
- Proof generation
|
|
72
|
+
- Proof and results submission
|
|
75
73
|
|
|
76
|
-
|
|
74
|
+
This service exposes a REST API, as well as some Websocket endpoints (for proof generation only). Our goal is to release an efficient and easy to use service that can be used by any application that builds atop of MACI.
|
|
77
75
|
|
|
78
|
-
|
|
76
|
+
## 3) Integration with DAO's tooling provider
|
|
79
77
|
|
|
80
|
-
|
|
78
|
+
As an effort to support DAO governance, and help solve their issues with bribery and collusion, MACI is focusing on integrating with DAO's tooling providers.
|
|
81
79
|
|
|
82
|
-
|
|
80
|
+
To start with, MACI is integrating with [Aragon](https://aragon.org/) by building a voting [plugin](https://github.com/privacy-scaling-explorations/maci-voting-plugin).
|
|
83
81
|
|
|
84
|
-
|
|
82
|
+
In the future, we plan to continue working with other partners such as [Agora](https://www.agora.xyz/), and help them offer DAOs secure and private voting.
|
|
85
83
|
|
|
86
|
-
|
|
87
|
-
- Support MACI integrations (starting with [clr.fund](http://clr.fund/) v1.x integration)
|
|
88
|
-
- Revamp GitHub repo maintenance ([MACI GH processes](https://github.com/privacy-scaling-explorations/maci/issues/757))
|
|
89
|
-
- Establish & respond to public channels ([Discord](https://discord.com/invite/sF5CT5rzrR), [Twitter](https://twitter.com/zkMACI))
|
|
90
|
-
- Proactively engage with the ecosystem to identify collaboration opportunities (conference talks, hackathon bounties, social media)
|
|
91
|
-
- Update our development processes to quickly react to user needs & input
|
|
84
|
+
## 4) Coordinator decentralisation
|
|
92
85
|
|
|
93
|
-
|
|
86
|
+
It's no secret that one of MACI long standing issues has having a centralised coordinator. They are able to see all of the votes in cleartext, which allows them to collude with bribers themselves, as well as voters. As we look to tackle use cases such as DAO governance where large quantities of money are involved in proposals, we need to ensure that collusion between the coordinator and voters/bribers is reduced. This can be accomplished in several ways:
|
|
94
87
|
|
|
95
|
-
|
|
88
|
+
- Use Multi Party Computation (MPC)
|
|
89
|
+
- Use Homomorphic Encryption (HE)
|
|
90
|
+
- Use a Trusted Execution Environment (TEE)
|
|
96
91
|
|
|
97
|
-
We
|
|
98
|
-
|
|
99
|
-
[Read more about our QF initiatives here](https://qf.pse.dev/about).
|
|
100
|
-
|
|
101
|
-
### 2024 goal
|
|
102
|
-
|
|
103
|
-
- Help run 12 QF/QV rounds
|
|
104
|
-
|
|
105
|
-
### Initiatives within this workstream:
|
|
106
|
-
|
|
107
|
-
- Build an evaluation framework of QF rounds, to increase our sophistication around how we measure success
|
|
108
|
-
- Landscape analysis of QF & capital-allocation projects to better understand how our efforts fit in within the broader ecosystem
|
|
109
|
-
- Update & expand our [QF website](https://qf.pse.dev/), with public launch to generate inbound interest
|
|
110
|
-
- Explore community collaboration opportunities (running QF rounds)
|
|
111
|
-
- Exploring project collaboration opportunities (supporting MACI/QF integrations)
|
|
112
|
-
|
|
113
|
-
**References**
|
|
114
|
-
|
|
115
|
-
- [GitHub](https://github.com/privacy-scaling-explorations/qf)
|
|
116
|
-
- [Website](https://qf.pse.dev/)
|
|
92
|
+
We plan to research the best approach and start the implementation within the year.
|
|
117
93
|
|
|
118
94
|
## Future R&D
|
|
119
95
|
|
|
120
96
|
While not prioritized as an upcoming workstream, we think it’s worth calling out important areas of research & development that we’re excited to work on in the future:
|
|
121
97
|
|
|
122
|
-
### MACI Coordinator Service
|
|
123
|
-
|
|
124
|
-
- The primary responsibility of the Coordinator Service will be to:
|
|
125
|
-
- offload and automate the tasks performed by the human coordinator
|
|
126
|
-
- minimize proving time by parallelizing SNARK proof generation and making MACI easier to adopt
|
|
127
|
-
- [GitHub repo](https://github.com/privacy-scaling-explorations/maci-coordinator)
|
|
128
|
-
|
|
129
|
-
### QF stack
|
|
130
|
-
|
|
131
|
-
- To serve as a reference implementation on how to integrate MACI as well as support the practical adoption of this community-funding technology.
|
|
132
|
-
- Improvements
|
|
133
|
-
- Support QF (as of now only supports QV functionality)
|
|
134
|
-
- Make it easier for operators to run rounds
|
|
135
|
-
- Make it easier for end users to use
|
|
136
|
-
- [GitHub repo](https://github.com/privacy-scaling-explorations/qf)
|
|
137
|
-
|
|
138
98
|
### MACI improvements
|
|
139
99
|
|
|
140
|
-
- Unconditional Voter Privacy (e.g. [ElGamal Key Change Mechanism](https://github.com/privacy-scaling-explorations/maci/issues/796))
|
|
141
100
|
- Scaling explorations, like SNARK Folding Schemes (e.g. [Nova integration](https://github.com/privacy-scaling-explorations/maci/issues/904))
|
|
142
101
|
- Different matching mechanisms (e.g. [Group Wise Matching in Quadratic Funding](https://github.com/privacy-scaling-explorations/maci/issues/905))
|
|
143
|
-
-
|
|
144
|
-
-
|
|
102
|
+
- Re-implementation of previously removed features such as [Topup](https://github.com/privacy-scaling-explorations/maci/issues/1384) and [Subsidy](https://github.com/privacy-scaling-explorations/maci/issues/1348)
|
|
103
|
+
- [Benchmarks](https://github.com/privacy-scaling-explorations/maci/issues/1197) for the whole stack
|
|
145
104
|
|
|
146
105
|
## Feedback
|
|
147
106
|
|