Uniswap: le DEX 2.0

Dans l’univers des cryptomonnaies, la thématique des DEX (decentralized exchanges) a beaucoup fait parler d’elle en 2017. Certains y voyaient une révolution, en phase de disrupter les grands noms de l’industrie comme Binance ou Coinbase. En centralisant une grosse partie de l’activité crypto, les échanges classiques font peser sur eux tout une gamme de risques qui disparaissent avec les DEX (dépossession des clés privées, manque d’anonymat, vulnérabilités face aux régulations, partialité sur les forks etc…).

Cet engouement autour des DEX s’est toutefois nettement refroidis aujourd’hui. Cryptobridge, Etherdelta, Idex.. tous ces noms ont peu à peu disparus des écrans radars de crypto-twitter, et les attentes autrefois énormes ont été drastiquement revues à la baisse. En 2019, il semble permis d’affirmer que ces projets n’ont pas su trouver leur public. La liquidité y est très faible, l’interface est médiocre et certains DEX ont récemment perdu le peu qui légitimait encore leur existence: leur insensibilité face aux régulations. En novembre 2018, Etherdelta est contraint de payer près de 400 000$ à la SEC pour échange de securities non enregistrées, et Idex décide de mettre en place des mesures de KYC / AML pour se conformer aux régulations. L’opinion publique se rend alors compte que le “D” de Dex est accessoire, et l’idéal libertaire des cryptos prend une claque.


Uniswap, un DEX singulier

On en vient à Uniswap. Uniswap est un protocole d’échange de token décentralisé conçu pour l’écosystème ethereum. Un DEX de tokens ERC20 si vous voulez la faire plus courte. J’en vois déjà certains venir avec leurs fourches et les fruits pourris.. attendez deux minutes, car le concept est plus intéressant qu’il en à l’air.

L’approche utilisée par Uniswap vient bouleverser la structure des échanges classiques en supprimant complètement l’orderbook. Cette démarche, comme nous allons le voir, permet de solutionner le problème de la liquidité définitivement. En passant, le projet est complètement opensource, sans ICO, sans dev fee et sans financement actif. Et cerise sur le gâteau: il n’y a pas de frais de listing pour l’ouverture de nouveaux marchés.

Comment ça marche?

Sur un échange classique, l’orderbook est le lieu ou apparaissent vient les ordres limit des différents participants. Ces derniers sont soit du côté “ask” pour les ventes, soit du côté “bid” pour l’achat. En fonction de la stratégie des participants, ces ordres viennent d’accumuler à des niveaux symboliques dictée par l’historique des prix ou l’analyse technique. Cela donne lieu à des “order blocks” cumulant la liquidité du marché à des niveaux clés, et des “gaps” de liquidité entre ces derniers.

Uniswap prend les deux côtés de l’orderbook et vient accumuler tout les ordres dans un seul et même pool de chaque côté.

exemple: pour le marché LINK/ETH, on obtiens:

  • 1 000 ETH d’un côté,
  • 100 000 LINK de l’autre

C’est tout. Les notions de prix et d’ordres disparaissent, tout comme celles d’acheteur et de vendeur. Il ne reste que deux pools de liquidités: un composé d’ETH et l’autre composé de LINK. Ces deux pools de liquidités sont alimentés par un nouveau type d’acteur: les “fournisseurs de liquidités”. Ce sont des gens qui ne participent pas aux trades (ici en l’occurence, on parlera de swaps). Ils mettent juste à disposition leurs ETH et leurs LINK pour que les “swappeurs” puissent réaliser des échanges.

Pour faire coincider les prix et les quantités, Uniswap introduis un Market Maker Automatisé (AMM). Il s’agit d’un algorithme qui fixe le taux d’échange entre les tokens en fonction de certaines règles prédéfinies. En gros, si vous voulez acheter pour 100 ETH de LINK, l’algorithme va calculer le nombre exact de LINK auquel vous pouvez prétendre avec 100 ETH. Il existe de nombreux Market Maker Automatisé. Mais celui d’Uniswap à pour particularité de garantir mathématiquement la liquidité peu importe les quantités achetées. On appelle cela un Market Maker Automatisé au produit constant.

Si on reprend notre exemple précédent, on à :

  • 1 000 ETH et 100 000 LINK;
  • 1 000 *100 000 = 100 000 000

Notre produit constant sera 100 000 000, et l’algorithme s’attachera à maintenir ce nombre peu importe l’activité de trading sur l’échange.

ex: je veux acheter 100 ETH de LINK. Combien de LINK vais-je obtenir?

  • Cela veut dire que dans un premier temps, je vais ajouter 100 ETH dans le pool de liquidité ETH. Donc maintenant: ETH = 1 100.
  • 1 100 * LINK = 100 000 000
  • LINK = 100 000 000 / 1 100 = 90 909 LINK.

Généralisons

Le Market Maker Automatisé d’Uniswap utilise donc la fonction suivante pour déterminer le taux d’échange entre les différents tokens:

  • x*y=k

Ou x représente le pool de liquidité du premier token, y le pool de liquidité du second token et k le produit constant. Graphiquement, on obtiens cette courbe:

situation de départ: x=10 et y=10

Pour une raison de simplification, j’ai fixé k=100. En situation de départ, on peut dire que les pools de liquidité sont égaux avec x=10 et y=10. Que se passe t’il si je veux échanger 10 token x contre des tokens y ?

obtention de 5y pour un rajout de 10x dans le pool de liquidité des x.

On se trouve alors avec x=20 et y=5. J’ai donc obtenu 5y pour mes 10x, soit 0,5y par x.

Maintenant si je souhaite acheter pour 30 x, combien vais-je obtenir de y?

obtention de 7,5y pour un rajout de 30x dans le pool de liquidité des x.

On se trouve alors avec x=40 et y=2,5. J’obtiens 7,5y pour mes 30x, soit 0,25y par x.

Conclusion: Le prix relatif dépend directement de la taille de mon ordre. Plus mon ordre est gros, moins j’obtiens de token y relatif à ma dépense de x. Et cette relation tend vers l’infini. Si je dépense une infinité de x, j’obtiendrai un maximum de 10 y, tout simplement parce que le pool de y n’en contient pas plus, et qu’il faut maintenir k=100 !

exemple réel avec la paire ETH/LINK:

  • Pour 1 ETH, j’obtiens 208,3 LINK.
  • Pour 100 ETH, j’obtiens… 842,9 LINK

Et je vous vois venir à 100km…

Cela nous conduit à la deuxième conclusion: Uniswap n’est viable que si les pools contiennent énormément de liquidités. Si je reprend mon exemple précédent, mais que je remplace k=100 par k=10 000, j’obtiens près de 9 y pour mes 10 x (soit 0,9 y par x). Cela est nettement plus proche du prix relatif de départ ou x/y = 1. En fait, plus on ajoutera de liquidités aux pools, plus ce rapport sera tenu.

plus k augmente, plus j’ai de y pour mes x

Le concepte d’Uniswap présente donc un intérêt non négligeable à partir du moment ou l’échange est soutenu par de gros pools de liquidités. Encore faut-il que les fournisseurs de liquidités y trouvent leur intérêt.

Quel intérêt pour les fournisseurs de liquidités ?

Les fournisseurs de liquidités sont ceux qui garantissent la viabilité de l’échange en mettant à disposition leurs ETH et leurs token ERC20 pour les swappeurs. Pour les attirer, Uniswap redistribue un pourcentage du volume d’échange aux fournisseurs de liquidités. Leur capital est donc rémunéré de manière passive.

En effet, des frais à hauteur de 0,3% sont prélevés sur chaque swap pour rémunérer les fournisseurs de liquidités. Ces frais sont par défaut replacés dans les pools, mais peuvent être retirés à n’importe quel moment par les fournisseurs de liquidités.

Lorsque l’on souhaite ajouter de la liquidité à une paire, Uniswap demande à ce que l’on ajoute 50% de liquidités de chaque côté de la paire pour éviter la distorsion des prix relatifs. De cette manière, les deux pools de liquidités croissent de manière proportionnelle.

exemple ci-dessous avec la paire ETH/LINK:

si je souhaite ajouter 10 ETH à la paire ETH / LINK, je dois aussi ajouter 2748,4 LINK

Lorsque j’apporte ces liquidités, Uniswap enregistre quel pourcentage représente mon apport par rapport au pool de liquidité déjà existant. Ma part du pool sera calculée sur la ligne “pool share”, et je pourrai ensuite prétendre à 0,3% * mon pool share * volume d’échange sur la paire en guise de dividende.


Conclusions:

Uniswap est une initiative assez unique dans le monde des cryptos, et les intentions du projet sont louables. On à face à nous un échange qui vient réinventer la roue, et qui possède intrinsèquement tout les ingrédients pour lancer un cercle vertueux d’adoption:

  • Les fournisseurs de liquidités ont une motivation pour mettre leur capitaux à disposition des swappeurs.
  • Plus il y a de liquidités, plus les swappeurs pourront placer de gros ordres sans distorsion des prix relatifs. Ce qui augmente le volume de l’échange.
  • Plus il y a de volume, plus les fournisseurs de liquidités sont rémunérés.
  • Les hautes rémunérations attirent d’autant plus de fournisseurs de liquidités, rendant Uniswap plus intéressant pour les swappeurs etc…

Quelques bémols sont néanmoins à mettre en avant.

Aujourd’hui, Uniswap ne possède que quelques centaines d’ETH en termes de liquidités, rendant les prix relatifs risibles dès qu’on souhaite placer des swaps un peu crédibles (voir mon exemple avec LINK). D’autre part, Uniswap n’a pas pour vocation de remplacer les échanges classiques, dans la mesure ou ce projet ne peut pas fonctionner sans eux. En effet, Uniswap compte sur une stratégie d’arbitrage pour le maintien des prix relatifs de ses marchés. Ainsi, le prix des autres échanges restera déterminant pour Uniswap, et son Market Maker Automatisé reste incapable de refléter les forces d’achat et de vente du marché.

Cela dit, je pense qu’Uniswap est bien parti pour redorer le blason des DEX pour cette année 2019. Il s’agit d’un type de projet qui mettra du temps avant d’atteindre son potentiel réel, car il faut que l’agrégation des motivation prenne. Cela risque de prendre quelques mois… A suivre.

Tu peux me suivre sur twitter: