• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Apt
        • Error-checking
        • Fty-extensions
        • Isar
        • Kestrel-utilities
        • Set
        • Soft
        • C
        • Bv
        • Imp-language
        • Event-macros
        • Java
        • Bitcoin
        • Ethereum
          • Mmp-trees
          • Semaphore
            • Verify-semaphore-r1cs
            • Mimc
            • Semaphore-specification
            • Semaphore-proofs
          • Database
          • Cryptography
          • Rlp
          • Transactions
          • Hex-prefix
          • Basics
          • Addresses
        • Yul
        • Zcash
        • ACL2-programming-language
        • Prime-fields
        • Json
        • Syntheto
        • File-io-light
        • Cryptography
        • Number-theory
        • Lists-light
        • Axe
        • Builtins
        • Solidity
        • Helpers
        • Htclient
        • Typed-lists-light
        • Arithmetic-light
      • X86isa
      • Axe
      • Execloader
    • Math
    • Testing-utilities
  • Ethereum

Semaphore

Ethereum's Semaphore.

Semaphore is a zero-knowledge gadget for Ethereum, but it may have wider applicability. See the Ethereum Semaphore repository for more information.

This library provides an ACL2 formalization of the Semaphore functionality, and formal proofs that the R1CS used to implement Semaphore are equivalent to the formalization. The formalization is primarily based on the specification in the paper Community Proposal: Semaphore: Zero-Knowledge Signaling on Ethereum, referenced here as `[Sema-Spec]' for brevity. Sections are referenced by appending their designations separated by a colon, e.g., `[Sema-Spec:5.3.2]' references Section 5.3.2.

Subtopics

Verify-semaphore-r1cs
A tool to verify a semaphore R1CS
Mimc
A formal specification of the MiMC hash function as used by Semaphore.
Semaphore-specification
Formal specification of Ethereum's Semaphore.
Semaphore-proofs
Formal proofs of Ethereum's Semaphore.