{"repo":"ConsenSysDiligence/daedaluzz","free":true,"listed":false,"github":"https://github.com/ConsenSysDiligence/daedaluzz","clone":"git clone https://github.com/ConsenSysDiligence/daedaluzz.git","description":"Benchmark Generator for Smart-Contract Fuzzers","language":"Solidity","stars":143,"topics":["benchmarking","fuzzing","ethereum"],"license":"Apache-2.0","category":"blockchain-web3","readme_excerpt":"Daedaluzz: A Benchmark Generator for Smart-Contract Fuzzers Daedaluzz is a tool for automatically generating benchmarks for smart-contract fuzzers. The benchmark-generation approach takes inspiration from the Fuzzle benchmark generator for C-based fuzzers. A key goal is to make it possible to compare as many different fuzzers as possible. For this reason, the benchmarks intentionally use a limited subset of Solidity to avoid language features that some tools could handle differently (or not at all). Benchmark-Generation Approach Each generated benchmark contract contains many assertions (some can fail, but others cannot due to infeasible path conditions). A fuzzer can create sequences of transactions that make those assertions fail. We can measure a fuzzer's performance by the number of distinct assertion violations that are found. On a high level, each contract keeps track of the current position in a 2-dimensional maze of a fixed dimension (for instance, 7x7). Each transaction can move the current position to explore the maze. Some locations in the maze are unreachable (so-called \"walls\"), while others may contain a \"bug\" that can be found by the fuzzer when providing specific transaction inputs. Some of these bugs cannot be reached since the path conditions are infeasible. The generated benchmarks try to capture two key challenges when fuzzing smart contracts: 1. code that can only be reached by satisfying complex transaction-input constraints 2. code that can only be reac","default_branch":null,"files":null,"tree":[],"storefront":"/r/ConsenSysDiligence","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ConsenSysDiligence/daedaluzz/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}