Skip to content

Commit cfd5639

Browse files
committed
Update system description in threat model
This should characterize the latest protocol design (linear leios) sufficiently for the threat model.
1 parent 2446b1d commit cfd5639

File tree

1 file changed

+24
-25
lines changed

1 file changed

+24
-25
lines changed

docs/threat-model.md

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,54 @@
11
---
22
Authors: Sebastian Nagel
33
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
77
---
8+
89
# Leios Consensus Upgrade - Threat Model
910

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.
1112

1213
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).
1314

1415
## System Overview
1516

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-
1917
### 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.
2120

2221
### Key Components
2322

2423
#### 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)
2828
- **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
3029

3130
#### 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
3332
- **Chain Sync Protocol**: Existing protocol for tracking block headers of currently selected chain, served downstream
3433
- **Block Fetch Protocol**: Existing protocol for downloading blocks, served downstream
3534
- **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
3837
- **Vote Diffusion Protocol**: New protocol for propagating votes on EBs, served downstream
3938

4039
#### 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
4443

4544
#### 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.
5352

5453
## Assets to Protect
5554

0 commit comments

Comments
 (0)