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

7.6 KiB
Raw Permalink Blame History

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.