I am trying to get my head around "State Machine Replication". I understand that it is a way to ensure resilience against failures. I have read that in order to provide fault tolerance against normal failures it can be derived that, there must be 2F+1 replicas and 2F+1 replicas in the case of Byzantine failures, when messages are signed, otherwise 3F+1 replicas. This is stated at the Wikipedia page : https://en.wikipedia.org/wiki/State_machine_replication. Though it does not say anything about if these derivations are in a synchronous or asynchronous environment? Can anybody clarify the needed numbers of replicas in a synchronous and an asynchronous enviroment in order for a distributed system to be fault tolerant?