5

Does Casper FFG in phase 0 take its checkpoints from the current ETH 1.0 POW chain?

I'm reading some conflicting material on this. The Casper FFG paper describes taking a checkpoint at every 50 POW blocks - has this changed? Blocks on POW chain are created every 12 - 15 seconds, so 50 blocks is ~ 60 - 75 seconds, but it will take 2 checkpoints ( 120 - 150 seconds) to finalize a transaction. So is this the case? Will it take 2 minutes for my transaction to finalize with Casper FFG POS?

1
+200

{1} First hybrid Casper FFG paper: https://arxiv.org/abs/1710.09437

{2} New hybrid Casper FFG overview paper: https://arxiv.org/abs/1903.04205

{3} EIP1001 (also specifies constants): https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1011.md

Thank you for this interesting questions, during the creation of the answer I have learned a lot.


1. Does Casper FFG in phase 0 take its checkpoints from the current ETH 1.0 POW chain?

yes section 2.0 first sentence, in first phase it will be a hybrid chain, during which casper operates on the old POW chain {1}.

Within Ethereum, the proposal mechanism will initially be the existing proof of work chain, making the first version of Casper a hybrid PoW/PoS system. In future versions the PoW proposal mechanism will be replaced with something more efficient. For example, we can imagine converting the block proposal into a some kind of PoS round-robin block signing scheme.


2. The Casper FFG paper describes taking a checkpoint at every 50 POW blocks - has this changed?

Yes it has changed, in the initial paper they started of with 100 blocks, then EIP 1011 got released that suggested 50 block {3}.

EPOCH_LENGTH: 50 blocks

Since then one epoch, the time between checkpoints, equals 50 blocks. It is also stated that way in the new paper that delivers an overview of Casper FFG {2}.

l ∈ N denotes the epoch length: an epoch is defined as the contiguous sequence of blocks between two checkpoints, including the first but not the latter. Block 0 (which is also a checkpoint) denotes the genesis block. We will assume l = 50 thoughout this paper


3. Does it take 2 checkpoints ( 120 - 150 seconds) to finalize a transaction?

Note that each checkpoint only becomes "unrevertable" after it became finalized. Prequisites for that are that the checkpoint has a supermajority link (>2/3 POS votes based on staking amount) from a justified ancestor checkpoint (the first justified checkpoint is the genesis block) and additionally has a supermajority link to a direct child checkpoint. (The supermajority link to the ancestor checkpoint and the votes for the child checkpoint must be included at latest in the block associated with the child checkpoint.){1}

As far as I can tell, in the best case scenario this takes 2 epochs. In this case it will take 50-99 blocks (with EPOCH_LENGTH = 50 blocks) to finalize a checkpoint. The recent paper does support this statement {2}:

If correctly voting validators control more than 2/3 of the stake, then finalisation and hence, liveness are immediate.

They also include a graph in the paper, which plots how many epochs it will take in respect of the ratio of malicious voters. Just to give you some numbers, α denotes the honest voter ratio (in terms of staking amount) {2}:

for α = 0.33, 0,49, and 0.51, the number of epochs need for α-strong validators to resume finalisation is 3733, 2698, and 2546 respectively.


4. Will it take 2 minutes for my transaction to finalize with Casper FFG POS?

As long as Casper FFG operates on a hybrid PoW/PoS chain, it will take slightly more than the usual confirmation time. I think the confirmation time lies around 10-50 blocks, depending on the level of certainty the receiver of the funds wants to have. With hybrid Casper FFG, it will take 2 epochs = 100 blocks (with EPOCH_LENGTH = 50 blocks) {2}:

Finally, despite increasing security, the checkpoint mechanism does not reduce confirmation times (2 epochs = 100 blocks).

I think this is based on the fact that PoW forks of 50 or more blocks are extremely improbable (practically impossible).

If 1 block takes 14 seconds on average to mine, confirmation time will be around 100 * 14 seconds ≈ 23 minutes.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.