- Notifications
You must be signed in to change notification settings - Fork42
Stake-based threshold multi-signatures protocol
License
input-output-hk/mithril
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Mithril is a research project the goal of which is to providestake-based threshold multi-signatures(STM) on top of theCardano network.
In a nutshell,Mithril can be summarized as:
A protocol that enables stakeholders in a proof-of-stake (PoS) blockchain network to individually sign messages, which are then aggregated into a multi-signature, guaranteeing that they represent a minimum share of the total stake.
In other words, an adversarial participant with less than this share of the total stake will be unable to produce valid multi-signatures. 🔐.
The goal of the first implementation of the Mithril network protocol is to provide a way to fast bootstrap a fully operating Cardano node in less than two hours, compared to the days it used to take before.
To unleash the power of Mithril and leverage new use cases, we have also implemented a framework in the Mithril network that allows the certification of multiple types of data, provided they can be computed deterministically.
Mithril is currently a work in progress, and is available in itsbeta version on mainnet.
✔️ It is ready to be safely deployed in the SPO production infrastructure forCardano mainnet.
By using Mithril protocol, you understand the protocol is in development and that use of themithril-signer
,mithril-aggregator
andmithril-client
on mainnet is entirely at your own risk.
You also acknowledge and agree to have an adequate understanding of the risks associated with use of the Mithril network and that all information and materials published, distributed or otherwise made available on mithril.network and Mithril Github Repository is available on an ‘AS IS’ and ‘AS AVAILABLE’ basis, without any representations or warranties of any kind. All implied terms are excluded to the fullest extent permitted by law. For details, see also sections 7, 8 and 9 of theApache 2.0 License.
If you are aCardano SPO, a good entry point is theSPO onboarding guide.Additionally, you can find detailed instructions for running asigner node inthis guide.
If you are interested infast bootstrapping of a Cardano node, please refer tothis guide.
Get access to tutorials, user manual, guides and plenty of documentation on ourwebsite!
Mithril wiki is also availablehere.
This repository consists of the following parts:
Mithril aggregator: the node of theMithril network responsible for collecting individual signatures from theMithril signers and aggregating them into a multi-signature. TheMithril aggregator uses this ability to provide certified snapshots of theCardano blockchain.
Mithril client: this is theclient library that can be used by developers to interact with Mithril certified data in their applications.
Mithril client CLI: the CLI used for retrieving the certified artifacts produced by theMithril network, eg theCardano chain certified snapshots used to securely restore aCardano node.
Mithril client WASM: the WASM compatible library used for retrieving the certified artifacts produced by theMithril network.
Mithril common: this is thecommon library that is used by theMithril network nodes.
Mithril STM: thecore library that implementsMithril protocol cryptographic engine.
Mithril explorer: theexplorer website that connects to aMithril aggregator and displays itsCertificate chain and artifacts.
Mithril infrastructure: the infrastructure used to power aMithril network in the cloud.
Mithril signer: the node of theMithril network responsible for producing individual signatures that are collected and aggregated by theMithril aggregator.
Internal: the shared tools and API used byMithril crates.
Mithril build script: a toolbox for Mithril crates using a build scripts phase.
Mithril doc: an API that generates markdown documentation for a crate command lines arguments.
Mithril doc derive: a macro implementation used byMithril doc.
Mithril persistence: thepersistence library that is used by theMithril network nodes.
Mithril test lab: the suite of tools that allow us to test and stress theMithril protocol implementations.
Mithril devnet: the privateMithril/Cardano network used to scaffold aMithril network on top of aCardano network.
Mithril end to end: the tool used to run tests scenarios against aMithril devnet.
Protocol demonstration: a simple CLI that helps understand how theMithril protocol works and the role of itsprotocol parameters.
Examples: out of the box working examples to get familiar withMithril.
The best way to contribute right now is to provide feedback. Start by giving a look at ourdocumentation.
Should you have any questions, ideas or issues, we would like to hear from you:
- #ask-mithril on the IOGDiscord server
- Create a GitHubDiscussion
- Create a GitHubIssue
- Ask on CardanoStackExchange using the
mithril
tag
When contributing to this project and interacting with others, please follow ourCode of Conduct and ourContributing Guidelines.
- Logo created by Alexander Wende
About
Stake-based threshold multi-signatures protocol