Blockchain Resilience and Software Diversity
April 21st, 2023

Resilience is very important for the correct functioning of a system. There is no system 100% reliable in the software and electronic field. Having such complex technology like nowadays’ also implies that there will be many points of failure. From the programming frameworks to human coding errors, critical systems need to take care of this to have the minimum risk possible.

Aerospace systems

Once a program has been thoroughly tested and works well for a given task, it will continue to do so in the future as long as all of the following factors remain the same:

  • The input

  • The environment

  • The expected result (user requirement)

However, this is usually not the case. Every time a rocket is launched to space, the environment changes: different winds, humidity levels, flying objects, air density, human errors, etc. Therefore, we cannot assume that the system will always output the expected results. The same happens in the blockchain ecosystem. Systems evolve and it is important to always keep testing the reliability of new systems being developed.

In the Miga Labs group, we focus on blockchain fault-tolerance to ensure that the performance of a critical system remains the same after a failure in one component. The main objective is that the correct execution of the whole system does not fall when a single component fails. This is strongly related to N-version programming, a paradigm where several independent teams develop a software functionality using the same initial specification. A good example of this concept is NASA’s Space Shuttle. Flight control operations and necessary guidance calculations are performed by 4 different computers, each one of them checking others’ execution and looking for errors.

The main objective is that the correct execution of the whole system does not fall when a single component fails.

Blockchain Systems

Blockchain technology runs on software that is relatively young and prone to errors. Given that the blockchain software usually locks billions in value, it is of critical importance to test and guarantee the robustness of these systems. One way of doing that is making sure that there are different implementations of every protocol specification so that if a bug is found in one implementation, the system and the community can rely on the other one.

In the case of Ethereum2, there are five main consensus layer clients used to interact with the p2p network. Currently, over 60% of the nodes use the same client, which is dangerous for the network. Therefore, the community is making efforts to make the public aware of this issue and revert the situation to have a more diverse and decentralized ecosystem. As players in the blockchain space, we all share the responsibility of disclosing issues when we find them and actively participate to solve them. Therefore, we at Miga Labs would like to make a call to the Ethereum Staking community to make an effort to diversify clients.

Therefore, we at Miga Labs would like to make a call to the Ethereum Staking community to make an effort to diversify clients.

Conclusion

Every human-made system from any domain is vulnerable to failures and errors, from space rockets to blockchain wallets. It is critical to constantly test and measure the reliability of these systems. One way to guarantee resilience is to have multiple components replicating the same functionalities. In the blockchain world, this translates to client diversity. Therefore, it is of paramount importance to work toward a well-balanced blockchain software ecosystem.

Subscribe to migalabs
Receive the latest updates directly to your inbox.
Nft graphic
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from migalabs

Skeleton

Skeleton

Skeleton