Static Resource Analysis for Substrate Pallets
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
Comments (3)
Comments (3)
This sounds more like a reimbursement request to me. Yet, I do not understand if the thesis is completed and the results are available, why not share it with the rest of the community before requesting the allocation? I do not think that the team expects us to simply trust that the thesis is a success.
We are absolutely fine with making the payment conditional on acceptance of the results. We are quite proud of the quality of the work, be it in audits or research, which we deliver, but understand that this trust which the people we worked with in the past have in us also needs to be earned again for those who haven't yet worked with us. Due to the very lengthy process for this grant and the nature of the research results, which are easy to copy and use once made available, we feel that the ask to first decide on the proposal before publication of the results is warranted though.
Fundamentally, the community might decide that the kind of work done here isn't worthy to be funded at all (independent of the success or lack of success of the results) or that it is "less worthy" and would propose a different amount of compensation.
As a middle ground and to address the concerns of having to "buy the cat in the bag", we introduced the following wording in the proposal to clarify that payment is conditional on having reached the outlined goals, which I hope can fully address the concerns:
Payment is conditional on acceptance of the report and source code by the council, which might delegate this task to trusted experts from the community. Defects are going to be communicated to ChainSecurity at the latest 30 days after publication of the results, and ChainSecurity can ask for a re-evaluation after having delivered updated source code or documentation.
This sounds more like a reimbursement request to me. Yet, I do not understand if the thesis is completed and the results are available, why not share it with the rest of the community before requesting the allocation? I do not think that the team expects us to simply trust that the thesis is a success.
#Less trust, more truth
We are absolutely fine with making the payment conditional on acceptance of the results. We are quite proud of the quality of the work, be it in audits or research, which we deliver, but understand that this trust which the people we worked with in the past have in us also needs to be earned again for those who haven't yet worked with us. Due to the very lengthy process for this grant and the nature of the research results, which are easy to copy and use once made available, we feel that the ask to first decide on the proposal before publication of the results is warranted though.
Fundamentally, the community might decide that the kind of work done here isn't worthy to be funded at all (independent of the success or lack of success of the results) or that it is "less worthy" and would propose a different amount of compensation.
As a middle ground and to address the concerns of having to "buy the cat in the bag", we introduced the following wording in the proposal to clarify that payment is conditional on having reached the outlined goals, which I hope can fully address the concerns: