Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sigma protocol #1386

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open

Conversation

rm720
Copy link
Contributor

@rm720 rm720 commented Jan 12, 2025

Sigma Protocol Theory

Description

This code introduces the Sigma Protocol Theory into the HOL4 library.

Sigma Protocol

The Sigma Protocol is a fundamental cryptographic primitive essential for Zero Knowledge Proofs.

Key Components

  • Three-Move Protocol:
    • Prover sends commitment to secret (using randomness)
    • Verifier sends random challenge
    • Prover sends response based on secret and challenge
  • Combiners: Extends basic protocol with:
  • OR combiner: proves knowledge of one of two statements
  • AND combiner: proves knowledge of both statements
  • Equality combiner: proves same witness works for both statements

Properties

  • Completeness: If the prover knows a witness w where R(w,s) holds for statement s, they always convinces the verifier
  • Special Soundness: Two valid responses to different challenges allows extracting the witness
  • Honest-Verifier Zero-Knowledge: Protocol reveals nothing to verifiers who follow the protocol honestly

Theorems

Includes proofs for:

  • WellFormed_SP: Shows protocol follows basic conditions
  • Complete_SP: Proves completeness property
  • SpecialSoundness_SP: Demonstrates knowledge extraction
  • SimulatorCorrectness_SP: Shows simulation works correctly
  • HonestVerifierZeroKnowledge_SP: Proves zero-knowledge property

Motivation

This contribution:

  • Provides foundation for cryptographic protocols
  • Enables further usage of Sigma Protocols in applications requiring zero-knowledge proofs
  • Demonstrates application of abstract algebra library

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant