Skip to content

Commit 5b71a2c

Browse files
committed
docs: remove stacked rbs in eb-dag approach
1 parent 1933d24 commit 5b71a2c

File tree

5 files changed

+292
-256
lines changed

5 files changed

+292
-256
lines changed

docs/workshop/day-3-recap.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ Each of the following approaches describes a solution where an Input Block (IB)
3636
#### IB-to-RB Reference Approach
3737

3838
The simplified diagram below shows respective lower and upper bounds for selecting an RB as ledger state reference for IB validation - each showing the extreme ends of trading off latency for security. Realistically, both are not good choices and some RB such as tip-3 might be more suitable. Note, that even the tip-3 example would introduce on average a delay of 3×20s = 60s before a user could reference outputs from a previously submitted transaction.
39+
The figure below illustrates how one can select different degrees of latency using this IB-to-RB reference approach.
3940

4041
![RB Reference Approach](rb-reference.svg)
4142

@@ -48,17 +49,17 @@ Thus, we can define a new parameter to define stability for Leios which ranges b
4849

4950
![detailed](./rb-reference-detailed.svg)
5051

51-
This diagram shows the same ledger reference approach - pointing to RBs, but also includes EBs which have been hidden in the previous example for the stake of simplicity.
52+
This diagram shows the same ledger reference approach - IBs pointing to RBs, but also includes EBs which have been hidden in the previous example for the stake of simplicity. As a reminder EBs store IBs by reference.
5253

5354
##### 2. Different IB-to-RB references
5455

5556
![complex](./rb-reference-realistic.svg)
5657

57-
The above diagram displays a more realistic picture of different IBs referencing different RBs as their ledger state reference for validation.
58+
The above diagram displays a more realistic picture of IBs referencing different RBs as their ledger state reference for validation.
5859

5960
#### EB Reference Approach
6061

61-
The EB reference approach offers a middle ground between security and latency. Certified EBs (those that have received votes from a majority of stake) provide security guarantees with lower latency than the [RB-reference approach](#rb-reference-approach), as they indicate that enough nodes have seen and validated them. Several core variations of the EB reference approach were discussed:
62+
In the following context, when we refer to EBs, we implicitely mean certified EBs that have received votes from a majority of stake. The EB reference approach offers a middle ground between security and latency. Certified EBs provide security guarantees with lower latency than the [RB-reference approach](#rb-reference-approach), as they indicate that enough nodes have seen and validated them. Several variations of the EB reference approach were discussed:
6263

6364
##### 1. **EB Reference**
6465

@@ -71,26 +72,26 @@ Different to the [IB-to-RB referencing](#ib-to-rb-reference-approach), this appr
7172
We briefly discussed an alternative design choice, in which IBs reference an EB and an RB. However, that design would result in many ledger states that would need to be computed and was therefore dismissed as too expensive.
7273

7374
In this design, one gets a ledger state for each RB which gives a ledger state for each EB to be reused and IBs are validated with respect to that same state. On the contrary, due to EBs referencing an RB, there is still the same trade-off to be made as in the [IB-to-RB reference approach](#ib-to-rb-reference-approach) - having to chose more or less stable RBs for EBs resulting in higher latency or higher loss in EBs.
74-
75+
This scheme also doesn't handle edge cases well, such as two EBs being produced in parallel or within the same pipeline unless we include multiple EB certificates in RBs.
7576

7677
##### 2. **EB-Chain**
7778

78-
In this approach IBs reference an EB which itself may reference another EB, which creates this chain of EBs that anchors on some older RB reference. Thus, EBs may have an RB reference or another EB reference of an EB that has not made it into an RB yet (full Leios variant). RBs on the other hand can only exactly reference one certified EB. IBs reference one of these EBs.
79+
In this approach IBs reference an EB which itself may reference another EB, which creates this chain of EBs that anchors on some older RB reference. Thus, EBs may have an RB reference or another EB reference of an EB that has not made it into an RB yet (full Leios variant). RBs on the other hand can only exactly reference one certified EB. IBs reference one of these EBs. This solves for multiple EBs having been produced concurrently because one can be incoporated into an RB and the other temporarily orphaned one can be referenced by a new EB constructing a chain of EBs.
7980

80-
As a downside of this approach, it doesn't allow for EBs to reference one or more EBs. Therefore, it still has the same trade-off from the previous [IB-to-EB-to-RB](#1-ib-to-eb-to-rb-reference) approach, since these chains of EBs are anchored to RBs, which comes with this disadvantageous property of high latency, older stable RBs vs low latency, less stable RBs.
81+
This scheme still has the same trade-off from the previous [IB-to-EB-to-RB](#1-ib-to-eb-to-rb-reference) approach, since these chains of EBs are anchored to RBs, which comes with this disadvantageous property of high latency, older stable RBs vs low latency, less stable RBs.
8182

8283
![EB Chain Approach](eb-chain.svg)
8384

8485
##### 3. **EB-DAG**
8586

8687
The EB DAG approach represents a sophisticated approach that leverages a directed acyclic graph (DAG) structure of Endorsement Blocks (EBs) to achieve both low latency and strong security guarantees. In this design:
8788

88-
![EB Chain Approach](eb-dag.svg)
89-
9089
- EBs can reference one or more older EBs that haven't been referenced by other EBs yet
9190
- Ranking Blocks (RBs) reference exactly one EB
9291
- Input Blocks (IBs) reference one of these EBs
9392

93+
![EB Chain Approach](eb-dag.svg)
94+
9495
**Key Advantages:**
9596

9697
1. **Low Latency with Security**: By allowing EBs to reference other EBs directly, the system achieves low latency while maintaining security. This is because EBs don't need to wait for RBs to be produced, creating a more efficient validation pipeline.

docs/workshop/eb-dag-detailed.d2

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
...@styles
22

33
title: {
4-
label: "EB-DAG Approach"
4+
label: "EB-DAG"
55
near: top-center
66
style.font-size: 24
77
style.bold: true
@@ -192,8 +192,6 @@ EB7 -> EB6: "Ref" {
192192
class: to_eb_arrow
193193
}
194194

195-
# IB references
196-
197195
EB1 -> IB1: "Ref" {
198196
class: to_ib_arrow
199197
}
@@ -230,4 +228,42 @@ EB7 -> IB9: "Ref" {
230228
class: to_ib_arrow
231229
}
232230

231+
# IB references
232+
233+
IB1 -> chain.Genesis: "Ledger Ref" {
234+
class: ledger_link
235+
}
236+
237+
IB2 -> chain.Genesis: "Ledger Ref" {
238+
class: ledger_link
239+
}
240+
241+
IB3 -> EB1: "Ledger Ref" {
242+
class: ledger_link
243+
}
244+
245+
IB4 -> chain.Genesis: "Ledger Ref" {
246+
class: ledger_link
247+
}
248+
249+
IB5 -> EB2: "Ledger Ref" {
250+
class: ledger_link
251+
}
252+
253+
IB6 -> EB3: "Ledger Ref" {
254+
class: ledger_link
255+
}
256+
257+
IB7 -> EB5: "Ledger Ref" {
258+
class: ledger_link
259+
}
260+
261+
IB8 -> EB5: "Ledger Ref" {
262+
class: ledger_link
263+
}
264+
265+
IB9 -> EB6: "Ledger Ref" {
266+
class: ledger_link
267+
}
268+
233269
direction: left

0 commit comments

Comments
 (0)