Skip to content
@zk-secrec

ZK-SecreC

Code with Confidence: where Integrity meets Privacy

ZK-SecreC

ZK-SecreC

Zero-Knowledge (ZK) Proofs are a cryptographic technology used to convince Relying Parties that a statement holds, while not revealing them the evidence that makes that statement hold. While ZK Proofs are already widely used in certain real-world applications, and even more ubiquitously as subroutines in cryptographic functionalities, we believe that a well-design programming language will simplify their even more general uptake. Hence we have introduced the domain-specific language ZK-SecreC.

The power of ZK-SecreC ultimately derives from its type system, which is described and justified in the following research paper:

@inproceedings{zk-secrec-language,
  author       = {Dan Bogdanov and
                  Joosep J{\"{a}}{\"{a}}ger and
                  Peeter Laud and
                  H{\"{a}}rmel Nestra and
                  Martin Pettai and
                  Jaak Randmets and
                  Raul-Martin Rebane and
                  Ville Sokk and
                  Kert Tali and
                  Sandhra{-}Mirella Valdma},
  title        = {Z{K}-{S}ecre{C}: a Domain-Specific Language for Zero Knowledge Proofs},
  booktitle    = {37th {IEEE} Computer Security Foundations Symposium, {CSF} 2024, Enschede,
                  Netherlands, July 8-12, 2024},
  pages        = {372--387},
  publisher    = {{IEEE}},
  year         = {2024},
  doi          = {10.1109/CSF61375.2024.00010}
}

The technical report further expanding the description is available here.

The compiler of ZK-SecreC and the associated materials are published in three repositories:

  • The compiler repository contains the source code of the ZK-SecreC compiler, and the standard library of ZK-SecreC.
  • The examples repository contains a number of smaller and larger example programs written in ZK-SecreC.
  • The documentation repository contains the source of the documentation. The documentation includes the introduction to ZK-SecreC language, and the language reference. It also includes the documentation of ZK-SecreC compiler, and the standard library.
    • The documentation is served here.

Each repository contains a README-file describing the content of the repository, and the instructions of making use of the content.

The work on ZK-SecreC has mostly been funded by DARPA under contract no. HR0011-20-C-0083. The views, opinions, and/or findings expressed are those of the author(s) and should not be interpreted as representing the official views or policies of the Department of Defense or the U.S. Government. Additional funding has come from Estonian Research Council (grant no. PRG1780).

Popular repositories Loading

  1. compiler compiler Public

    The compiler for ZK-SecreC language.

    Haskell 2

  2. documentation documentation Public

    ZK-SecreC Compiler, Language and Standard Library Documentation

    HTML 1

  3. examples examples Public

    ZK-SecreC program examples

    Python 1

  4. .github .github Public

  5. zk-secrec.github.io zk-secrec.github.io Public

    Landing page for ZK-SecreC

    HTML

Repositories

Showing 5 of 5 repositories
  • .github Public
    zk-secrec/.github’s past year of commit activity
    0 0 0 0 Updated Feb 18, 2025
  • zk-secrec.github.io Public

    Landing page for ZK-SecreC

    zk-secrec/zk-secrec.github.io’s past year of commit activity
    HTML 0 0 0 0 Updated Feb 18, 2025
  • compiler Public

    The compiler for ZK-SecreC language.

    zk-secrec/compiler’s past year of commit activity
    Haskell 2 BSD-3-Clause 0 0 0 Updated Nov 1, 2024
  • documentation Public

    ZK-SecreC Compiler, Language and Standard Library Documentation

    zk-secrec/documentation’s past year of commit activity
    HTML 1 0 0 0 Updated Oct 25, 2024
  • examples Public

    ZK-SecreC program examples

    zk-secrec/examples’s past year of commit activity
    Python 1 0 0 0 Updated Oct 18, 2024

Top languages

Loading…

Most used topics

Loading…