Skip to content

Commit 4a2b566

Browse files
committed
docs: apply review comments
1 parent e920cbe commit 4a2b566

File tree

4 files changed

+5
-45
lines changed

4 files changed

+5
-45
lines changed

docs/website/root/mithril/advanced/mithril-protocol/certificates.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ sidebar_label: Certificate chain design
77

88
## Introduction
99

10-
The **Mithril protocol** can be summarized as:
11-
12-
> A protocol that enables stakeholders in a proof-of-stake blockchain network to individually sign messages. These signatures are then aggregated into a multi-signature, ensuring that stakeholders collectively represent a minimum share of the total stake.
13-
1410
The **certificate chain** is a Mithril component that certifies the **stake distribution** used to create the multi-signature. Its primary purpose is to prevent adversaries from executing an **eclipse attack** on the blockchain.
1511

1612
Without the certificate, the stake distribution can't be trusted. A malicious actor could relatively easily create a fake stake distribution and use it to produce a valid multi-signature, which would be embedded in a valid but non-genuine certificate. This certificate could be served by a dishonest Mithril aggregator node, leading an honest Mithril client to restore a non-genuine snapshot.

docs/website/root/mithril/advanced/mithril-protocol/security.md

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -5,44 +5,8 @@ sidebar_label: Protocol security
55

66
# Protocol security
77

8-
:::info
9-
10-
Mithril is based on the [Mithril: Stake-based Threshold Multi-signatures](https://iohk.io/en/research/library/papers/mithril-stake-based-threshold-multisignatures/) research paper.
11-
12-
:::
13-
14-
Mithril is a stake-based threshold multi-signature (STM) protocol that aggregates individual signatures into a compact certificate. This process occurs when the total stake supporting a message exceeds a predefined threshold. The protocol enhances scalability in signing, communication, and verification by pseudorandomly selecting a subset of eligible participants to sign each message.
15-
168
This document presents a comprehensive security analysis of Mithril, examining potential threats and the protocol’s defenses against various attack vectors. It starts with an overview of the STM protocol and the adversarial model, followed by an in-depth discussion of security measures against common cryptographic attacks. The document concludes with an analysis of parameter selection, highlighting trade-offs between security and efficiency through practical examples.
179

18-
## Mithril protocol explained
19-
20-
The STM protocol enables participants to sign a message collectively, validating the signature based on their combined stake. It leverages threshold multi-signatures to aggregate multiple individual signatures into a single, compact signature. This approach is especially beneficial in proof-of-stake (PoS) systems, where blockchain security relies on the distribution and control of stake among participants.
21-
22-
- _Threshold multi-signature_: a cryptographic scheme that aggregates individual signatures into one compact signature if the total stake of the signers exceeds a predefined threshold
23-
- _Stake-based eligibility_: the protocol ensures that only participants with sufficient stake are pseudorandomly selected as eligible to sign messages
24-
- _Aggregation and verification_: aggregates individual signatures into a multi-signature, enabling efficient verification.
25-
26-
### Protocol phases
27-
28-
- **Initialization phase**
29-
30-
- _Setup_: the protocol sets up the necessary cryptographic parameters and prepares the system for operation
31-
- _Key generation_: participants generate a public-private key pair $(sk_i, pk_i)$
32-
- _Proof of possession_: each participant creates a proof $(\mathcal{PoP_i})$ that they possess the private key corresponding to their public key
33-
- _Registration_: participants register their public keys $(pk_i)$ and $(\mathcal{PoP_i})$, which are then stored in a Merkle tree structure for efficient verification
34-
- _Aggregate verification key_: the root of the Merkle tree, which serves as the aggregate verification key $(\mathcal{AVK})$.
35-
36-
- **Operation phase**
37-
- _Eligibility determination_:
38-
- _Lottery mechanism_: the protocol initiates a series of lotteries for each message to determine eligible participants. Each participant's chance of winning is proportional to their stake
39-
- _Security parameter_ $(m)$: the number of parallel lotteries, which ensures that enough participants are eligible
40-
- _Quorum parameter_ $(k)$: the minimum number of eligible signatures required to form a valid multi-signature
41-
- _Signing process_:
42-
- _Individual signature generation_: eligible participants generate individual signatures for the message
43-
- _Aggregation_: these signatures are aggregated into a single multi-signature; a minimum of $k$ signatures are aggregated into a single multi-signature
44-
- _Verification_: the multi-signature, along with the Merkle proofs, is verified using the $\mathcal{AVK}$.
45-
4610
:::info
4711

4812
Protocol phases are described in more detail [here](./protocol.md#protocol-phases).

docs/website/root/mithril/beginner/how-it-works.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ To explore advanced topics, see:
4141
- [Protocol phases](../advanced/mithril-protocol/protocol.md)
4242
- [Certificate chain design](../advanced/mithril-protocol/certificates.md)
4343
- [Protocol security](../advanced/mithril-protocol/security.md)
44-
- [Threat model analysis](../advanced/threat-model.md)
44+
- [Threat model analysis](../advanced/threat-model.md).
4545
- Mithril network
4646
- [Architecture](../advanced/mithril-network/architecture.md)
4747
- [Mithril aggregator](../advanced/mithril-network/aggregator.md)
4848
- [Mithril signer](../advanced/mithril-network/signer.md)
49-
- [Mithril client](../advanced/mithril-network/client.md)
49+
- [Mithril client](../advanced/mithril-network/client.md).

docs/website/root/mithril/intro.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,21 @@ If you're new to Mithril, see the ‘Beginner' explainers:
1313

1414
- [Mithril in a nutshell](./beginner/mithril-in-a-nutshell.md)
1515
- [Why should you use Mithril?](./beginner/why-use-mithril.md)
16-
- [How it works](./beginner/how-it-works.md)
16+
- [How it works](./beginner/how-it-works.md).
1717

1818
To dive deeper into advanced topics, see:
1919

2020
- [Mithril protocol](./advanced/mithril-protocol/README.mdx)
2121
- [Mithril network](./advanced/mithril-network/README.mdx)
2222
- [Mithril security](./advanced/mithril-protocol/security.md)
23-
- [Threat model analysis](./advanced/threat-model.md)
23+
- [Threat model analysis](./advanced/threat-model.md).
2424

2525
:::tip
2626

2727
If you need help, feel free to reach out to the Mithril team:
2828

2929
- [GitHub discussions](https://github.com/input-output-hk/mithril/discussions)
3030

31-
- [Stack Exchange](https://cardano.stackexchange.com/search?q=mithril)
31+
- [Stack Exchange](https://cardano.stackexchange.com/search?q=mithril).
3232

3333
:::

0 commit comments

Comments
 (0)