Using program synthesis to secure smart contracts
We can now use SM’s verifier to verify assertions about properties that should hold across interactions between two contracts: the example contract and a hypothetical – machine generated – contract. This particular example demonstrates a bug type commonly known as re-entrancy, and it gets automatically rediscovered (without explicit pattern encodings) due to: 1) synthesis exploring contracts that can fit , 2) expressive verification that tracks storage and msgs precisely, and 3) a global assertion over the combination of and . In the next post, we will continue discussing smart contract safety and also discuss additional features of SM: evaluating liveness properties that help identify denial-of-service, custom business logic checks, and low level property checks.
Source: synthetic-minds.com