Vector OLE and zero-knowledge for Z2k.

Overview

Mozzarella Benchmarking Code

This repository contains the code developed for the benchmarking experiments in our paper:

"Moz​ $\mathbb{Z}_{2^k}$ ​arella: Efficient Vector-OLE and Zero-Knowledge Proofs Over $\mathbb{Z}_{2^k}$ ". By Carsten Baum, Lennart Braun, Alexander Munch-Hansen, and Peter Scholl (all Aarhus University). To appear at Crypto 2022. Full version on ePrint.

Code

The code is based on the secure computation framework swanky by Galois, more specifically, on a fork of swanky by Mathias Hall-Andersen.1 The implementation of our VOLE protocol for $\mathbb{Z}_{2^k}$ is available in the subdirectory ocelot/src/ot/mozzarella. The benchmarking code for the QuarkSilver zero-knowledge protocol is located in ocelot/src/quarksilver.

Compile

We have tested the code with Rust v1.58.1. It requires an x86 processor with AESNI and SSE2 instruction set extensions. To compile the benchmarks, run cargo build --release. Then the benchmark programs can be found under target/release/mozzarella_bench and target/release/qs_mult_bench.

Running the Benchmarks

The benchmark binaries have a builtin --help which documents the available option.

Example: VOLE Extension Benchmark

Sender / Prover Command

./target/release/mozzarella_bench \
--party prover \
--listen \
--host ::1 \
--threads=4 \
--repetitions=10 \
--json \
--ring=r144 \
--base-vole-size=553600 \
--num-noise-coordinates=2186 \
--extension-size=10557972

Receiver / Verifier Command

./target/release/mozzarella_bench \
--party verifier \
--host ::1 \
--threads=4 \
--repetitions=10 \
--json \
--ring=r144 \
--base-vole-size=553600 \
--num-noise-coordinates=2186 \
--extension-size=10557972

Footnotes

  1. The original README can be found here.

You might also like...
A fast zero-knowledge proof friendly Move language runtime environment.
A fast zero-knowledge proof friendly Move language runtime environment.

zkMove Lite zkMove Lite is a lightweight zero-knowledge proof friendly Move language virtual machine. Move bytecode is automatically "compiled" into c

Spartan2: High-speed zero-knowledge SNARKs.

Spartan2: High-speed zero-knowledge SNARKs. Spartan is a high-speed zkSNARK, where a zkSNARK is type cryptographic proof system that enables a prover

Implementation of zero-knowledge proof circuits for Tendermint.

Tendermint X Implementation of zero-knowledge proof circuits for Tendermint. Overview Tendermint X's core contract is TendermintX, which stores the he

Composable proof transcripts for public-coin arguments of knowledge
Composable proof transcripts for public-coin arguments of knowledge

Merlin: composable proof transcripts for public-coin arguments of knowledge Merlin is a STROBE-based transcript construction for zero-knowledge proofs

Parser and test runner for testing compatable common Ethereum full node tests against Polygon Zero's EVM.

EVM Test Parses and runs compatible common Ethereum tests from ethereum/tests against Polygon Zero's EVM. Note: This repo is currently very early in d

Experiments on blockchain technology (also known as Hashed & Zero-trust Verifiable Linked List)

AngeloChain Experiments on blockchain technology (also known as Hashed & Zero-trust Verifiable Linked List) ⚠️ Before We Get Started Before we get sta

A template for starting a flipperzero-rs project for the Flipper Zero🐬

flipperzero-template 🚀 A template for kick-starting a Rust + FlipperZero project using flipperzero-rs 🐬 ❤️ 🦀 . Currently supports SDK 14.0 (flipper

A "Type 0" zkEVM. Prove validity of Ethereum blocks using RISC Zero's zkVM

zeth NEW: Zeth now supports Optimism blocks! Just pass in --network=optimism! Zeth is an open-source ZK block prover for Ethereum built on the RISC Ze

IBC modules and relayer - Formal specifications and Rust implementation

ibc-rs Rust implementation of the Inter-Blockchain Communication (IBC) protocol. This project comprises primarily four crates: The ibc crate defines t

Owner
null
The Zero Knowledge Whitelist Tool is a powerful utility for managing an address whitelist using Zero-Knowledge (ZK) proofs.

zk_whitelist: A Zero Knowledge Whitelist Tool The Zero Knowledge Whitelist Tool is a powerful utility for managing an address whitelist using Zero-Kno

Nikos Koumbakis 4 Nov 21, 2023
RISC Zero is a zero-knowledge verifiable general computing platform based on zk-STARKs and the RISC-V microarchitecture.

RISC Zero WARNING: This software is still experimental, we do not recommend it for production use (see Security section). RISC Zero is a zero-knowledg

RISC Zero 653 Jan 3, 2023
Zero-Knowledge Assembly language and compiler

zkAsm A Zero-Knowledge circuit assembly language, designed to represent Zero-Knowledge circuits in a compressed format, to be stored on blockchains. I

null 1 Dec 30, 2021
STARK - SNARK recursive zero knowledge proofs, combinaison of the Winterfell library and the Circom language

STARK - SNARK recursive proofs The point of this library is to combine the SNARK and STARK computation arguments of knowledge, namely the Winterfell l

Victor Colomb 68 Dec 5, 2022
A Software Development Kit (SDK) for Zero-Knowledge Transactions

Aleo SDK The Aleo SDK is a developer framework to make it simple to create a new account, craft a transaction, and broadcast it to the network. Table

Aleo 270 Jan 5, 2023
Zerocaf: A library built for EC operations in Zero Knowledge.

Dusk-Zerocaf WARNING: WIP Repo. Fast, efficient and bulletproof-friendly cryptographic operations. This repository contains an implementation of the S

Dusk Network 50 Oct 31, 2022
Noir is a domain specific language for zero knowledge proofs

The Noir Programming Language Noir is a Domain Specific Language for SNARK proving systems. It has been designed to use any ACIR compatible proving sy

null 404 Jan 1, 2023
OpenZKP - pure Rust implementations of Zero-Knowledge Proof systems.

OpenZKP OpenZKP - pure Rust implementations of Zero-Knowledge Proof systems. Overview Project current implements ?? the Stark protocol (see its readme

0x 529 Jan 5, 2023
Safeguard your financial privacy with zero-knowledge proofs.

Spinner The Spinner project (https://spinner.cash) takes a privacy first approach to protect users crypto assets. It is a layer-2 protocol built on th

Spinner 21 Dec 28, 2022
Zero Knowledge Light Client Implementation by Zpoken team.

zkp for chain state Prerecusites This project requires using the nightly Rust toolchain, which can be used by default in this way: rustup default nigh

Zpoken 40 Mar 6, 2023