How it works
How Unicrow achieves the benefits mentioned in the summary
Roles
First, let’s summarize the four roles that can take part in any escrow. All the parties below are identified by an Ethereum address set in the escrow’s metadata.
Buyer
The party that sends the payment into the escrow. It can be someone buying goods at marketplace, or someone sending crypto for an OTC trade (technically, they are buying fiat with their crypto).
Seller
The party who is supposed to receive the crypto-balance from the escrow once it is successfully concluded. It can be someone selling goods for crypto at a marketplace, or someone who wants to get crypto in OTC trade and pays fiat for it.
Marketplace
An optional 3rd party platform that facilitates the trade between the buyer and the seller and can charge a fee for their service, but has no other rights or obligations with regards to the escrow.
Arbitrator
An optional 3rd party that can settle a dispute between the seller and the buyer by releasing the escrow balance to the seller, refunding it to the buyer, or splitting it between them.
Standard Payment Flow
Pay
Payments (in ETH or ERC20 tokens) are escrowed in a smart contract with immutable rules. The parties agree on a challenge (lock-up) period during which the trade is supposed to take place in the meatspace.
Typically, a marketplace, an OTC brokerage, or other platform prepares such a transaction for the buyer to sign. To receive a fee for facilitating the trade, the marketplace can specify its address and a fee (%) in the payment.
Claim
If the period ends without a dispute, the payment can be claimed from the escrow. Anyone can call this claim transaction, because the contract makes sure that:
- the balance is sent only to the intended seller, and
- the marketplace fee (if any) is sent only to the defined marketplace address.
So either a) the seller can call the claim to get their money in which case the marketplace receives its fee automatically, or b) the marketplace can run a regular service to claim all unlocked payments to the sellers, and they can run such a service from a completely different client to the one where they they receive the fees.
Release
Even before the challenge period ends, the buyer can release the payment to the seller if they’re satisfied with the trade outcome (they might do this to get better reputation).
Refund
The seller can also refund the payment at any time back to the buyer without any other party needing to do anything.
In Summary
This means that in these default non-disputed payment flows (i.e. in vast majority of the cases):
- the platform facilitating trades doesn’t need to get involved or at least doesn’t need to use any of its private keys to process these payments end-to-end.
- at no point the marketplace holds custody of the funds, minimizing trust it requires from its users and also its overall risk and regulatory exposure
Dispute Resolution
Each escrow can have an arbitrator defined. The arbitrator is technically just another ethereum address, but unlike in multisig, they don’t hold even a partial custody to the balance in the escrow.
All the arbitrator can do is to decide if the payment should be refunded to the buyer, released to the seller, or split between them. The contract doesn’t allow them to send the funds elsewhere or to lock them, so arguably even the arbitrators don’t need some strong security and safety infrastructure for their address keys.
Arbitrator fee - if it was defined in the escrow - is sent together with seller and marketplace shares to the arbitrator’s address.
If an arbitrator was not set at the time of the initial payment, one can still be added to an existing escrow later. This has to be done by buyer’s and seller’s mutual on-chain consensus.
The result of the arbitration will be reflected in the buyer’s and seller’s reputation.