discourse/discovery/INITIAL_CONCEPT.md
Justin Carper 771c84c9b1 discovery
2025-02-20 10:50:17 -05:00

132 lines
7.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### 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.