The tutorial will briefly cover the following:
Setting up the Gigahorse framework development environment and related toolchains
Specifying simple program analyses
Implement analyses for known vulnerabilities such as reentrancy
Run these analyses at scale, and compare their results
Introduce basic analysis design considerations and their effect on precision, completeness and scalability
Necessary background: the tutorial will make as few assumptions as possible regarding the background of participants, especially relative to the blockchain and smart contracts. Necessary concepts of smart contract execution will be introduced in the tutorial, although the emphasis will be on static analysis. Participants should have some background in intermediate languages and simple program analysis, at the level of a Compilers course.
Medium: There will be an initial presentation of tutorial material (slides + screen sharing for command line and setup). Afterwards, the tutorial is expected to be interactive, with extensive screen sharing among participants to jointly examine code.
Platform: Participants should have machines with a Unix-like OS (Linux preferred, MacOS should be ok). The Souffle language will be ideally installed and tested before the tutorial.