Aggregatable Distributed Key Generation

Overview

Aggregatable DKG and VUF

WARNING: this code should not be used in production!

Implementation of Aggregatable Distributed Key Generation, a distributed key generation (DKG) protocol with aggregatable and publicly verifiable transcripts and a new efficient verifiable unpredictable function (VUF) that can be securely combined with it.

Installation

Install a recent stable Rust toolchain using rustup.

Testing

Run cargo test to test both simple signing and aggregation.

Benchmarks

Run cargo bench.

You might also like...
Distributed SQL database in Rust, written as a learning project

toyDB Distributed SQL database in Rust, written as a learning project. Most components are built from scratch, including: Raft-based distributed conse

Distributed, version controlled, SQL database with cryptographically verifiable storage, queries and results. Think git for postgres.

SDB - SignatureDB Distributed, version controlled, SQL database with cryptographically verifiable storage, queries and results. Think git for postgres

Raft distributed consensus algorithm implemented in Rust.
Raft distributed consensus algorithm implemented in Rust.

Raft Problem and Importance When building a distributed system one principal goal is often to build in fault-tolerance. That is, if one particular nod

Embedded Distributed Encrypted Database (Research).

EDED Embedded Distributed Encrypted Database. Research projects to support ESSE. WIP Distributed design features Adapt to personal distributed usecase

A high-performance, distributed, schema-less, cloud native time-series database
A high-performance, distributed, schema-less, cloud native time-series database

CeresDB is a high-performance, distributed, schema-less, cloud native time-series database that can handle both time-series and analytics workloads.

The rust client for CeresDB. CeresDB is a high-performance, distributed, schema-less, cloud native time-series database that can handle both time-series and analytics workloads.

The rust client for CeresDB. CeresDB is a high-performance, distributed, schema-less, cloud native time-series database that can handle both time-series and analytics workloads.

This is a small demo of how to transform a simple single-server RocksDB service written in Rust into a distributed version using OmniPaxos.

OmniPaxos Demo This is a small demo of how to transform a simple single-server RocksDB service into a distributed version using OmniPaxos. Related res

Distributed, MVCC SQLite that runs on FoundationDB.

mvSQLite Distributed, MVCC SQLite that runs on top of FoundationDB. Documentation mvSQLite Features Releases Quick reference Try it Contributing Featu

A Distributed SQL Database - Building the Database in the Public to Learn Database Internals
A Distributed SQL Database - Building the Database in the Public to Learn Database Internals

Table of Contents Overview Usage TODO MVCC in entangleDB SQL Query Execution in entangleDB entangleDB Raft Consensus Engine What I am trying to build

Comments
  • convert pubkey to g1 for sig scheme

    convert pubkey to g1 for sig scheme

    • convert signature scheme for signatures to BLSSignatureG2
    • keep signature scheme for proof of knowledge (pok) the same as before BLSSignatureG1.
    • commented out pvss_share_verify since participant.public_key_sig is in G1 but the function expects it to be E::G2Prepared to carry out pairings.
    opened by xenowits 4
  • Add multi-evaluation support

    Add multi-evaluation support

    If I read the protocol correctly, one signer could sign numerous messages simultaneously, like in BLS, using the same alpha and beta, and the same point not involving the hash Z, but supplying numerous π_2 and π_4 points. All messages could then be verified simultaneously by using Z = Σ_i Z_i and π_2 = Σ_i π_{2,i} and π_4 = Σ_i π_{4,i}. In this variant, adversaries could forge signatures on linear combinations of Z, and similarly malicious signers could play games, but this should yield nothing useful.

    This looks useful because users could pay to query the threshold VRF alongside the randomness beacon.

    Ideally one wants slightly more than this: Users should query for secret evaluations. We could implement secrecy by users providing a SNARK on BW6 that secretly evaluates the hash-to-curve on BLS12-377 and multiplies by a blinding scalar. Again this should yield security for this scheme.

    I'm unsure if this make sense as some brain wallet recovery method, but it should definitely makes sense for public rendezvous protocols, like SecureDrop or the Panda protocol in Pond.

    opened by burdges 3
Owner
Kobi Gurkan
Kobi Gurkan
Distributed transactional key-value database, originally created to complement TiDB

Website | Documentation | Community Chat TiKV is an open-source, distributed, and transactional key-value database. Unlike other traditional NoSQL sys

TiKV Project 12.4k Jan 3, 2023
General basic key-value structs for Key-Value based storages

General basic key-value structs for Key-Value based storages

Al Liu 0 Dec 3, 2022
Blazingly fast data generation & seeding for MongoDB

Planter Blazingly fast and simple data generation & seeding for MongoDB Installation Use the package manager cargo to install planter. Add the followi

Valencian Digital 4 Jan 12, 2022
Next-generation developer-first NoSQL database

Next-generation developer-first NoSQL database. AnnaDB moves familiar programming languages' patterns into the databases world to solve the problem of

Roman Right 40 Dec 28, 2022
High performance and distributed KV store w/ REST API. 🦀

About Lucid KV High performance and distributed KV store w/ REST API. ?? Introduction Lucid is an high performance, secure and distributed key-value s

Lucid ᵏᵛ 306 Dec 28, 2022
small distributed database protocol

clepsydra Overview This is a work-in-progress implementation of a core protocol for a minimalist distributed database. It strives to be as small and s

Graydon Hoare 19 Dec 2, 2021
Garage is a lightweight S3-compatible distributed object store

Garage [ Website and documentation | Binary releases | Git repository | Matrix channel ] Garage is a lightweight S3-compatible distributed object stor

Deuxfleurs 156 Dec 30, 2022
ChiselStore is an embeddable, distributed SQLite for Rust, powered by Little Raft.

ChiselStore ChiselStore is an embeddable, distributed SQLite for Rust, powered by Little Raft. SQLite is a fast and compact relational database manage

null 516 Jan 2, 2023
A scalable, distributed, collaborative, document-graph database, for the realtime web

is the ultimate cloud database for tomorrow's applications Develop easier. Build faster. Scale quicker. What is SurrealDB? SurrealDB is an end-to-end

SurrealDB 16.9k Jan 8, 2023
Canary - Distributed systems library for making communications through the network easier, while keeping minimalism and flexibility.

Canary Canary is a distributed systems and communications framework, focusing on minimalism, ease of use and performance. Development of Canary utiliz

null 28 Nov 3, 2022