Add motivating example from Smartian to research examples#850
Add motivating example from Smartian to research examples#850webthethird wants to merge 3 commits into
Conversation
Add echidna-fied version of Smartian motivating example. Original: https://github.com/SoftSec-KAIST/Smartian/blob/main/examples/sol/motiv.sol
Add config file for Smartian motivating example
Set a higher testLimit, since the default 50,000 isn't cutting it
|
Thanks a lot for the contribution. We want to add this example, however, since every research example is added into the CI testing and echidna does not quickly trigger this issue. If that is solved, then we can add this example. |
|
That makes sense! |
|
It seems like making use of the
My (possibly naive) understanding is that the Smartian paper essentially proved that such data-flow analysis does help in general, at least on the benchmarks they evaluated it against (see section V.B in that paper, where they compared the tool against itself with the analyses disabled). |
Smartian and Echidna are different tools and therefore, it could be the case that the improvements that such data-flow analysis are absorbed by other things we do, however, we want to see concrete evidence on small and large contracts to decide.
We don't have code yet, the graph should be parsed from slither and then the generation should be tweaked to use probabilities given the last generated transactions (e.g. just executed A, let's execute B or C).
Another potential improvement that we have not integrated yet, happy to heard ideas about that. In particular, to know exactly what to do if code depends on msg.sender. |
|
@gustavo-grieco wondering if echidna finds this bug faster now, and this can get merged? |
|
While symbolic execution helps here, in the exploration mode, triggering the actual bug requires more than a single transaction (which is implemented right now). Triggering with a single transaction in exploration mode is possible, but it is not reliable enough to add it into the research examples yet. I think we should wait until we can chain sequences in symbolic mode, which is not very far away in terms of roadmap. |
Add echidna-fied version of Smartian motivating example.
Original: https://github.com/SoftSec-KAIST/Smartian/blob/main/examples/sol/motiv.sol