It is very difficult to ensure that the code has no errors, which is not only a problem faced by a blockchain project, but also a problem faced by the entire software industry. In the history of software development, even NASA's Spacecraft and the British government's EDS Child Support System, which had high requirements for system bugs, have encountered bugs and caused losses worthy of billions of dollars. The detailed info about the above two examples can be found on https://raygun.com/blog/costly-software-errors-history/. Therefore, how to detect and avoid bugs in a system has always been a matter of great concern to industry and academia. Although at present there is no way to ensure the code is 100% correct, there are some tools and practices that can effectively reduce errors. And blockchain projects also use these tools and practices.
At present, the tools and practices used in the development of Nebulas mainnet are very comprehensive. First, we will use some static analysis tools to detect possible vulnerabilities in the code, then we will use unit testing, penetration testing, regression testing, integration testing and other conventional software development practices to ensure the quality of the code. Finally, we will conduct code auditing through third parties, such as NCC, HackerOne and Knownsec, to further ensure the quality of the code. Furthermore, for smart contracts, we also cooperated with Certik and provided formal verification to ensure that there will be no loopholes in smart contracts. The relevant services will be launched in the near future.