What are synchronous systems?
Synchronous systems have the following properties:
- Synchronous systems require one process to trigger the next process. For example, this triggering is demonstrated by the following scenario. Node 1 sends a request to Node 2, whereby Process X is only invoked if Node 1 receives a response from Node 2.
- In case Node 1 did not receive the necessary response from Node 2, the next process would not be initiated and the network would come to a complete halt.
- Ultimately, this means that all components of the network must be operational for the network to remain active.
What are asynchronous systems?
Asynchronous systems have the following properties:
- In asynchronous systems, events are not coordinated through time intervals nor does one process depend on the completion of another process.
- Sending messages from Node 1 to Node 2 can be delayed and the time of the delay can be unbounded.
- An asynchronous system does not rely on messages to be sent in order to be secure. Because there is no inherent ordering based on timestamps within asynchronous systems, they need another method for ordering the messages. Each network adopts different solutions.
- Asynchronous systems are bound by response rate e.g. in Byzantine Fault Tolerant systems, ⅔ of honest nodes have to respond.
What are semi-synchronous systems?
A semi-synchronous system operates much like an asynchronous system, however, the consensus rounds are time bound. In other words, the network designates a certain time frame during which the consensus protocol can operate.
What is the FLP Theorem?
The FLP Theorem states that any decentralised system can, at most, achieve only two of the following three properties: Fault Tolerance, Security, Liveness.
What is the CAP Theorem?
The CAP Theorem outlines the trade-off between Consistency, Availability and Partition tolerance, whereby any decentralised system can achieve, at most, two of the three properties.
- Networks prioritizing consistency dictate that either a system is available, or it does not operate.
- A system prioritizing availability ensures that the network is always available, even when inconsistent. This means that the network will continue to operate for all the nodes on the network, but nodes can still have a different view of the network.
What is determinism?
Determinism can be defined as follows:
- Determinism means that the same outcome occurs from the same action. If X happens and Y is the outcome related to X, then Y will always result from Y.
- In non-deterministic systems, the same action (call/input) doesn’t always result in the same result (receive/output).
- In contrast, in deterministic networks the same action will always result in the same output.
- With both FLP and CAP, a network would not compromise on Fault-Tolerance. This would destroy the value of the network.
- In case of any network partition, the larger partition is always chosen.
- Semi-synchronous models can shift between deterministic and non-deterministic states. In contrast, asynchronous models are non-deterministic by nature.
- Asynchronous networks often have to deal with communication overheads to ensure all nodes eventually achieve the same state.