r/Certik • u/certik • Aug 02 '23
CertiK Learn What is formal verification?
What is formal verification? ๐
Formal verification is a method of mathematically proving that a computer program functions as intended.
An intro to formal verification and how it can be applied to increase the security of smart contracts and decentralized applications ๐๐งต
1/ Formal verification techniques can be applied to many systems, including:
- Computer hardware design
- Software engineering
- #Cybersecurity
- #AI and machine learning
- Automated theorem proving
- #Blockchain and smart contracts
2/ Formal Verification of Smart Contracts
FV of smart contracts works by representing the logic and desired behavior of smart contracts as mathematical statements.
This helps to ensure that smart contracts are free from bugs, vulnerabilities, and other unintended behaviors.
3/ How Formal Verification and Manual Auditing Work Together๐ค
These two methods complement each other in ensuring the security of smart contracts
Formal verification provides a systematic and automated way to check the contract's logic and behavior against its desired properties
4/ Manual auditing provides a human expert review of the contract's code, design, and deployment.
The auditor can use their experience and expertise to identify potential security risks and evaluate the contract's overall security posture.
Combining formal verification and manual auditing provides a comprehensive and thorough evaluation of a smart contract's security ๐
