One of the design philosophy that help the airline industry to achieve such a high safety record was the "redundancy philosophy".
Each critical computers are designed to be fully redundant. That mean each computer is equiped internally with two independents channels: COM and MON for command and monitoring (channels are physically independent cards within the computer unit, each computers are actually two independent ones).
Each channels are designed and developed by two completely independent team.
This is to prevent a bug/unwanted behavior, two independent teams are very unlikely to implement the same bugs.
Each time the redundant computer do any computation, the result from both channel is compared. If there is any discrepancies the computer stop and go in "fault" mode to prevent any non-standart behavior/command.
My question is:
Could this concept help to prevent bugs/vulnerability in smart contracts? (Like we have seen with the DAO event)
It would require the smart contract to be coded by two independent team and every request executed by the said smart contract will have to go trough "smart contract channel A" and then trough "smart contract channel B" the result compared and only executed if both channels give same result.
It seems very unlikely that two independent team end up coding the same vulnerability.
(I will also double the gas cost if I understand well)
Does this kind of concepts exist in software development (redundancy)?
Sorry fro my English I am not a native speaker.