1 of 102

A Fast Confirmation Rule

for the Ethereum Protocol

Aditya Asgaonkar

Offchain Labs

Francesco D’Amato

Ethereum Foundation

Roberto Saltini

Ethereum Foundation

Luca Zanolini

Ethereum Foundation

Chenyi Zhang

University of Canterbury

2 of 102

What is a Confirmation Rule?

3 of 102

Canonical Chain

  • In Ethereum we can have multiple chains.
  • The Canonical Chain is the chain that a validator believes to be the “official” one.
  • Different validators might have different canonical chains.

4 of 102

Block Confirmation

  • Safety Property: A confirmed block never conflicts with the canonical chain of any honest validators

B

v1’s�canonical

v2’s�canonical

v3’s�canonical

B

v2’s�canonical

v3’s�canonical

B

v2’s�canonical

v3’s�canonical

v1’s�canonical

v1’s�canonical

5 of 102

Why do we need a Fast Confirmation Rule?

6 of 102

Finalization is a (slow) Confirmation Rule

  • finalization = confirmation�To “unconfirm” it, > ⅓ of the stake needs to be slashable.
  • However,
    • 13 min in the best-case scenario
    • 16 min on average
  • Too long to wait for some use cases: small value transactions (paying for a coffee)
  • Bearable but less than ideal for others: moving funds to centralized exchanges

7 of 102

Dangerous Solution to Speed Up Confirmation

  • Possible Solutions
    • Rely on block depth
      • Block depth alone tells us very little
    • Rely on justification
      • Better that block depth, but still lacking information about confirmation

  • General Problem of the two solutions above
    • Undefined assumptions: Under which assumptions do those solutions work?

8 of 102

Fast Confirmation Rule’s Objectives

9 of 102

Our target

  • Fast confirmation: <= 3 slots�
  • Well-defined set of assumptions that need to hold for a confirmed blocks’ safety property to hold.

Safety Property: A confirmed block never conflicts with the canonical chain of any honest validators

10 of 102

Quick Recap of Gasper, the Ethereum’s Consensus Protocol

11 of 102

Gasper Consensus Protocol

  • Proof-of-Stake (PoS) consensus protocol.�
  • LMD-GHOST: A synchronous consensus protocol that determines the canonical chain.�
  • Casper FFG: A partially synchronous gadget that finalizes the blocks outputted by LMD-GHOST.

B0

B1

B2

B5

B6

B8

B7

B9

Finalized Chain by FFG-Casper

B4

Available Chains by LMD-GHOST

12 of 102

Gasper

0

13 of 102

LMD-GHOST Protocol

14 of 102

LMD-GHOST Protocol

15 of 102

LMD-GHOST Protocol

16 of 102

LMD-GHOST Fork-Choice function

17 of 102

LMD-GHOST Fork-Choice function

18 of 102

LMD-GHOST Fork-Choice function

V1

V1

19 of 102

LMD-GHOST Fork-Choice function

V1

V1

20 of 102

A Fast Confirmation Rule Algorithm

for LMD-GHOST

21 of 102

Assumptions

  • LMD-GHOST votes sent by honest validator are delivered by the end of a slot

V1

V2

22 of 102

Assumptions

  • LMD-GHOST votes are delivered by the end of a slot
  • Max fraction β of the stake of any set of committees is dishonest

V1

V2

s1

s2

s3

s4

s5

s6

s7

😈 β * total_stake

😇 ≥ (1-β) * total_stake

23 of 102

A Confirmation Rule for Ethereum is about LMD-GHOST weight, not chain depth.

B10

B11

24 of 102

A Confirmation Rule for Ethereum is about LMD-GHOST weight, not chain depth.

B10

B11

Assume that this block is canonical

25 of 102

A Confirmation Rule for Ethereum is about LMD-GHOST weight, not chain depth.

B10

B11

Assume that this block is canonical

β = 0.2

26 of 102

A Confirmation Rule for Ethereum is about LMD-GHOST weight, not chain depth.

B10

B11

Assume that this block is canonical

β = 0.2

W = 100

27 of 102

A Confirmation Rule for Ethereum is about LMD-GHOST weight, not chain depth.

B10

B11

S(B11) > W * (½+β)

Assume that this block is canonical

W = 100

β = 0.2

28 of 102

A Confirmation Rule for Ethereum is about LMD-GHOST weight, not chain depth.

B10

B11

S(B11) > W * (½+β)

S(B11) > 100 * 0.7

S(B11) > 70

S(B11) = 71

Assume that this block is canonical

W = 100

β = 0.2

29 of 102

A Confirmation Rule for Ethereum is about LMD-GHOST weight, not chain depth.

B10

B11

S(B11) > W * (½+β)

S(B11) > 100 * 0.7

S(B11) > 70

S(B11) = 71

Assume that this block is canonical

W = 100

β = 0.2

B12

S(B12) < W * ½

30 of 102

A Confirmation Rule for Ethereum is about LMD-GHOST weight, not chain depth.

B10

B11

S(B11) > W * (½+β)

S(B11) > 100 * 0.7

S(B11) > 70

S(B11) = 71

Assume that this block is canonical

W = 100

β = 0.2

B12

S(B12) < W * ½

S(B12) < 100 * 0.5

S(B12) < 50

S(B12) = 49

31 of 102

A Confirmation Rule for Ethereum is about LMD-GHOST weight, not chain depth.

B10

B11

S(B11) > W * (½+β)�

S(B11) = 71-20=51

Assume that this block is canonical

W = 100

β = 0.2

B12

S(B12) < W * ½

S(B12) < 100 * 0.5

S(B12) < 50

S(B12) = 49

β equivocates

32 of 102

A Confirmation Rule for Ethereum is about LMD-GHOST weight, not chain depth.

B10

B11

S(B11) > W * (½+β)�

S(B11) = 71-20=51

Assume that this block is canonical

W = 100

β = 0.2

B12

S(B12) < W * ½

S(B12) < 100 * 0.5

S(B12) < 50

S(B12) = 49

β equivocates

🏆

33 of 102

What about when we move to the next slot?

B10

B11

S(B11) = 51

Assume that this block is canonical

β = 0.2

B12

34 of 102

What about when we move to the next slot?

B10

B11

S(B11) = 51+80 = 131

Assume that this block is canonical

W = 200

β = 0.2

B12

B13

S(B13) = 80

35 of 102

What about when we move to the next slot?

B10

B11

S(B11) = 51+80 = 131

Assume that this block is canonical

W = 200

β = 0.2

B12

B13

S(B13) = 80

  • S(B11) = 131

36 of 102

What about when we move to the next slot?

B10

B11

S(B11) = 51+80 = 131

Assume that this block is canonical

W = 200

β = 0.2

B12

B13

S(B13) = 80

  • S(B11) = 131
  • W * (½ + β) = 200 * 0.7 = 140

37 of 102

What about when we move to the next slot?

B10

B11

S(B11) = 51+80 = 131

Assume that this block is canonical

W = 200

β = 0.2

B12

B13

S(B13) = 80

  • S(B11) = 131
  • W * (½ + β) = 200 * 0.7 = 140
  • S(B11) < W * (½ + β)

38 of 102

What about when we move to the next slot?

B10

B11

S(B11) = 51+80 = 131

Assume that this block is canonical

W = 200

β = 0.2

B12

B13

S(B13) = 80

  • S(B11) = 131
  • W * (½ + β) = 200 * 0.7 = 140
  • S(B11) < W * (½ + β) 🤔

Is B11 still going to be canonical for ever?

39 of 102

What about when we move to the next slot?

B10

B11

S(B11) = 51+80 = 131

Assume that this block is canonical

W = 200

β = 0.2

B12

B13

S(B13) = 80

  • S(B11) = 131
  • W * (½ + β) = 200 * 0.7 = 140
  • S(B11) < W * (½ + β) 🤔

Is B11 still going to be canonical for ever?

Yes. It is.�But to prove it we need to do something clever!

40 of 102

Let us assume we know who is honest

B10

B11

Assume that this block is canonical

W = 100

β = 0.2

41 of 102

Let us assume we know who is honest

B10

B11

H(B11)

Assume that this block is canonical

W = 100

β = 0.2

J = 80

Stake of the honest validators supporting B11

Stake of the honest validators in the committee

42 of 102

Let us assume we know who is honest

B10

B11

H(B11) > W * ½

Assume that this block is canonical

W = 100

β = 0.2

J = 80

Stake of the honest validators in the committee

43 of 102

Let us assume we know who is honest

B10

B11

H(B11) > W * ½

Assume that this block is canonical

W = 100

β = 0.2

J = 80

Stake of the honest validators in the committee

Never equivocate

44 of 102

Let us assume we know who is honest

B10

B11

H(B11) > W * ½

H(B11) > J * ½ * / (1-β)

Assume that this block is canonical

W = 100

β = 0.2

J = 80

Stake of the honest validators in the committee

45 of 102

Let us assume we know who is honest

B10

B11

H(B11) > W * ½

H(B11) > J * ½ * / (1-β)

Assume that this block is canonical

W = 100

β = 0.2

J = 80

Stake of the honest validators in the committee

Implies

J ≥ (1-β) * W

46 of 102

Let us assume we know who is honest

B10

B11

H(B11) > W * ½

H(B11) > J * ½ / (1-β)

H(B11) > 80 * 0.5 /0.8 = 50

H(B11) > 50

H(B11) = 51

Assume that this block is canonical

W = 100

β = 0.2

J = 80

Stake of the honest validators in the committee

Implies

47 of 102

Let us assume we know who is honest

B10

B11

H(B11) > W * ½

H(B11) > J * ½ / (1-β)

H(B11) > 80 * 0.5 * 1/0.8

H(B11) > 50

H(B11) = 51

Assume that this block is canonical

W = 100

β = 0.2

J = 80

Stake of the honest validators in the committee

Implies

P(B11) := H(B11)/J = 51/80

48 of 102

Let us assume we know who is honest

B10

B11

H(B11) > W * ½

H(B11) > J * ½ / (1-β)

H(B11) > 80 * 0.5 * 1/0.8

H(B11) > 50

H(B11) = 51

Assume that this block is canonical

W = 100

β = 0.2

J = 80

Stake of the honest validators in the committee

Implies

P(B11) := H(B11)/J = 51/80 0.63 > ½ / (1-β) = 0.625

49 of 102

What happens at the next slot?

B10

B11

H(B11) = 51

Assume that this block is canonical

W = 200

β = 0.2

J = 160

B13

50 of 102

What happens at the next slot?

B10

B11

H(B11) = 51 + 80 = 131

Assume that this block is canonical

W = 200

β = 0.2

J = 160

B13

H(B13) = 80

51 of 102

What happens at the next slot?

B10

B11

H(B11) = 51 + 80 = 131

Assume that this block is canonical

W = 200

β = 0.2

J = 160

P(B11) = H(B11)/J = 131/160 0.81

B13

H(B13) = 80

52 of 102

What happens at the next slot?

B10

B11

H(B11) = 51 + 80 = 131

Assume that this block is canonical

W = 200

β = 0.2

J = 160

P(B11) = H(B11)/J = 131/160 0.81 > ½ / (1-β) = 0.625

B13

H(B13) = 80

🎉

53 of 102

What happens at the next slot?

B10

B11

H(B11) = 51 + 80 = 131

Assume that this block is canonical

W = 200

β = 0.2

J = 160

P(B11) = H(B11)/J = 131/160 0.81 > ½ / (1-β) = 0.625

B13

H(B13) = 80

🎉

H(B11) > W * ½

54 of 102

What happens if the next slot is in a new epoch?

B10

B11

H(B11) = 51

Assume that this block is canonical

β = 0.2

J = 80

55 of 102

What happens if the next slot is in a new epoch?

B10

B11

H(B11) = 51

Assume that this block is canonical

β = 0.2

J = 80+X

B13

New epoch

X new honest nodes are added to the committee of block B13

56 of 102

What happens if the next slot is in a new epoch?

B10

B11

H(B11) ≥ 51 + X

Assume that this block is canonical

β = 0.2

J = 80+X

B13

H(B13) = 80

New epoch

X new honest stake is added to the committee of block B13.�

At least the X new honest stake is added to the support of B11

57 of 102

What happens if the next slot is in a new epoch?

B10

B11

H(B11) ≥ 51 + X

Assume that this block is canonical

β = 0.2

J = 80+X

B13

H(B13) = 80

New epoch

X new honest nodes are added to the committee of block B13

P(B11) = H(B11)/J (51 + X) / (80 + X)

58 of 102

What happens if the next slot is in a new epoch?

B10

B11

H(B11) ≥ 51 + X

Assume that this block is canonical

β = 0.2

J = 80+X

B13

H(B13) = 80

New epoch

X new honest nodes are added to the committee of block B13

Add X to both numerator and denominator

P(B11) = H(B11)/J (51 + X) / (80 + X)

59 of 102

What happens if the next slot is in a new epoch?

B10

B11

H(B11) ≥ 51 + X

Assume that this block is canonical

β = 0.2

J = 80+X

B13

H(B13) = 80

New epoch

X new honest nodes are added to the committee of block B13

Add X to both numerator and denominator

P(B11) = H(B11)/J (51 + X) / (80 + X) ≥ 51 / 80

60 of 102

What happens if the next slot is in a new epoch?

B10

B11

H(B11) ≥ 51 + X

Assume that this block is canonical

β = 0.2

J = 80+X

B13

H(B13) = 80

New epoch

X new honest nodes are added to the committee of block B13

Add X to both numerator and denominator

P(B11) = H(B11)/J (51 + X) / (80 + X) ≥ 51 / 80 ⪆ 0.63 > ½ / (1-β) = 0.625

🎉

61 of 102

What happens if the next slot is in a new epoch?

B10

B11

H(B11) = 51 + X

Assume that this block is canonical

β = 0.2

J = 80+X

P(B11) = H(B11)/J = (51 + X) / (80 + X) ≥ 51 / 80 > ½ * (1/(1-β)) = 0.625

B13

H(B13) = 80

New epoch

X new honest nodes are added to the committee of block B13

Honest Support for B11= J

  • P(B11) never decreases�
  • P(B11) > ½ / (1-β) �means B11 is canonical forever

62 of 102

How do we measure P(B11)

63 of 102

How do we measure P(B11)

S(B11) / W > ½ + β

P(B11) = H(B11) / J > ½ / (1-β)

Implies

64 of 102

How do we measure P(B11)

S(B11) / W > ½ + β

H(B11) / J > ½ * 1/(1-β)

Implies

  • Q(B11) := S(B11)/W > ½ + β�
  • implies P(B11) := H(B11)/J > ½ / (1-β)�
  • which means B11 is canonical forever

65 of 102

What about B10 and the other blocks?

B10

B11

B9

F

Latest Finalized Block

66 of 102

What about B10 and the other blocks?

B10

B11

B9

👍

Q(B11) > ½+β?

F

Latest Finalized Block

67 of 102

What about B10 and the other blocks?

B10

B11

B9

👍

Q(B10) > ½+β?

👍

Q(B11) > ½+β?

F

Latest Finalized Block

68 of 102

What about B10 and the other blocks?

B10

B11

B9

👍

Q(B9) > ½+β?

👍

Q(B10) > ½+β?

👍

Q(B11) > ½+β?

F

Latest Finalized Block

69 of 102

A Fast Confirmation Rule for�LMD + FFG = Gasper

70 of 102

FFG-Casper and LMD-GHOST

3

1

B0

B1

B2

B5

B6

B8

B7

B9

Finalized Chain

by

FFG-Casper

FFG Votes

0

B4

Available Chains

by

LMD-GHOST

2

B5

71 of 102

FFG-Casper and LMD-GHOST

3

1

B0

B1

B2

B5

B6

B8

B7

B9

Finalized Chain

by

FFG-Casper

FFG Votes

0

B4

Available Chains

by

LMD-GHOST

2

B5

Latest Justified

72 of 102

FFG-Casper and LMD-GHOST

3

1

B0

B1

B2

B5

B6

B8

B7

B9

Finalized Chain

by

FFG-Casper

FFG Votes

0

B4

Available Chains

by

LMD-GHOST

2

B5

FFG Votes are included in blocks

FFG Votes are included in blocks

FFG Votes are included in blocks

FFG Votes are included in blocks

FFG Votes are included in blocks

FFG Votes are included in blocks

Latest Justified

73 of 102

FFG-Casper and LMD-GHOST

3

1

B0

B1

B2

B5

B6

B8

B7

B9

Finalized Chain

by

FFG-Casper

FFG Votes

0

B4

Available Chains

by

LMD-GHOST

2

B5

FFG Votes are included in blocks

FFG Votes are included in blocks

FFG Votes are included in blocks

FFG Votes are included in blocks

FFG Votes are included in blocks

FFG Votes are included in blocks

justified(B9) = justified checkpoint according to the FFG votes in the chain of B9

Latest Justified

74 of 102

FFG-Casper and LMD-GHOST

3

1

B0

B1

B2

B5

B6

B8

B7

B9

Finalized Chain

by

FFG-Casper

FFG Votes

0

B4

Available Chains

by

LMD-GHOST

2

B5

FFG Votes are included in blocks

FFG Votes are included in blocks

FFG Votes are included in blocks

FFG Votes are included in blocks

FFG Votes are included in blocks

FFG Votes are included in blocks

Latest Justified

75 of 102

FFG-Casper and LMD-GHOST

3

1

B0

B1

B2

B5

B6

B8

B7

B9

Finalized Chain

by

FFG-Casper

FFG Votes

0

B4

Available Chains

by

LMD-GHOST

2

B5

FFG Votes are included in blocks

FFG Votes are included in blocks

FFG Votes are included in blocks

FFG Votes are included in blocks

76 of 102

FFG-Casper and LMD-GHOST

3

1

B0

B1

B2

B5

B6

B8

B7

B9

Finalized Chain

by

FFG-Casper

FFG Votes

0

B4

Available Chains

by

LMD-GHOST

2

B5

77 of 102

FFG-Casper and LMD-GHOST

3

1

B0

B1

B2

B5

B6

B8

B7

B9

Finalized Chain

by

FFG-Casper

FFG Votes

0

B4

Available Chains

by

LMD-GHOST

2

  1. LMD-GHOST FC starts from here

B5

Latest Justified

78 of 102

FFG-Casper and LMD-GHOST

3

1

B0

B1

B2

B5

B6

B8

B7

B9

Finalized Chain

by

FFG-Casper

FFG Votes

0

B4

Available Chains

by

LMD-GHOST

2

  • LMD-GHOST FC starts from here

  • Some branches are removed (filtered out)

B5

Latest Justified

79 of 102

FFG-Casper and LMD-GHOST

3

1

B0

B1

B2

B5

B6

B8

B7

B9

Finalized Chain

by

FFG-Casper

FFG Votes

0

B4

Available Chains

by

LMD-GHOST

2

  • LMD-GHOST starts from here

  • Some branches are removed (filtered out)

B5

Latest Justified

  • LMD-GHOST Fork-Choice

80 of 102

FFG-Casper and LMD-GHOST

3

1

B0

B1

B2

B5

B6

B8

B7

B9

Finalized Chain

by

FFG-Casper

FFG Votes

0

B4

Available Chains

by

LMD-GHOST

2

  • LMD-GHOST starts from here

  • Some branches are removed (filtered out)

B5

Latest Justified

  • LMD-GHOST Fork-Choice

Confirmation Rule:�

  • isLMDConfirmed(B)�
  • B is not filtered out when considering Casper-FFG�

81 of 102

Final rule

  • isLMDConfirmed(B)�
  • B is not filtered out when considering Casper-FFG�
    • epoch(Justified(B)) = current_epoch - 1

B is not filtered out in the current epoch

82 of 102

Final rule

  • isLMDConfirmed(B)�
  • B is not filtered out when considering Casper-FFG�
    • epoch(Justified(B)) = current_epoch - 1�
    • FFG_votes(checkpoint(B)) �- β * committee_stake ([first_slot_epoch, …, current_slot])�+ (1-β) * committee_stake ([current_slot+1, …, last_slot_epoch])�≥ ⅔ total_stake�

B is not filtered out in the current epoch

B is not filtered out in any future epoch

83 of 102

Final rule

  • isLMDConfirmed(B)�
  • B is not filtered out when considering Casper-FFG�
    • epoch(Justified(B)) = current_epoch - 1�
    • FFG_votes(checkpoint(B)) �- β * committee_stake ([first_slot_epoch, …, current_slot])�+ (1-β) * committee_stake ([current_slot+1, …, last_slot_epoch])�≥ ⅔ total_stake�

Minimum stake that FFG votes for checkpoint(B) up until the current slot

84 of 102

Final rule

  • isLMDConfirmed(B)�
  • B is not filtered out when considering Casper-FFG�
    • epoch(Justified(B)) = current_epoch - 1�
    • FFG_votes(checkpoint(B)) �- β * committee_stake ([first_slot_epoch, …, current_slot])�+ (1-β) * committee_stake ([current_slot+1, …, last_slot_epoch])�≥ ⅔ total_stake�

Minimum stake that FFG votes for checkpoint(B) up until the current slot

Minimum stake that FFG votes for checkpoint(B) from next slot till the end of the epoch

85 of 102

Final rule

  • isLMDConfirmed(B)�
  • B is not filtered out when considering Casper-FFG�
    • epoch(Justified(B)) = current_epoch - 1�
    • FFG_votes(checkpoint(B)) �- β * committee_stake ([first_slot_epoch, …, current_slot])�+ (1-β) * committee_stake ([current_slot+1, …, last_slot_epoch])�≥ ⅔ total_stake�

Minimum stake that FFG votes for checkpoint(B) up until the current slot

Minimum required FFG stake to justify checkpoint(B)

Minimum stake that FFG votes for checkpoint(B) from next slot till the end of the epoch

86 of 102

There is more to Safety: Monotonicity

87 of 102

What we mean by Monotonicity

at s0, Q(B) = S(B)/W > ½ + β Confirmed(B) = True

at s10, Q(B) = S(B)/W < ½ + β Confirmed(B) = False

Some time after..

🤔

Is B at risk of being re-orged out?

88 of 102

What we mean by Monotonicity

  • Safety: A confirmed block never conflicts with the canonical chain of any honest validators
  • Monotonicity: Once a block B is confirmed at a given time, it will remain confirmed at all future times.

89 of 102

Naive Solutions

Users query for confirmation only once and then remember the result

What if there is an actual network partition?��Wouldn’t it be better for users to have a way to detect that a block is actually not safe anymore?

90 of 102

First Challenge - The indicator Q is NOT monotonic

The indicator Q is not monotonic.

91 of 102

Solution for the current epoch

  1. Keep track of the longest confirmed chain since the beginning of the current epoch
  2. Confirm any of its ancestors

Trade off:

This require moving the assumption on network synchrony to the beginning of the current epoch.

92 of 102

Solution for the previous and current epoch:

  • Keep track of the longest confirmed chain since the beginning of the previous epoch
  • Confirm any of its ancestors

Trade off:

This require moving the assumption on network synchrony to the beginning of the previous epoch.

93 of 102

What happens when the next epoch ends?

B

C(B)

B

B is confirmed

B is “forced” to be confirmed until here

B is confirmed only if one if its descendant is confirmed, e.g. B

e

e + 1

e + 2

94 of 102

What happens when the next epoch ends?

B

C(B)

C

B is confirmed

There exists a checkpoint descendant of B that is confirmed

if B is confirmed in epoch e, then by the end of epoch e+1, there exists a checkpoint C such that

  1. C is descendant of B
  2. epoch(C)= e+1
  3. C(B) is justified in a chain where C is a checkpoint
  4. C has received enough attestations so that block(C) is confirmed

epoch e

epoch e+1

e

e + 1

e + 2

95 of 102

What happens when the next epoch ends?

B

C(B)

C

B is confirmed

There exists a checkpoint descendant of B that is confirmed

if B is confirmed in epoch e, then by the end of epoch e+1, there exists a checkpoint C such that

  • C is descendant of B
  • epoch(C)= e+1
  • C(B) is justified in a chain where C is a checkpoint
  • C has received enough attestations so that block(C) is confirmed

epoch e

epoch e+1

Ratio of honest validators that have attested for C

96 of 102

A Final Note

The previous assumption is required because it is very hard to access FFG votes older than 2 epochs.

Otherwise, we could just check for any past epoch that it is impossible to justify any checkpoint conflicting with B

97 of 102

Initial Experimental Results

98 of 102

Initial Experimental Results by

Setup

  • Run the Confirmation Rule over 6 days
  • 56 blocks were detected as re-orged, including a 2-block re-org.
  • Confirmation Rule executed by polling a Beacon Node at 10s intervals, rather than executing it at the beginning of each slot
  • FFG weight estimated from LDM weight

Blog post here!

99 of 102

Initial Experimental Results by

Setup

  • Run the Confirmation Rule over 6 days
  • 56 blocks were detected as re-orged, including a 2-block re-org.
  • Confirmation Rule executed by polling a Beacon Node at 10s intervals, rather than executing it at the beginning of each slot
  • FFG weight estimated from LDM weight
  • None of the re-orged blocks were confirmed under the rule, no matter how the adversarial thresholds were tuned.

Results

100 of 102

Initial Experimental Results by

Setup

  • Run the Confirmation Rule over 6 days
  • 56 blocks were detected as re-orged, including a 2-block re-org.
  • Confirmation Rule executed by polling a Beacon Node at 10s intervals, rather than executing it at the beginning of each slot
  • FFG weight estimated from LDM weight
  • None of the re-orged blocks were confirmed under the rule, no matter how the adversarial thresholds were tuned.

Results

101 of 102

Initial Experimental Results by

Setup

  • Run the Confirmation Rule over 6 days
  • 56 blocks were detected as re-orged, including a 2-block re-org.
  • Confirmation Rule executed by polling a Beacon Node at 10s intervals, rather than executing it at the beginning of each slot
  • FFG weight estimated from LDM weight
  • None of the re-orged blocks were confirmed under the rule, no matter how the adversarial thresholds were tuned.

Results

If implemented directly into a beacon node,�

we expect ≅ 12 sec�

102 of 102

Thank You!

If you are interested in implementing this Fast Confirmation Rule, please get in touch!�� @robsaltini��