Solution: https://people.eecs.berkeley.edu/~luca/cs174/byzantine.pdf
Although there is a lot of material about this, I am still not sure what the answer is. I found two different statements:
- Yes, it does guarantee both liveness and safety as long as 66% are honest.
- No, if there is a certain amount of delays, it cannot guarantee safety. https://cs.nyu.edu/rgrimm/teaching/sp07-os/bft.pdf , slide 9
If it is 2., what is the intuitive reason for this to happen? Is it because if the some messages never reach the nodes, they cannot know what the majority of the other nodes are doing/communicating and therefore cannot forward their own decision?
Note: I know this is not a bitcoin specific question but there is no general blockchain forum here.