discourse/discovery/INITIAL_CONCEPT.md

132 lines
7.6 KiB
Markdown
Raw Normal View History

2025-02-20 10:50:17 -05:00
### System Overview
The goal is to create a platform where citizens can anonymously submit opinions on legislative matters, with those opinions influencing lawmakers, while guaranteeing transparency and security. Zero-Knowledge Proofs, a cryptographic tool, enable participants to prove eligibility and uniqueness without revealing their identities. The system integrates digital credentials, blind signatures, and ZKPs, optionally leveraging a blockchain for decentralization and auditability.
---
### Key Features
1. **Anonymity**: Participants identities remain hidden, even from the system and authorities.
2. **Eligibility**: Only authorized individuals (e.g., citizens) can participate.
3. **Uniqueness**: Each participant submits only one opinion per legislative matter.
4. **Transparency**: All submissions and proofs are publicly verifiable.
5. **Security**: Cryptographic methods prevent fraud, manipulation, or duplicate submissions.
---
### System Components
- **Participants**: Individuals with a digital credential (e.g., issued by a trusted authority based on citizenship).
- **Trusted Authority**: Issues credentials and blind signatures to ensure eligibility.
- **Public Ledger (Optional Blockchain)**: Stores commitments, submissions, and proofs for transparency and verification.
- **Legislative Matters**: Each matter (e.g., a proposed law) has a unique identifier, called a “matter ID.”
---
### How the System Works
The system operates in two main phases: **Setup** and **Opinion Submission**.
#### 1. Setup Phase
For each legislative matter identified by a unique matter ID:
- **Credential Issuance**: Each participant has a digital credential from a trusted authority, proving eligibility (e.g., citizenship). This credential is private and tied to their identity initially but anonymized in later steps.
- **Token and Commitment Generation**:
- For each matter, the participant generates:
- A **unique token** (a random value specific to that matter).
- A **secret key** (a private value known only to them).
- They create a **commitment**—a cryptographic hash of the token and secret key combined with the matter ID. This commitment hides the token and key but can later be proven to match them.
- **Blind Signature Request**:
- The participant sends the commitment and matter ID to the authority, with the token portion blinded (using a blind signature scheme like Chaums blind signatures).
- The authority verifies that this credential hasnt requested a signature for this matter ID before, then issues a **partially blind signature**. The signature includes the matter ID (visible to the authority) and the blinded commitment.
- The participant unblinds the signature, obtaining a valid signature on their commitment tied to the matter ID.
- **Publishing Commitments**:
- The participant publishes the commitment and its blind signature to a public ledger (e.g., a blockchain or database).
- The authority ensures each credential gets only one signature per matter, limiting each participant to one commitment per matter.
At the end of the setup phase, theres a public list of commitments for each matter, each with a valid blind signature, ensuring only eligible participants contribute exactly one commitment.
#### 2. Opinion Submission Phase
When a participant wants to submit an opinion on a legislative matter:
- **Submission Content**:
- The participant reveals their **token** for that matter.
- They provide their **opinion** (e.g., “yes,” “no,” or a short statement).
- They generate a **Zero-Knowledge Proof (ZKP)** that proves:
1. There exists a commitment in the public list for this matter ID where the revealed token matches the committed token.
2. They know the secret key associated with that commitment.
- **Verification**:
- The system (or a smart contract on a blockchain) verifies:
- The commitment referenced by the ZKP has a valid blind signature from the authority.
- The ZKP is correct, confirming the tokens legitimacy and the participants knowledge of the secret key.
- The token hasnt been used before for this matter (checked against a list of used tokens).
- **Recording**:
- If valid, the system accepts the opinion, records it publicly with the token and ZKP, and marks the token as used.
---
### Ensuring Core Requirements
- **Anonymity**:
- Blind signatures ensure the authority doesnt link commitments to participants.
- The ZKP hides which commitment corresponds to the submission, mixing it among all participants commitments.
- Tokens are unique per matter and unlinkable across matters, preventing profiling.
- **Eligibility**:
- Only participants with a valid credential can obtain blind signatures and publish commitments.
- **Uniqueness**:
- The authority issues one blind signature per credential per matter, limiting each participant to one commitment.
- The ZKP and token check ensure each commitment submits only one opinion per matter.
- **Transparency**:
- All commitments, signatures, opinions, tokens, and ZKPs are public. Anyone can verify that submissions correspond to valid commitments and that no token is reused.
- **Security**:
- ZKPs require knowledge of the secret key, preventing token theft.
- Blind signatures and commitments prevent the authority or outsiders from manipulating the process.
- A blockchain (if used) ensures tamper-proof records.
---
### Optional Blockchain Integration
For enhanced transparency and decentralization:
- **Commitments**: Stored as transactions on the blockchain during setup.
- **Submissions**: Each opinion submission is a transaction, verified by a smart contract that checks the ZKP and token uniqueness.
- **Auditability**: The blockchain provides a tamper-proof log, allowing anyone to audit the process without trusting a central entity.
This reduces reliance on a single authority, though the authority still issues initial credentials and signatures. A fully decentralized identity system could further minimize this dependency.
---
### Scalability and Efficiency
- **Large Populations**: For millions of participants, the system manages large lists of commitments and used tokens. Modern databases or blockchains (e.g., Ethereum with rollups) can handle this scale.
- **Efficient ZKPs**: Using zk-SNARKs or zk-STARKs, proofs are small (e.g., a few hundred bytes) and verification is fast (e.g., milliseconds), making the system practical.
- **Setup Overhead**: Participants generate commitments per matter, which could be streamlined with reusable credentials, but the current design prioritizes security and simplicity.
---
### Example Workflow
1. **Setup for Matter “Law123”**:
- Alice, with credential C1, generates token T1 and secret key S1, commits to them as Com1 = Hash(T1, S1, “Law123”).
- She gets a blind signature Sig1 from the authority on Com1 for “Law123” and publishes (Com1, Sig1).
2. **Submission**:
- Alice submits her opinion “Yes” on “Law123” with:
- Token T1.
- ZKP proving T1 matches a commitment (e.g., Com1) and she knows S1.
- The system verifies Sig1, the ZKP, and that T1 is unused, then records “Yes” with T1.
3. **Public Check**:
- Anyone sees (Com1, Sig1) in the list, verifies Sig1, and confirms T1s submission is valid and unique.
---
### Conclusion
This system leverages ZKPs, blind signatures, and a public ledger to crowdsource public opinion securely and transparently. It ensures anonymity and fairness while allowing lawmakers to trust the authenticity of the input, making it a robust tool for democratic participation in legislation.