Introduction

Welcome to Mirage!

This page will explain what Mirage Money Market (Mirage) is and how it works.

What is Mirage?

Mirage is the first confidential money market built natively for the Sapphire Paratime (opens in a new tab) of the Oasis Network (opens in a new tab). It's open-source (opens in a new tab) under a permissive MIT license. Fundamentally, Mirage functions in a similar way to other pioneers in the over-collateralized lending landscape (e.g. Aave (opens in a new tab)): users are allowed to borrow a fraction of value against the collateral they deposit. What sets Mirage apart, however, is that the links between lending and borrowing activities are not publicly disclosed.

In other similar protocols, anyone can see which lender a certain borrowing transaction corresponds to. In fact, most protocols don't even allow borrowing from a different account than the lender account itself (i.e. approved borrowing). In Mirage, while all lending activities are public, borrowings happen in a confidential manner where lender identity is not exposed. For example, if both Alice and Bob deposited 1 ETH, and some third account takes out a loan of 100 USDC, no information would be disclosed that allows identifying whether Alice or Bob is bearing the debt.

The addition of such confidentiality does not come as a compromise on features commonly found on non-confidential money markets, even for those seemingly incompatible with confidentiality. In particular, liquidations and historical data access have been specifically engineered to work seamlessly with Mirage.

The Mirage team believes that the truly beneficial form of financial confidentiality is responsible, which is why the protocol has compliance features built in from day 1. Read this page for details.

How Mirage achieves confidentiality

The confidentiality in Mirage is made possible by leveraging Sapphire's confidential runtime, which encrypts all contract storage keys and values. This ensures that all data managed by Mirage are private. From there, Mirage selectively discloses information via view functions. These view functions are either completely open (for public data), or authenticated (for user-specific borrowing data).

In addition, transaction calldata in Sapphire can (and should) be encrypted as well, making it impossible for anyone but the contract runtime itself to identify the lender specified by a transaction. Combined with the at-rest confidentiality, Mirage makes it impossible to associate borrowing transactions to individual lenders.

While the Sapphire platform provides these fundamental building blocks, the Mirage team has researched and developed techniques to ensure confidentiality is achieved in practice. Visit this page for more details.

Why use Mirage?

As with any money market protocol, there are many use cases:

  • earning yield from idle capital without suffering from impermanent loss;
  • short-selling tokens;
  • accessing additional liquidity without selling the assets at hand;
  • and more...

While these use cases are possible with all lending protocols, thanks to its confidentiality and gas relayer integration, Mirage uniquely enables an additional novel use case of creating completely fresh accounts with zero money trail.

Mirage is also a more appealing choice compared to non-confidential money markets:

  • users no longer have to worry about being tracked;
  • large borrowers won't have their positions "hunted".