|
1 | 1 | ---
|
2 | 2 | Authors: Sebastian Nagel
|
3 | 3 | Status: Draft
|
4 |
| -Version: 0.1 |
5 |
| -Last Updated: 2025-07-17 |
6 |
| -Next Review: 2025-09-10 |
| 4 | +Version: 0.2 |
| 5 | +Last Updated: 2025-08-05 |
| 6 | +Next Review: 2025-10-05 |
7 | 7 | ---
|
| 8 | + |
8 | 9 | # Leios Consensus Upgrade - Threat Model
|
9 | 10 |
|
10 |
| -A threat model for the Leios consensus change for Cardano. This was created by roughly following the [OWASP threat modeling process](https://owasp.org/www-community/Threat_Modeling_Process). |
| 11 | +A threat model for the Linear Leios consensus change for Cardano. This reflects the simplified "Linear Leios" variant described in the CIP draft, which eliminates Input Blocks (IBs) and produces Endorser Blocks (EBs) alongside Ranking Blocks (RBs) by the same block producer. |
11 | 12 |
|
12 | 13 | See also [the threat model section in Leios Technical Report #1](./technical-report-1.md#threat-model) and more [comments on attack surface in Leios Technical Report #2](./technical-report-2.md#notes-on-the-leios-attack-surface).
|
13 | 14 |
|
14 | 15 | ## System Overview
|
15 | 16 |
|
16 |
| -> [!NOTE] |
17 |
| -> The described system here is the heavily simplified EB-only variant of Leios. Whenever we update this, reflect on existing assets, threats and mitigations, as well as add new ones accordingly. |
18 |
| -
|
19 | 17 | ### Description
|
20 |
| -Leios is an overlay protocol on top of Ouroboros Praos that enhances transaction throughput by introducing Endorser Blocks (EBs) alongside regular Praos blocks (Ranking Blocks - RBs). The system maintains backward compatibility at the client interface while introducing new responsibilities for stake pools. |
| 18 | + |
| 19 | +Leios is an overlay protocol on top of Ouroboros Praos that enhances transaction throughput by allowing block producers to create larger Endorser Blocks (EBs) alongside standard Praos blocks (enhanced as Ranking Blocks - RBs). The system maintains backward compatibility while introducing new responsibilities for stake pools. |
21 | 20 |
|
22 | 21 | ### Key Components
|
23 | 22 |
|
24 | 23 | #### Entities
|
25 |
| -- **Mempool**: List of valid, pending transactions that could be added to the chain. Limited in size |
26 |
| -- **Ranking Block (RB)**: Standard Praos block enhanced with a Leios certificate. Limited in size |
27 |
| -- **Endorser Block (EB)**: New block type that references transactions for inclusion. May be substantially bigger than Praos blocks (currently on mainnet ~88 kB) with sizes around ~640 kB for 20k transaction references |
| 24 | + |
| 25 | +- **Mempool**: List of valid, pending transactions that could be added to the chain. Expanded capacity to support both RB and EB production |
| 26 | +- **Ranking Block (RB)**: Standard Praos block enhanced with Leios certificate and EB announcement fields. Limited to current mainnet size (~88 kB) |
| 27 | +- **Endorser Block (EB)**: New block type that references transactions for inclusion. May be substantially larger (~640 kB for 20k transaction references) |
28 | 28 | - **Leios Certificate**: Cryptographic proof about aggregated stake-weighted votes on EB validity and transaction availability
|
29 |
| -- **EB Lottery**: Separate (to Praos) VRF lottery for EB creation rights |
30 | 29 |
|
31 | 30 | #### Network Protocols
|
32 |
| -- **Transaction Submission Protocol**: Existing protocol to announce and fetch transactions, served upstream |
| 31 | +- **Transaction Submission Protocol**: Existing protocol, unchanged except for expanded mempool capacity, served upstream |
33 | 32 | - **Chain Sync Protocol**: Existing protocol for tracking block headers of currently selected chain, served downstream
|
34 | 33 | - **Block Fetch Protocol**: Existing protocol for downloading blocks, served downstream
|
35 | 34 | - **EB Announcement Protocol**: New protocol to gossip EB existence, served downstream
|
36 |
| -- **EB Fetch Protocol**: New protocol for retrieving EBs, served downstream |
37 |
| -- **Transaction Fetch Protocol**: New protocol for retrieving endorsed transactions, served downstream |
| 35 | +- **EB Fetch Protocol**: New protocol for retrieving EBs on-demand, served downstream |
| 36 | +- **Transaction Fetch Protocol**: New protocol for retrieving transactions referenced by EBs, served downstream |
38 | 37 | - **Vote Diffusion Protocol**: New protocol for propagating votes on EBs, served downstream
|
39 | 38 |
|
40 | 39 | #### Roles
|
41 |
| -- **Block Producers**: Produce blocks, now enhanced with EB creation and voting responsibilities |
42 |
| -- **Relays**: Participate in transaction and block diffusion |
43 |
| -- **Clients**: Submit transactions and observe the chain / ledger state evolving, ideally maintain backward compatibility and may largely unaware of Leios mechanics |
| 40 | +- **Block Producers**: Produce RBs and simultaneously create EBs, participate in voting |
| 41 | +- **Relays**: Participate in transaction, block, and vote diffusion |
| 42 | +- **Clients**: Submit transactions and observe ledger state, maintain backward compatibility |
44 | 43 |
|
45 | 44 | #### System Flow
|
46 |
| -1. Clients submit transactions, which get added to the mempool and diffuse through the Cardano network |
47 |
| -1. Stake pools create EBs based on VRF eligibility (parameterizable stage length) |
48 |
| -1. EBs are announced and propagated through the network |
49 |
| -1. A committee of nodes (> 500 by stake) vote on EB validity and transaction availability |
50 |
| -1. If a quorum of voting stake (> 60%) approves, a certificate is created |
51 |
| -1. Certificates are included in the next available RB (every ~20 seconds) |
52 |
| -1. Missing transactions are fetched on-demand when EBs are processed |
| 45 | +1. **Block Production**: When eligible, stake pools simultaneously create an RB (announcing an EB) and the corresponding EB |
| 46 | +2. **EB Distribution**: EBs are discovered via RB headers and fetched by nodes |
| 47 | +3. **Committee Validation**: Selected voting committee validates EBs |
| 48 | +4. **Certification**: EBs achieving quorum (>60% voting stake) become certified |
| 49 | +5. **Chain Inclusion**: Certificates are included in subsequent RBs, making referenced transactions part of the ledger |
| 50 | + |
| 51 | +See also the [CIP draft](https://github.com/input-output-hk/ouroboros-leios/pull/396) for a more detailed specification. |
53 | 52 |
|
54 | 53 | ## Assets to Protect
|
55 | 54 |
|
|
0 commit comments