Beim Frontrunning wird eine Transaktion mit dem Wissen einer zukünftigen Transaktion in eine Warteschlange gestellt. Frontrunning tritt auf einer Blockchain-Plattform normalerweise auf, wenn ein Miner, der Zugriff auf Informationen zu ausstehenden Transaktionen hat, eine Bestellung aufgibt, die ihm basierend auf einem ausstehenden Handel einen Gewinn einbringen würde. Auf der Ethereum-Blockchain kann Frontrunning beispielsweise auftreten, wenn Bots einen höheren Gaspreis als für einen ausstehenden Handel angeben können und so dessen Verarbeitung beschleunigen.

Andere Parteien, die Frontrunning betreiben können, sind Full Node Operators. Das sind Parteien, die die Netzwerkaktivitäten im Auge behalten und daher Kenntnis von unbestätigten Transaktionen haben. Zentralisierte Börsen können ebenfalls Frontrunning betreiben, es wäre jedoch nicht in ihrem Interesse, ihre eigenen Kunden zu betrügen. Frontrunning kann auch mit anderen Methoden orchestriert werden. Allgemeines Frontrunning nutzt potenziell profitable Vertragsaufrufe.

Zu den weiteren Angriffsarten zählen Verdrängungs-, Einfügungs- und Unterdrückungsangriffe. Bei einem Verdrängungsangriff verdrängt der böswillige Akteur eine echte Transaktion durch seine eigene. Die ursprüngliche Transaktion kann zwar noch ausgeführt werden, hat aber nicht den beabsichtigten positiven Effekt. Bei einem Einfügungsangriff hingegen wird eine echte Transaktion zwischen zwei Transaktionen eingefügt, um einen Gewinn zu erzielen, ohne einen Vermögenswert zu besitzen.

Der Unterdrückungsangriff soll andere daran hindern, eine Transaktion durchzuführen. Wenn die Zurückhaltung aufgehoben wird, ist der Spitzenreiter weniger besorgt über den unterdrückten Handel.

Frontrunning kann durch Sequenzierung von Transaktionen und Verbesserung der Transaktionsvertraulichkeit gemildert werden. Die Transaktionssequenzierung ist durch Implementierungen wie die Canonical Transaction Ordering Rule möglich, wie sie von BCH (Bitcoin Cash) verwendet wird. Vertraulichkeit hingegen ist auf verschiedene Abschnitte einer dezentralen Anwendung (DApp) anwendbar.