I just read an article about casper. In the protocol, the validators will assign probability (like vote) to decide which of the proposed block will be accepted.it allows to vote on one block without its previous block be finalized. There could be inconsistency, for example, one transaction could be in a block of layer1 proposed by a validator but also proposed by another validator who wrap this transaction in a block of layer 2. How could they vote out a path without such inconsistency ? Also if we use prove of stake, how could we restrict the number of branches since there is no hash puzzle to restrict it.