Hello everyone,
after long discussions with the Web3 Foundation and other parties on the Council we are happy to share our proposal for "Static Resource Analysis for Substrate Pallets" here.
Background: As part of its long-term goals to build static analysis tools for smart contracts, ChainSecurity supervised a M.Sc. thesis on "Static Resource Analysis for Substrate Pallets". The goal of the M.Sc. thesis was to investigate the specifics of static resource analysis for Rust and Substrate, and to build a proof-of-concept static analysis tool that provides feedback on the worst-case resource use of Substrate pallets. The input of the tool is the Rust source of a pallet and an entry point. The output is an symbolic expression in big-O notation that correctly bounds from above the asymptotic resource usage of the entry-point as a function on its inputs. The analyzed resources will be the storage reads and writes and virtual time defined by a basic cost model on Rust operations.
The original proposal including timeline and request for funding can be found here.
Today, the M.Sc. thesis is completed successfully and the results are available. We realize that this puts us in a special situation as we optimistically guided and supported the work while having been facing repeated delays on discussing and moving forward with the grant proposal. This is why we only today are publishing the proposal here, hoping that a discussion in the open allows this proposal to receive valuable feedback and move along faster now.
We are happy to answer any questions and to receive constructive feedback!
Best regards,
Matthias Egli for the ChainSecurity team