Daniel larimer
https://github.com/EOSIO/eos/issues/2718
Vitalik buterin
This does not seem to actually be safe. Consider a case with four validators, so we are allowed one byzantine. Suppose before time T the commonly agreed head is Z; then, at times (T, T+1, T+2, T+3), validators (A, B, C, D) make blocks extending a chain from Z. A now has votes from B, C and D and so is finalized. Now, before timeslot T+3 ends, D also (byzantine-ly) makes a block (call it D') on top of Z. Then, at times (T+4 ... T+11), (A, B, C, D, A, B, C, D) make blocks on top of D' (this is ok because each validator is making a block at a height one higher than the block they previously made). The second A block in this chain has three votes and so is also finalized. Hence, two conflicting blocks got finalized.
In general, it's not possible to achieve BFT safety on a block without at least two messages from most nodes that directly or indirectly reference that block; this algo tries to do it in one round and it's likely impossible to actually do that safely. If you want an intuitive and good way of doing this, I recommend just using the algorithm in our Casper FFG paper: https://arxiv.org/abs/1710.09437
It is good to see these Frenamies collaborating
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit