Skip to content

Commit

Permalink
Update anti-collusion_infrastructure.md
Browse files Browse the repository at this point in the history
  • Loading branch information
StringNick committed Sep 1, 2023
1 parent a790119 commit ba1f2f1
Showing 1 changed file with 28 additions and 10 deletions.
38 changes: 28 additions & 10 deletions applications/anti-collusion_infrastructure.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,28 @@
- **Payment Address:** 0x49F19FA78C4E766b8C5592e53CC35b1411a5E11f (USDC/DAI)
- **[Level](https://github.com/w3f/Grants-Program/tree/master#level_slider-levels):** 2 :chicken:

## Project Description :page_facing_up:
## Project Overview

A lot of blockchain applications that involve some kind of voting, like on-chain quadratic funding, can potentially be exploited via collusion and bribery (see [Vitalik’s post about collusion](https://vitalik.ca/general/2019/04/03/collusion.html)). Implement [Minimal anti-collusion infrastructure](https://ethresear.ch/t/minimal-anti-collusion-infrastructure/5413) with voting example on substrate based blockchain.
### Overview

A lot of blockchain applications that involve some kind of voting, like on-chain quadratic funding, can potentially be exploited via collusion and bribery (see [Vitalik’s post about collusion](https://vitalik.ca/general/2019/04/03/collusion.html)). So project is focused to implement an example on substrate blockchain of MACI.

### Project Details

I dont expected final version of an project with all alghorithms, but project architecture is looks like:
* implementing an substrate pallet, where we can create a new poll
* implement tool to call substrate pallet and create poll, to calculate result and provide result to substrate pallet using zk-snark
* implement tool for verification of calculation of pool author using zk-snark toolchain

Approximate scheme of architecture:

![MACI Scheme](https://github.com/zrowdev/substrate-maci/blob/main/arch.jpg?raw=true)

### Ecosystem Fit

* Our project fit to ecosystem by an example of using an a online voting application, that is realised in many blockchains with a resistant to bribery and collisions.
* Target audience is developers/dapps

## Team :busts_in_silhouette:

### Team members
Expand Down Expand Up @@ -40,14 +58,14 @@ Entered the substrate ecosystem in 2020 as part of the Substrate Developer. ETH

### Milestone 1 - Anti-collusion

| Number | Deliverable | Specification |
| ------ | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 0a. | License | Apache 2.0 / MIT / Unlicense |
| 0b. | Documentation | Inline documentation of the code and a basic tutorial that explains how a developer can use the project |
| 0c. | Testing Guide | The code will have unit-test coverage (min. 70%) to ensure functionality and robustness. In the guide we will describe how to run these tests |
| 0d. | Article/Tutorial | Article or tutorial that explains the work done as part of the grant. |
| 1. | Anti-collusion | Implement a mechanism to prevent bribery and collusion, leveraging encrypting votes (ZKPs) potentially via [Minimum Anti-Collusion Infrastructure (MACI)](https://ethresear.ch/t/minimal-anti-collusion-infrastructure/5413) |
| 2. | Voting Example | Integrate a basic voting example that lets you test the mechanism substrate |
| Number | Deliverable | Specification |
| ------ | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 0a. | License | Apache 2.0 / MIT / Unlicense |
| 0b. | Documentation | Inline documentation of the code and a basic tutorial that explains how a developer can use the project |
| 0c. | Testing Guide | The code will have unit-test coverage (min. 70%) to ensure functionality and robustness. In the guide we will describe how to run these tests |
| 0d. | Article/Tutorial | Article or tutorial that explains the work done as part of the grant. |
| 1. | Anti-collusion | Implement MACI pallet for substrate with voting example based on scheme below, stack that i will use: substrate |
| 2. | Voting chat tool | Implement a voting tool on golang, voting tool functionality: creating vote, generating keypair, sign up user in pallet, cast a vote, calculate batch of vote, tallying result of poll, verify tallied result of vote |



Expand Down

0 comments on commit ba1f2f1

Please sign in to comment.