  Smart contracts are central to a myriad of critical blockchain applications,
from financial transactions to supply chain management. However, their adoption
is hindered by security vulnerabilities that can result in significant
financial losses. Most vulnerability detection tools and methods available
nowadays leverage either static analysis methods or machine learning.
Unfortunately, as valuable as they are, both approaches suffer from limitations
that make them only partially effective. In this survey, we analyze the state
of the art in machine-learning vulnerability detection for Ethereum smart
contracts, by categorizing existing tools and methodologies, evaluating them,
and highlighting their limitations. Our critical assessment unveils issues such
as restricted vulnerability coverage and dataset construction flaws, providing
us with new metrics to overcome the difficulties that restrain a sound
comparison of existing solutions. Driven by our findings, we discuss best
practices to enhance the accuracy, scope, and efficiency of vulnerability
detection in smart contracts. Our guidelines address the known flaws while at
the same time opening new avenues for research and development. By shedding
light on current challenges and offering novel directions for improvement, we
contribute to the advancement of secure smart contract development and
blockchain technology as a whole.
