Using program synthesis to secure smart contracts

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