IDEX addresses these issues by centralizing the non-critical components of the trading process. All transactions, such as deposits and trades, must be authorized by end users and their private key, but IDEX maintains ownership of broadcasting these authorized transactions to the network. By carefully sequencing the dispatch of these authorized transactions, IDEX provides the speed and user experience of a centralized exchange combined with the security and auditability of a decentralized exchange.
IDEX consists of a smart contract, a trading engine, and a transaction processing arbiter. The smart contract is responsible for trustlessly storing all assets and executing trade settlement, and all trades must be authorized by the user’s private keys.
The IDEX smart contract has a unique design such that only the exchange is authorized to submit signed trades to the Ethereum network. This enables IDEX to control the order in which transactions are processed, separating the act of trading from final settlement. As users trade their exchange balances update in real-time, while their private keys are simultaneously used to authorize the trade in the contract. This authorization prevents users from rescinding any completed trades, and prevents IDEX from initiating any unauthorized trades.
Authorized transactions are passed to the arbiter which manages the queue of pending transactions, dispatching them in sequence to ensure that each trade is mined in the correct order and that the smart contract balances stay in sync with the exchange balances. This design allows users to trade continuously across multiple markets without waiting for transactions to mine, place true market orders and fill multiple orders at once, and cancel orders immediately and without gas costs.