Dealing with uncertainty in consensus protocols