去中心化协议uniswap简介

Jack4周前量化234

从2020年3月1日到3月25日,Uniswap上的总交易规模大约2.06亿美元,这期间流动性提供商大约捕获了60多万美元的费用价值。其中3月12日和3月13日交易量都超过3,000万美元,贡献三分之一的收益,平均下来,每天大约可以产出24,000美元的收益。假设这是日均的费用,那么,所有流动性提供商一年可以赚取876万美元收益。


Uniswap是一种基于以太坊的协议,旨在促进ETH和ERC20代币数字资产之间的自动兑换交易。

首先讨论下,第一,以太坊上可以挖出以太币eth,人们出于各种投资/部署以太坊智能合约/运行智能合约的需求,会用现实中的钱去购买以太币。第二,以太坊上还有很多种代币,以太坊代币是内置在以太坊区块链上的数字资产。它们受益于以太坊现有的基础设施,而不需要开发者重新构建全新区块链。它们还通过以太币(以太坊的本地货币,被用来驱动智能合约)来加强以太坊生态系统。


094a5dbc3c893b4691ad34b87fc0e3af.png.jpeg


利用以太坊的智能合约可以轻松编写出属于自己的代币,代币可以代表任何可以交易的东西,如:积分、财产、证书等等。因此不管是出于商业,还是学习的目的,很多人想创建一个自己的代币,看看创建的代币是什么样子。


v2-2d7d7cbb40dc55fd03b0525d42c2a0b2_1440w.jpg


ERC20 Token

ERC20和代币经常一同出现, ERC20是以太坊定义的一个代币标准。定义了在实现代币的时候必须要遵守的协议,如指定代币名称、总量、实现代币交易函数等,只有支持了协议才能被以太坊钱包支持。

那么为什么会出现uniswap这样的协议来支持ETH和各种代币进行自动兑换呢?

举一个兑换外币的例子,兑换外币有可能是出国/购物需要使用,也有可能出于获利的目的。比如2018年4月份人民币汇率是6.3,也即可以用630元兑换100美元。到2019年10月人民币汇率是7.1,可以用手中的100美元兑换710元人民币,相当于就赚了70元人民币。也即,2018年4月用人民币买美元,2019年10月再用美元买人民币,进行两种货币之间的交换。相反,如果到2020年5月人民币又跌回了6.3,那么在2019年的时候用100美元买到710人民币,然后在2020年的时候把710人民币换成113美元,就赚到了13美元。

这就是两种货币交易的例子。这种交易可以发生在银行或者交易所。虽然国内银行规定进行购汇的时候不需要任何手续费,但是把外汇货币卖给银行,会按银行的“买入价”计算,从银行买外汇,则按银行规定的“卖出价”算。当中存在一个差价,这个差价相当于银行的手续费。交易所的三个经典设计模型是订单簿模型、自动化做市模型和荷兰式拍卖模型。这里还有一些概念,如订单簿、挂单、限价委托等等。

在中心化交易所中,手续费相对盈利而言,一般不低,因此,当区块链出现之后,去中心化交易所(DEX)正在成为一种新的解决方案。2019年时,已有了不少基于区块链的去中心化交易所,不少的去中心化交易所都是基于订单簿。订单簿包含了代币的买单和卖单列表。买单称为出价(bid),卖单称为要价(ask)。订单簿列出了在每个价格点出价或要价的代币数量。最高出价(买一)和最低要价(卖一)被称作买卖一(top of the book)。它们标志着市场情绪以及获得订单所需的买入价和卖出价。最高出价和最低要价之间的差异叫价差(spread)。


QQ20220528-0.jpg


DDEX 的订单簿

目前,IDEX、DDEX、Radar Relay、EtherDelta、Paradex 和 Ethfinex 都是订单簿式 DEX。在订单簿式去中心化交易所(以下简称订单簿式 DEX)中,可以提交两种类型的订单:市价订单和限价订单。

提交市价订单时,可以设定买入/卖出的代币数量,DEX 会立即以最优市场价执行你的市价单。下一个市价单意味着,优先保证订单成交速度,无论订单簿上现有订单价格是多少。执行市价单的方式是,为买家匹配现有的卖一订单,为卖家匹配现有的买一订单。

提交限价订单时,DEX 会以设定的价格和数量买入或卖出代币,如果当前没有能与之匹配的订单,则该订单会被挂在订单簿上,等待交易。

订单簿可以存储在链上或链下。链下的订单簿式交易所(例如 0x)需要 Relayer (指的是采用此交易协议的 DEX)将订单簿存储在中心化服务器上。而链上的订单簿式交易所不需要中心化服务器,但用户需要自己创建交易并为挂单和撤单操作支付 gas 费用,即使订单没有成交,gas 费也无法退还。

在订单簿式交易所中,做市商通过挂单来提供流动性,这些订单可以减少价差并补偿库存风险。通常,交易量越低,价差越大,因为做市商承担的流动性匮乏的风险更大。

优点

适合流动性市场。一个订单簿交易所的交易量越大、价差越小,证明一个交易所的流动性越好。在高流动性市场中,订单簿式交易所最适合于显示市场价格,并且大额订单不受价格滑点影响。Coinbase 和币安等大型中心化交易所、以及纽约证券交易所等传统交易所都依赖于订单簿模式。

缺点

不适合缺乏流动性的市场。只有当出价和要价相匹配时,订单才会被完成,反之亦然;如果订单的最高出价仍然低于最低要价,那么将无法进行交易。因此,对于流动性不足的市场,订单簿交易所将导致大额价差,交易成功率低,而且小量资金即可对市场价格造成巨大影响。

矿工抢先交易 (front-running)。部分链上订单簿式交易所面临着矿工与交易者之间的抢先交易问题。

矿工可以在交易被区块打包之前就看到所有交易。如果你下了一个大买单,一旦矿工看到这个订单,他们发现你的订单已经大到足以拉高代币价格,那么矿工便可以自己创建一个买单并把自己的买单在你之前添加到区块中。当这个区块被挖出,相当于这个矿工低价买入了代币,然后代币价格被大单拉高。矿工再高价卖出这个代币,就能无风险套利。


Uniswap是DeFi中最著名的协议之一,完全部署在链上,任何个人用户,只要安装了去中心化钱包软件(当前已经支持的钱包包括 MetaMask、WalletConnect、Coinbase Wallet、Fortmatic、Portis),都可以使用这个协议。Uniswap协议的设计结构体系与传统数字资产交易所中的交易模型完全不同。大多数传统交易所都是通过维护一个“订单簿”,来匹配一种数字资产的买卖双方。Uniswap则是利用储备金流动性来实现协议上的数字资产交易兑换。Uniswap本质是一个自动化做市商(AMM),它舍弃了传统订单薄的撮合方式,采用流动池加恒定乘积公式算法( [公式] )为不同加密资产提供即时报价和兑换服务。 

什么是Uniswap

关于什么是Uniswap,先看一下Uniswap白皮书中的定义:

Uniswap is a protocol for automated token exchange on Ethereum. It is designed around ease-of-use, gas efficiency, censorship resistance, and zero rent extraction. 

Uniswap是一个基于以太坊的自动代币交换协议,它的设计目标是:易用性、gas高利用率、抗审查性和零抽租。 

· ease-of-use(易用性):Token A换Token B,在Uniswap也只要发出一笔交易就能完成兑换,在其它交易所中可能需要发两笔交易:第一笔将Token A换成某种媒介货币,如ETH, DAI等,然后再发第二笔交易换成Token B。 

· gas efficiency(gas高利用率):在Uniswap上消耗的gas量是以太坊上的几家主流去中心化交易所中最低的,也就代表在Uniswap交易要付的矿工费最少。 


u=2575849146,1151659011&fm=253&app=138&f=JPEG&fmt=auto&q=75.jpeg


· censorship resistance(抗审查性):抗审查性体现在Uniswap上架新Token没有门槛,任何人都能在Uniswap上架任何Token。这在去中心化交易所中很少见,虽然大多数的去中心化交易所不会像中心化交易所收取上币费,但还是需要提交上币申请,通过审查后运营团队才会让Token可以在他们的交易所上交易。

· zero rent extraction(零抽租):在Uniswap协议设计中,开发团队不会从交易中抽取费用,交易中的所有费用都归还给流动性提供者。

上面的介绍中又有两个新名词:AMM automated market maker,自动化做市商;LQ liquidity provider,流动性提供者。

自动化做市商(AMM)

传统的交易所有一个订单薄(Order Book),订单薄上记录着买卖方向,数量和出价,交易所负责对买卖双方进行配对,一旦订单薄中最高价格低于或等于最低价格,就会促成交易,同时会产生一个新的成交价,传统交易所有以下特点:

· 市场上必须要有用户进行挂单,要有一定量的订单(市场流动)。
· 订单必须重叠才能成交,即买价高于或等于卖价。
· 需要将资产存储在交易所。 

在订单薄模型市场中,买家期望用最低的价格买到想要的资产,而卖家则是期望用最高价格卖出同一项资产,如果交易要成立,买卖双方必须要在价格上达成共识,一是买家提高出价,而是卖家降低出价,如果双方都不要改变出价,这时候就要依靠做市商的参与,简单来说,做市商是一个促进交易的实体,它会在买卖两个方向上挂单,让想要交易的参与方只要跟做市商的订单撮合就能完成交易,而不需要等待对手方出现才能交易,极大的提高了市场的流动性。

为什么Uniswap不采用订单薄模型?

Uniswap部署在以太坊上,而以太坊每秒可以出来15笔左右的交易,这对于订单薄交易来说不可行,主要原因是:“订单薄模型依赖一个或多个外部做市商对某项资产一直不断的做市,而以太坊的TPS过低不支持做市商高频的交易,如果缺少了做市商,那么交易所的流动性立刻会降低,对于用户来说这样的交易所体验很差。”

Uniswap采用流动池加恒定乘法公式这种自动化做市商(AMM)模式实现了资产的交换,自动化做市商模式不需要买卖双方进行挂单,也不要买卖双方的订单重叠,可以进行自由买卖。

· 流动池:使用流动池来提供买卖双方交易,做市商只要把资金放入流动池即可
· 恒定乘法公式:按照流动池中Token的数量,自动计算买卖价格

流动池

流动池就是锁定在智能合约中所有的代币以及资金的总称,流动是资金转为代币,或代币转为资金的意思。

一个完整的流动池分为两个部分,分别表示不同的货币,成为一个交易对,在Uniswap V1中就是ETH及ERC20代币,在Uniswap V2中是支持不同ERC20代币直接交换,所以在Uniswap V2中的流动池可以允许两边是不相同的ERC20代币,其中ETH会自动转换成WETH代币。为了简化,直接以ETH-ERC20交易对作为例子。

Uniswap将所有做市商的ETH集合在一起放在流动池左边,将所有ERC20集合在一起放在流动池的右边。如果有用户要买ERC20代币,就从流动池的右边将ERC20代币转给用户,同时将用户支付的ETH添加的流动池的左边,然后重新计算流动池中的价格,等待下次交易。 


159990701686180.jpg

为了吸引用户,Uniswap合约中需要有足够大的资金池,但是Uniswap无法自己变出钱来,因此需要依赖外部资金向合约中注入资金,以提供流动性,向Uniswap流动池中提供流动性的用户被称为流动性提供者。但是Uniswap如何吸引流动性提供者呢?

当流动性提供者向Uniswap中注入流动性的时候,Uniswap会铸造出一个流动性代币,铸出代币数量是与用户注入的资金所占流动池中的资金比例相关,流动性提供者可以选择在任何时间销毁自己持有的流动性代币。为了鼓励用户向Uniswap的流动池中提供更多的流动性,Uniswap会从每笔交易总额中抽取0.3%当成交易手续费,并将手续费全额交给那些将注资金到Uniswap资金池提供流动性的流动性提供者。

Uniswap通过AMM模式和为流动性提供者奖励手续费的模式,极大地调动了LP的积极性。由于任何人都可以提供流动性并且从中获利,人们有动力为Uniswap提供流动性;交易所获得充足的交易流动性,交易滑点就小,用户体验也好。交易所的运行完全基于市场的需求进行,人工的运维成本大幅降低。

在Uniswap中,交易产品的挂牌会是免费的。而且由于不需要再用交易订单的模式,而且流动性也不需要专门的做市商来提供,因此目前证券市场中的做市商的成本就可以取消。降低了上币成本和做市成本,Uniswap对DeFi和整个区块链行业的发展起到了一定的促进作用。

作为流动性提供者,虽然为Uniswap提供流动性可以获取交易手续费,但也存在无常损失(impermanent loss)。无常损失是指流动性提供者按当时的市价存入两种代币,在他要取出这些代币时,它们的兑换价格发生了变化而导致的损失。如果这两种代币中的某一个大幅上涨或下跌都可能导致无常损失。注意,不管涨还是跌,都有可能导致损失。

Uniswap的恒定乘积机制也决定了,哪一边的买入数量多,价格就会上升,同时如果买入的越晚,上涨的幅度则越快。所以,一旦一个Uniswap的代币进入了大多数人的视野,不断上涨的币价让追涨杀跌的交易者争先恐后买入,从而进一步推动价格上涨,直到没有人再买了,就开启同样的快速下跌过程。

总结

优点

完全去中心化,不依赖第三方,任何人都可以基于uniswap构建自己的应用
可以自由地创建任何ERC20交易对
与其他去中心化交易所相比gas费用更低
任何人都可以向uniswap流动池中提供流动性,人人都可以是做市商

缺点

需要依赖套利者去平衡uniswap与外部交易所之间的汇率
对大户不友好,进行大额的交易会造成很大的滑点 


返回列表

上一篇:大西洋黑奴贸易

没有最新的文章了...

相关文章

投机之王--杰西·利弗莫尔生平

投机之王--杰西·利弗莫尔生平

      1940年11月28日,著名的投机客Jesse Livermore永远的离开了这个世界,离开了他所热爱并为之奋斗终身的投机事业。在此纪念他,不仅为了他的巨大个...