I am new to Ethereum and still going through the theory of consensus protocols. After learning the FLP impossibility result, I am trying to understand how Ethereum PoW protocol overcomes the impossibility result. Is it because PoW introduces a partial synchronicity for message latency, or because it only guarantees liveness in a probabilistic way? Or is it something else? I appreciate any help you may provide, thank you!