International Association for Cryptologic Research

International Association
for Cryptologic Research

ASIACRYPT 2024

LogRobin++: Optimizing Proofs of Disjunctive Statements in VOLE-Based ZK


README

LogRobin++

This repository implements the Robin++/LogRobin/LogRobin++ protocol.
See our paper for details.

Basis

Our LogRobin++ is based on (1) QuickSilver's (https://eprint.iacr.org/2021/076) repository, which is part of the EMP Toolkit: https://github.com/emp-toolkit/emp-zk; and (2) Batchman's (https://github.com/gconeice/stacking-vole-zk) repository. In particular, we forked their repositories and developed based on them. We also tweak some of EMP's libraries.

MIT license is included as part of each repository.

Prerequisites

This repo requires the following prerequisites (on Ubuntu):
git software-properties-common cmake build-essential libssl-dev clang

They can be installed using apt-get in a standard way:
sudo apt-get install -y software-properties-common cmake build-essential libssl-dev clang

We recommend to install iperf to test for the simulated network as well.

Hardware

Our repo can be used on any hardware. However, to perform all experiments in the paper, the prover and the verifier each needs at least 16GB memory.

Setup environment

This includes installation of emp-tool and emp-ot.

We provide the following script to install them under the folder setup:
bash setup.sh

The -para option can enable -j option in make (i.e., bash setup.sh -para); please do not use it on resource-constrained systems.

Build and install

We provide the following script to install them under the folder build:
bash install.sh

The -para option can enable -j option in make (i.e., bash install.sh -para); please do not use it on resource-constrained systems.

Toy example

Let $IP denote the prover's IP address.

Prover:
./build/bin/test_rep_bool_logrobinplus_ro 1 12345 localhost 1 10 10000000

Verifier:
./build/bin/test_rep_bool_logrobinplus_ro 2 12345 $IP 1 10 10000000

Browsing the code

/test/rand contains our core code for branches with different circuits.

/test/rep contains our core code for branches with a same circuit.

/emp-zk contains the EMP Toolkit's ZK library.

Expected executable

After compiling, the executable would show up in build/bin.

Test

See the Excel file benchmark_summary.xlsx, which includes the data to generate the tables and plots in our paper.

See the file ae_appendix.pdf, which includes how to obtain the numbers in the Excel and paper step-by-step.