/mithril

Stake-based threshold multi-signatures protocol

Primary LanguageRustApache License 2.0Apache-2.0

Mithril - Proof of Concept (POC)

☀️ Introduction

Mithril is a research project which goal is to provide Stake-based Threshold Multisignatures on top of the Cardano Network.

In a nutshell, Mithril can be summarized as:

A protocol that allows stakeholders in a Proof-of-Stake blockchain network to individually sign messages that are aggregated into a multi signature which guarantees that they represent a minimum share of the total stakes.

In other words, an adversarial participant with less than this share of the total stakes will not be able to produce valid multi signatures 🔐.

We have worked on a first implementation of the protocol with the Mithril Network which goal is to provide a way to bootstrap fast a fully operating Cardano Node, in less than 4 hours , whereas it used to take days before.

🚧 Under construction

⚠️ ⚠️ ⚠️

Mithril is currently a work in progress and is still a prototype.

It is NOT yet ready for production and mainnet.

📡 Getting Started with Mithril

🆕 Get access to tutorials, user manual, guides and plenty of documentation on our brand new website!

Our wiki is also available here

This repository is sliced in the following parts:

  • Protocol Demonstration: a simple cli that helps understand how the Mithril protocol works and the role of its protocol parameters.

  • Mithril Aggregator: the node of the Mithril Network responsible for collecting individual signatures from the Mithril Signers and aggregate them into a multisignature. The Mithril Aggregator uses this ability to provide certified snapshots of the Cardano blockchain.

  • Mithril Client: the node of the Mithril Network responsible for restoring the Cardano blockchain on an empty node from a certified snapshot.

  • Mithril Common: this is the common library that is used by the Mithril Network nodes.

  • Mithril Core: the core library that implements Mithril protocol cryptographic engine.

  • Mithril Explorer: the explorer website that connects to a Mithril Aggregator and displays its Certificate Chain.

  • Mithril Infra: the infrastructure used to host a Mithril Aggregator in the cloud.

  • Mithril Signer: the node of the Mithril Network responsible for producing individual signatures that are collected and aggregated by the Mithril Aggregator.

  • Mithril Test Lab: the suite of tools that allow us to test and stress the Mithril protocol implementations.

    • Mithril Devnet: the private Mithril/Cardano Network that we use to scaffold a Mithril Network on top of a Cardano Network.

    • Mithril End To End: the tool that we use to run tests scenari against a Mithril Devnet.

🌉 Contributing

The best way to contribute right now is to provide feedback. Start by giving a look at our documentation.

Should you have any questions, ideas or issues, we would like to hear from you:

When contributing to this project and interacting with others, please follow our Code of Conduct and our Contributing Guidelines.