The 1st phase is probabilistic promoting liveness to a strong guarantee.
The 2nd phase receives the output of the 1st phase and produces a classical 2f+1 safety threshold.
The interesting piece here is the 1st phase. If say a portion of the network suddenly went offline, there was be a starvation of vote power.
The 1st phase can continue to make progress because it's not reliant on the 2f+1 threshold.
...
Without a 2f+1 vote power threshold, the 2nd phase can not use the output of the 1st to commit and provide a guarantee on safety.
There is a mechanism in the 1st phase to increment the vote power of active validators on each round of progress.
...
Eventually the increasing vote power of the active validators "dilutes" away the influence of the departed ones and viola!
The output of the 1st phase can now produce a 2f+1 quorum the 2nd phase need to do its thing & reverting from probabilistic safety to deterministic again.
This morning I implemented the final module needed to test the theory.
I ran the network for a while & killed 90% of it.
The remaining built a large quantity of probabilistically safe transactions, until suddenly the 2nd phase woke up & processed the lot!
As far as I understand, these solutions are essentially two separate consensus mechanisms.
Probabilistic to perform state transitions, with deterministic to finalise the best version of the former.
It works & does the job required, so why is #cassandra different?
....
Think of a hybrid car. There is a petrol engine & electric motor working together to move the car.
They are 2 separate systems & are open loop, one way. The engine if needed can generate electricity for the motor, but the motor doesn't produce anything useful for the engine...