RFC for Emmy*

RFC for “Faster Finality with Emmy*”


How can I read that formatted?

It’s now written without TeX expressions, and it can be read formatted here.

this things should also be explained on a ELI5 level so the average crypto joe would understand.

How does it differ from Tenderbake?

Emmy* is just a variant of Emmy+ that offers faster finality.

Emmy+ and Emmy* (like Bitcoin and Ouroboros) only ensure probabilistic finality, and only when the network is synchronous. While Tenderbake (like Tendermint, Hotstuff, Streamlet, Casper FFG and many others) ensures deterministic finality even when the network is asynchronous.

Concerning probabilistic/deterministic finality: assuming an attacker that has less than a third of the total stake, in Emmy+/Emmy* after a few confirmations (depending on how much stake the attacker actually has) a block is final with high probability (but not with 100% certainty); while in Tenderbake, after exactly 1 confirmation (regardless of the exact value of the stake fraction the attacker has) a block is final with 100% certainty. (At least that’s the theory.)

Concerning network synchrony: Assume that the network is partitioned for 1 day, meaning that during this time the synchrony assumption is not satisfied, the network is asynchronous. Then there will be a fork: the nodes in one partition will be on one branch, the nodes in the other partition will be on a different branch. The branches still grow, though more slowly than normally: blocks would be delayed, because they would have fewer endorsements (and not necessarily priority 0), but new blocks would still be produced. And the estimation on the number of confirmations required would probably be wrong. When the network partition resolves, all nodes adopt the longer branch, and all blocks in the shorter branch are discarded, so the finality property is lost. However, in Tenderbake, assuming the partitions are big enough, no new block will be finalized and the chain does not advance anymore until the partition resolves, so the finality property is trivially satisfied.


I see a lot of work on Gitlab on Tenderbake.
So, just for clarity, will Emmy* be somehow integrated into Tenderbake or is it going to be an intermediate step between Emmy+ and Tenderbake?

Emmy+/Emmy* and Tenderbake are very different.
However, Emmy* allows to smoothly move to a higher block frequency without changing the consensus algorithm too much.
So Emmy* may be seen as an intermediate step only chronologically, not technically.