Matching engine
The matching engine is the program used by an exchange to match buy and sell orders with each other. Every trade requires a buyer and a seller, and the matching engine is responsible for letting them find each other.
There are important transparency concerns around matching engines. It is possible to manipulate them illegally.
Say a user places a market buy or sell order on an exchange – that is, an order that can match with a number of smaller buy/sell orders already on its book, and which can hence move the spot price up or down. This gives the exchange privileged access to some key information. It can see how the order will move the market.
A dishonest exchange can take advantage of this information by holding the order briefly and placing an intermediary order of its own, a practice known as “front-running”.
By “seeing the future” in this way, an exchange can place its own orders to play the market risk-free. Indeed, with some effort, the same strategy can be used for every order (not just market orders), and the privileged information the exchange possesses gives it an advantage even if trades without holding orders back.
Matching fairness is an issue concerning centralized exchanges, and the prevention of front-running is important when designing decentralized exchanges.
Nash uses a provably fair matching engine, which allows market observers and regulators to compare input and output logs to confirm that trades are being matched correctly.