This repository replicates and benchmarks the results of the research paper:
Distributed Key Generation with Smart Contracts using zk-SNARKs by Michael Sober and collaborators.
The research explores zero-knowledge proof systems in the context of decentralized identity management, focusing on improving efficiency and privacy. This repository is aimed at replicating their results, specifically targeting the benchmarks detailed in their experiments. The implementation in this repo follows the methodology and testing conditions set forth in the paper to ensure accurate performance benchmarking of zkDKG in multi-sig wallets.
- Setup: Install Node.js, Hardhat, ZoKrates, and Go.
- Clone:
git clone https://github.com/soberm/zkDKG.git && cd zkDKG - Dataset: Create
data/dataset.jsonwith participant data. - Go Client: Implement
main.gofor dataset handling. - Compile: Run
npx hardhat compilefor smart contracts. - Deploy: Use
npx hardhat run --network localhost scripts/deploy.js - Track: Monitor gas, proof time, and memory usage.
- Test: Run
go run main.goto simulate the protocol. - Present: Push to GitHub and deploy to a testnet.
The project includes a simple frontend to visualize ZoKrates commands. Run the application to interact with the ZoKrates Command Runner.
Contributions are welcome! Please read our Contributing Guide for more information.
The work presented in this repository is inspired by and replicates the findings in the paper Distributed Key Generation with Smart Contracts using zk-SNARKs, authored by Michael Sober and his team. Their contribution to the field of zero-knowledge proof systems is invaluable, and this repo aims to provide further validation of their research through comprehensive benchmarking.
The original study can be found here:
- Title: Distributed Key Generation with Smart Contracts using zk-SNARKs
- Authors: Michael Sober, Max Kobelt, Giulia Scaffino, Dominik Kaaser, Stefan Schulte, et al.
- Published: ArXiv 2212.10324 This project implements a Zero-Knowledge Distributed Key Generation (zkDKG) protocol using zk-SNARKs and smart contracts.
- Original Code: https://github.com/soberm/zkDKG
This project is licensed under the MIT License - see the LICENSE file for details.