Community submission - Author: Caner Taçoğlu
Asynchronous means not simultaneous, or not happening at the same time or speed. In computer science, asynchrony refers to the occurrence of events that are independent of the main program.
In an asynchronous system, operations are not coordinated by a global clock signal, but rather events (changes in the system). Asynchronous systems do not depend on external signals or messages for their reliable operation.
Asynchronous systems are often designed with a modular framework. In such systems, each module can operate independently and has the ability to communicate with other modules. These interconnected modules then together form a working system.
Asynchronous communication is when data can be transmitted irregularly, instead of in a steady stream. Common examples include email or online forums, where participants send messages at different times.
Blockchains can be asynchronous or semi-synchronous networks.
Asynchronous networks do not supply the nodes with any feedback about the status of the information being sent, which can lead to nodes having different views on the overall state of the network. Essentially, nodes don’t have to wait for other nodes to receive their messages, which can increase the transaction throughput.
Semi-synchronous networks aim to ensure that there is never a split in the network’s global state. If the network is partitioned, consensus between the nodes will slow down until it is restored again.
Asynchronous or semi-synchronous blockchain networks can be designed whether to prioritize consistency or availability. If the network wants to prioritize availability, all transactions are added without any downtime. If the network wants to prioritize consistency, some transactions might not be processed or halted until all the previous transactions are confirmed.
Some blockchain designs use an implementation of Byzantine Fault Tolerance (BFT) called Asynchronous Byzantine Fault Tolerance (aBFT). It mathematically guarantees that consensus is eventually achieved even if an attacker controls almost a third of the network. Asynchronous in this context means that no assumptions are made about timing.