We have developed a procedure that may at first seem counterintuitive, but is designed to maximise both speed and reliability.
Modern markets expect high-speed transactions and settlement and in order to be successful a high degree of liquidity is necessary to ensure that trades will be executed.
The Ethereum blockchain - which TCO is based on - has limitations that make this difficult. If we assume each trade is offered as a smart contract on the blockchain, a significant number of ethereum transactions will be required regardless of whether each trade is then accepted by a counterparty.
This approach would impose significant costs on the whole ecosystem. A simple trade would require two parties to an ethereum transaction:
- A Market Maker offering their trade
- A Counterparty then accepting the offer
This would therefore result in the minimum transaction time being equal to the time to mine two blocks: in practice that would mean transactions take tens of seconds. This does not meet modern market expectations.
To solve these challenges, we propose trading contracts that are created and initially stored off-chain.
Before the parties can start trading, both sides (the Market Maker and Counterparty) would be required to lock an amount into the ethereum trading contract. The parties can then only trade their account balance.
A Market Maker may create off-chain trades to offer to other participants and would sign it with his private key. The trade would then be spread off-chain to potential Counterparties.
The Counterparties who decide to accept the offer to trade would sign the off-chain contract with their private key and the contract to trade is generated. The contract would then be determined by the oracle (for instance an independent price feed) to determine the results of the trade.
The result is finally made available and submitted to the blockchain along with the transaction.
Settlement occurs through the blockchain automatically.