Counterfactual Settlement

Both the Maker and Taker send funds to a blockchain address. This is a Smart Contract address that has not yet been deployed. This is uses functionality brought to Ethereum in EIP-1014 that allows deterministic smart contract addresses.

This allows us to construct the address of a smart contract prior to deploying it.

It is this address that both parties will send their funds to for Escrow.

This has a number of benefits:

  • No one (including us!) has a private key to the address. It is governed by the contents of the (not yet deployed) contract.

  • While the address is not deployed, it does not reveal the intent of the trading parties to outsiders.

  • The only way to move the funds from the address is to deploy the contract. The contract specifies precisely who can receive the funds (this will be the Maker & Taker addresses only).

  • We can prove to both parties what / who can settle the trade by revealing to each party a "salt" that can be used to recreate the contract address. This means both parties can have proof of the terms set out in the contract without anyone knowing externally.

The smart contract is built in such a way that the only possible outcomes of a trade are either:

  • a) The trade is settled and the funds are swapped between the parties or

  • b) The trade is cancelled and the funds are returned back to the taker.

  • At no point in time can Mauve redirect the trade, it is entirely in the hands of the trading parties as governed by the smart contract.

Last updated