Front running is when you place a transaction in a queue when you have knowledge of a future transaction.
Front running is the act of placing a transaction in a queue with the knowledge of a future transaction. Front running on a blockchain platform normally happens when a miner, who has access to information on pending transactions, places an order that would earn him a profit based on a pending trade. For instance, on the Ethereum blockchain, front running can occur when bots are able to quote a higher gas price than a pending trade, thus, hastening its processing.
Other parties capable of front running are full node operators, which are parties tasked with keeping an eye on network activities, hence, have knowledge of unconfirmed transactions. Centralized exchanges can also conduct frontrunning, however, it would be against their best interest to cheat their own customers. Front running can also be orchestrated through other methods. Generalized front running taps into potentially profitable contract calls.
Other types of attacks include displacement, insertion and suppression. With a displacement attack, the malicious actor displaces a genuine transaction with their own. Although the original transaction may still run, it won’t have the positive effect as intended. On the other hand, an insertion attack sandwiches a genuine transaction between two transactions with the aim of making a profit without holding an asset.
The suppression attack is meant to delay others from running a transaction. When the withholding is lifted, the front runner is less concerned about the suppressed trade.
Front running can be mitigated by sequencing transactions and improving transaction confidentiality. Transaction sequencing is achievable through implementations such as Canonical Transaction Ordering Rule like the one employed by BCH (Bitcoin Cash). Confidentiality, on the other hand, is applicable on different sections of a decentralized application (DApp).