0x00 前言

GMX是一个支持低交换费和零价格冲击交易的去中心化现货和永续合约交易所。

GMX is a decentralized spot and perpetual exchange that supports low swap fees and zero price impact trades.

GMX部署在Arbitrum和Avalanche网络上,是过去半年表现最好的DeFi协议之一。

这两天因为项目需要,一直在研究GMX源码,对于我这种从来没搞过DeFi,对金融一窍不通的人,看GMX真的看吐了!

本文将尝试对GMX源码进行解读,帮助大家提高对GMX底层技术的理解,少走一些弯路。

0x01 相关金融概念

相信很多同学都和我一样,一看到各种各样花里胡哨的金融概念就头大,而GMX又是一个异常复杂的DeFi协议,想要弄明白GMX,必须先理解他的背后的金融概念。

这里我列出一些重要的概念,并用我自己的话来解释。当然,有可能出错,如果想深入准确地了解,还请大家查找相关专业资料~

做多(Long),做空(Short),杠杆(Leverage),清算(Liquidate)

这几个应该是大家接触最多的概念了,大家应该或多或少有了解

做多就是低买高卖,做空就是反过来,高卖低买,低买高卖很容易理解,但什么是高卖低买呢?

高卖低买实际上是,你预测某个币未来可能会跌,这时候你找到一个人,他持有这个币并愿意把币借给你,你拿到他的币后立刻卖出。等到币价真的跌了,你再买回来,还给那个人(平仓),你就能赚钱。当然,币不一定真的会跌,如果币价一直上升,平仓的时候你就得花更多的钱把币买回来还回去,你就会亏损。这里问题来了,那个人凭什么要把币借给你呢?首先,他借给你肯定是因为他是长期持有者或者他认为币不会跌,同时,你想借钱,是需要交保证金的(抵押物),如果币价一直涨,你亏到一定程度,即使你认为未来还会跌,但为了保证你还赎回,你还是会被强制平仓(这就是清算),这时候浮亏就会变成真的亏损。

杠杆就是在交易的过程中(做多或者做空)通过抵押一部分金额借用更多金额的操作,从而能实现多倍的盈利(当然,亏损也是多倍亏损)。

清算就是在杠杆交易中,如果你的浮亏达到一定上限,平台为了确保自己的资金池不会亏损,而进行强制平仓的过程。

我们举一个例子,在忽略所有手续费前提下,假如当前ETH价格为1000USD:

  1. 我抵押1000USD,选择10倍杠杆做多,这时候我就能借用池子10000USD的价值,并拿这10000USD买入10ETH。
    1. 假设未来ETH价格涨到1200USD,这时候我选择平仓,我卖出这10ETH,得到12000USD,并把10000USD归还给池子,抵押金退回,我最终收益就是12000-10000=2000USD,杠杆允许我获得了10倍的收益(如果不做杠杆,只有200USD的收益,做了杠杆拿到2000USD收益,收益率从20%上升到200%)
    2. 假设未来ETH价格跌到900USD,这时候我买入的10ETH的价值就会降到9000USD,由于我的抵押物只有1000USD,如果ETH价格再跌,这10ETH加上抵押物的价值就不足10000USD了,这将导致资金池亏损,为了避免这个情况发生,平台就会强制平仓(清算):强制把你的10ETH卖出,并且扣除你的全部抵押金额,在这情况下即使ETH只跌了10%,但你会亏损100%!
  2. 我抵押1000USD,选择10倍杠杆做空,这时候我就能借用池子里的10ETH,并卖出得到10000USD。
    1. 假设未来ETH价格跌到800USD,这时候我选择平仓,我只需花8000USD就能买回10ETH并归还给池子,抵押金退回,我最终的收益就是10000-8000=2000USD,虽然ETH只跌了20%,但因为做空+杠杆,我得到了200%的收益
    2. 假设未来ETH价格涨到1100USD,这时候我的10000USD需要加上1000USD抵押金才能赎回10ETH,如果ETH价格再涨,就没法赎回了,这将导致资金池亏损,为了避免这个情况发生,平台就会强制平仓(清算):强制把你借出的10000USD和抵押的1000USD拿来赎回10ETH放回池子里,在这情况下即使ETH涨了10%,但你仍会亏损100%!

上面的例子非常具体地描述了做多和做空并且加上杠杆的几种情况,这是我自己的理解,有些细节可能不一定准确,如有错误欢迎大家指出~

仓位/头寸(Position)