Polkadot uses a hybrid PBFT / Aurand consensus mechanism that has two degrees of finality. This consensus mechanism allows for relatively low latency state transitions while mitigating certain attacks to the network.
The PBFT derivative provides absolute finality. Aurand, a derivative of Aura, provides fast, simple, and intermediate finality. Every so many blocks there is a PBFT check-point that guarantees finality, while the Aurand sets up the intermediary states of finality.
With Aurand one randomly chosen validator may propose a block, which *may be reverted* (faster). They are punished (slashed) for proposing invalid blocks or for going offline. With PBFT > 2/3 of staked validators must sign-off to *guarantee finality* (slower).
PBFT finality happens every ~30 seconds while Aurand blocks are proposed every ~4-5 seconds, potentially faster.
POC-4 will introudce Aura v2, a progressive-consensus with milestone finalisation (https://github.com/paritytech/polkadot/milestone/4 …). @web3foundation researcher Alistair Stewart is working on this alongside Polkadot core devs @gavofyork and @rphmeier.