什么是Uniswap? 它是如何运行?
首页
文章
什么是Uniswap? 它是如何运行?

什么是Uniswap? 它是如何运行?

中阶
发布时间 Aug 24, 2020更新时间 Dec 11, 2023
12m

摘要

Uniswap是在以太坊区块链中运行的一系列计算机程序,支持去中心化代币交换。它在“独角兽”(见标志)的帮助下运行。

交易者可以在Uniswap执行去信任化的以太坊代币交换。与此同时,所有人均可将持有的数字货币借给特殊的资金储备库,即流动性资金池,并因此获得相应的费用作为回报。

这些神奇的“独角兽”又是如何完成代币转换的呢?使用Uniswap前究竟需要做好哪些准备工作?详见本文解析。


导语

多年来,中心化交易平台始终是数字货币市场的支柱。此类平台结算速度快、交易量大,而且流动性也在不断改善。然而,现在出现了另一个以去信任化协议构建的平行世界——去中心化交易平台(DEX)。该平台无需中间商或托管方来推动交易。

由于区块链技术存在固有局限性,构建与中心化交易平台展开竞争的去中心化交易平台一直极具挑战性。多数去中心化交易平台在性能和用户体验方面都能所有提升。

许多开发人员一直在思考构建去中心化交易平台的新方法,Uniswap就是先行者之一。与更为传统的去中心化交易平台相比,Uniswap的运作方式可能较难理解,但我们很快就会意识到这种模型会带来极具吸引力的优势。 

得益于此次创新,Uniswap已成为去中心化金融(DeFi)活动中最成功的项目之一。

让我们来了解一下Uniswap是什么、如何运作以及如何只需要使用以太坊钱包就能开展代币交换。


什么是Uniswap

Uniswap是构建于以太坊的去中心化交易平台协议。更确切地说,它是一种自动化的流动性协议。交易中无需使用任何订单簿,也无需任何中心化参与方介入。Uniswap支持用户跳过中间机构直接交易,带来高度的去中心化和抗审查能力

Uniswap是开源软件,您可以访问Uniswap GitHub自行查看。

在不使用订单簿的情况下,交易是如何开展的呢?在Uniswap使用的模型中,需要有流动性供应商创建流动性资金池。该系统提供一种去中心化定价机制,实质是对订单簿深度执行平滑处理。我们将在后文中深入分析其运行方式。目前您只需要了解用户可以无缝交换各类ERC-20代币,无需使用任何订单簿。

Uniswap属于去中心化协议,不需要上币。基本上只要交易者有流动性资金池可用,即可发行任何ERC-20代币。因此,Uniswap也不收取任何上币费。从某种意义上说,Uniswap协议是一种公共产品。

Uniswap协议由Hayden Adams于2018年创建。然而,推动其实现的底层技术最初是由以太坊联合创始人Vitalik Buterin提出的。


Uniswap如何运作

Uniswap摒弃了数字交易平台的传统架构,不使用订单簿,而是使用“恒定乘积做市商模型”,该模型是自动化做市商(AMM)模型的变体。

自动做市商是一种智能合约,为交易者设置了交易所需的流动性储备金(或流动性资金池)。这些储备金均由流动性供应商注入。所有将两种等值代币存入资金池的人即为流动性供应商。反过来,交易者需要向流动性资金池支付一笔费用。此后,这笔费用将按流动性供应商在资金池所占份额进行分配。接下来,让我们来深入了解一下其运行方式。

流动性供应商通过存入两种等值代币创建市场。代币组合可由以太坊与一种ERC-20代币组成,或者由两种ERC-20代币组成。这些资金池中的资金通常是稳定币(例如DAI、USDC或USDT),但这并非强制性要求。作为回报,流动性供应商获得“流动性代币”,代表其在整个流动性资金池中占据的份额。这些流动性代币可以兑换其在资金池中占据的份额。

下面,我们以ETH/USDT的流动性资金池为例进行解析。我们将池中的以太坊(ETH)部分设为x,泰达币(USDT)部分设为y。Uniswap将这两个量相乘,计算资金中的总流动性,我们将其称为k。Uniswap的核心思路是k必须恒定不变,即资金池中的流动性总量不变。因此资金池中流动性总量的计算公式为: 

x * y = k

那么,如果有人想要交易,会是何种情形呢?

假设Alice在ETH/USDT流动性资金池中以300枚USDT购买了1枚ETH。完成交易后,她增加了资金池中USDT的比重,同时降低了ETH的比重,导致ETH价格上涨。为什么这么说呢?因为交易后,资金池中的ETH数量减少了,但流动性总量(k)必须保持恒定,价格就是由这种机制决定的。最终,ETH的买入价格取决于xy的比率在给定交易中的变化幅度。

值得注意的是,该模型不呈线性变化。实际上,订单金额越大,xy之间的失衡幅度就越大。即与小额订单相比,大额订单的价格成指数倍增长,导致滑动价差不断增加。这也表明,流动性资金池越大,处理大额订单就越容易。为何?因为这时xy之间的偏差会变小。


Uniswap v3

迄今为止,Uniswap背后的技术经历了多次迭代。如果您曾经使用过Uniswap,那很可能也用过Uniswap v2。然而,新版本总会酝酿优化和改进。所以我们来了解一下Uniswap v3做了哪些最具影响的更新。


资金使用效率

Uniswap v3最明显的变化之一与资金使用效率有关。多数自动化做市商(AMM)的资金使用效率低下,即持有的大部分资金始终并未得到有效利用。我们之前讨论过x*y=k模型,其固有特性正是导致上述情况的原因。简而言之,资金池中的流动性越强,系统就可以在更宽泛的价格区间内支持更大的订单。

然而,这些资金池中的流动性供应商(LP)所提供的流动性对应的价格曲线实际上是从0到无穷大。所有这些资金均存放其中,应对池内其中一项资产增长5倍、10倍、100倍的情况。

如果出现这种情况,这些闲置资产将确保价格曲线的相应部分仍具流动性。这意味着在达成大多数交易的价格区间,资金池仅提供一小部分的流动性。

例如,Uniswap目前锁定了大约50亿美金的流动性,但日成交量只有10亿美金左右。您可能认为这种方式欠妥,Uniswap团队也有同感,所以在Uniswap v3中解决了这个问题。

如今,流动性供应商可以自行为注入流动性的资金池设定价格范围。因此,流动性会更加集中到大多数交易活动对应的价格范围。

从某种意义上说,Uniswap v3是在以太坊中创建链上订单簿的一种基本方法,做市商可以决定只在其设定的价格范围内提供流动性。值得注意的是,这种变化有利于专业做市商,而非散户参与者。自动化做市商(AMM)的优势在于,所有人均可提供流动性并让资金运转起来。

然而,随着复杂性进一步增加,“坐享其成”的流动性供应商(LP)的交易费用收益将远低于不断优化策略的专业参与者。与此同时,不难想象会出现yearn.finance这样的聚合器,为散户流动性供应商提供支持,帮助其保持一定的竞争力。


Uniswap 流动性供应商代币作为非同质化代币(NFT)

我们现在已经知道,每个Uniswap 流动性供应商头寸都是独一无二的,因为每位储户可自行设定价格范围。这表明Uniswap 流动性供应商头寸已经无法互换,因此每个流动性供应商头寸现在均可由非同质化代币(NFT)表示。

使用同质化代币表示Uniswap 流动性供应商头寸的优点之一是其可应用于DeFi的其他领域。Uniswap v2 流动性供应商代币可作为抵押品存入AaveMakerDAO。这种情况在v3版本中已不复存在,因为每个头寸都是独一无二的。但这种可组合性被打破的问题可通过新型衍生品解决。


Layer 2中的Uniswap

过去一年来,以太坊的交易费用迅猛增长。许多小规模用户在使用Uniswap时面临巨大的经济压力。

Uniswap v3也将部署在名为“Optimistic Rollup”的Layer 2扩展解决方案中。这种方法非常巧妙,可以在扩展智能合约的同时享受以太坊网络的安全性。该部署应该会推动交易吞吐量大幅增长,用户的交易费用也会显著降低。


什么是无常损失?

我们刚才说过,流动性供应商为执行代币交换的交易者提供流动性,以此来赚取费用。除此之外,流动性供应商还有什么需要注意的吗?是的,还需要注意一种叫做无常损失的效应。

假设Alice在Uniswap资金池中存入1枚ETH和100枚USDT。代币对需要由两种等值代币构成,因此1枚ETH的价格等于100枚USDT。目前,池中共有10枚以太坊和1000枚USDT(剩余资金由与Alice一样的流动性供应商提供),Alice在资金池中占据10%的份额。此时,流动性总量(k)为10000。

如果ETH的价格升至400枚USDT,会发生什么呢?刚才说过,资金池的流动性总量必须保持恒定,如果以太坊的价格变为400枚USDT,那么这两种代币在资金池中的比率就发生了变化。此时,资金池由5枚ETH和2000枚USDT组成,原因是套利交易者将USDT注入资金池,导致池中ETH的数量下降,直至比率反映精确价格为止。因此,k恒定不变是至关重要的前提条件。

如果Alice此时决定提取资金,其将按所占份额获得资金池的10%,即0.5枚ETH和200枚USDT,总价值达到400枚USDT,貌似是一笔非常可观的收益。相反,如果不将资金存入池中,她将得到1枚以太坊和100枚USDT,总价值为500枚USDT。

事实上,与将资金存入Uniswap池相比,持有资金对Alice更有利。在这种情况下,无常损失就是指将增值代币存入资金池的机会成本。换言之,Alice将资金存入Uniswap虽然可以赚取费用,但会丧失其他盈利机会

请注意,无论存入资金之后,价格是涨还是跌,这种效应都会发生作用。这意味着,如果以太坊的价格与存入时相比有所下降,损失可能也会被放大。如想从技术角度详细了解上述内容,请阅读Pintail的文章

然而,为什么我们说这是一种无常损失呢?因为如果池中代币的价格恢复为入池时的水平,这种损失就会被减轻。另外,由于流动性供应商可以赚取费用,损失也可能随时间推移而被抹平。即便如此,流动性供应商在向池中注入资金前也必须了解这种风险。


Uniswap如何从中获利

Uniswap并不从中获利。Uniswap是一种去中心化协议,由Paradigm(一家加密货币对冲基金)提供支持。所有费用均流向流动性供应商,创始人不会从通过协议开展的任何交易中抽成。

目前,每笔交易中支付给流动性供应商的交易费用为总金额的0.3%。默认情况下,这些费用将注入流动性资金池,流动性供应商可以随时赎回。交易费用根据流动性供应商在资金池中所占份额进行分配。

部分费用未来可能会专门用于Uniswap的开发迭代。Uniswap的团队已经部署了该协议的升级版本,名为“Uniswap v2”。


➟ 想要开启数字货币之旅?欢迎前往币安购买比特币!


如何使用Uniswap

Uniswap是一种开源协议,所有人均可为此创建专属的前端应用程序。其中最常用的是https://app.uniswap.orghttps://uniswap.exchange

  1. 进入Uniswap界面。

  2. 连接您的钱包。您可以使用MetaMask、Trust Wallet或其他任何受支持的以太坊钱包

  3. 选择用来交换的代币。

  4. 选择希望换取的代币。

  5. 点击“交换”。

  6. 在弹窗中预览交易。

  7. 在个人钱包中确认交易请求。

  8. 耐心等待以太坊区块链中的交易确认完毕。通过https://etherscan.io/可以随时查看交易状态。


Uniswap (UNI)代币

UNI是Uniswap协议的原生代币,为持有者赋予治理权。这仅仅意味着UNI持有者可以对协议变更投票表决。我们此前已经讨论过,该协议可以作为一种公共产品。UNI代币巩固了这一理念。

这款代币的初始铸造总量为10亿枚,其中60%由现有的Uniswap社区成员共享,其余40%将在四年内发放给团队成员、投资者和顾问。

部分社区发放是通过流动性挖矿实现的。因此,UNI将发放至为以下Uniswap资金池提供流动性的供应商:

  • ETH/USDT

  • ETH/USDC

  • ETH/DAI

  • ETH/WBTC

Uniswap社区由哪些成员组成?任何与Uniswap合约交互的以太坊地址均是社区成员。我们来了解一下如何领取UNI代币。


如何领取Uniswap (UNI)代币

如果曾经使用过Uniswap,您可以为每个使用Uniswap的地址领取400枚UNI代币。如需领取代币:

  1. 请访问https://app.uniswap.org/.

  2. 连接之前使用Uniswap的钱包。 

  3. 点击“领取您的UNI代币”。

how-to-claim-uni-tokens-uniswap

  1. 确认钱包中的交易(访问Ethscan燃料费跟踪页面可以查看当前的燃料费价格)。

  2. 恭喜,您已正式成为UNI持有者!

需要交易手中的UNI代币?币安可以帮您搞定!


➟ 点击此处,到币安交易UNI代币!


如何在币安购买UNI

若要购买UNI,您应在币安交易平台界面兑换法币或加密货币。通过借记卡/信用卡无法直接购买UNI。可供选择交易对包括:BNBBTCBUSDUSDT或EUR。


若要使用加密货币购买UNI,则可将其他代币转入现货钱包或选择买入。我们推荐使用BUSD,其价格非常稳定。访问[购买加密货币]页面,即可通过银行卡购买BUSD。输入目标金额,然后点击[继续],填写银行卡详情。


加密货币到账后,请前往交易平台,选择目标UNI交易对。如需更改所选内容,请点击左上方的当前市场交易对。


在搜索栏中,键入所选交易对。在我们的示例中,此处需要选择UNI/BUSD。


现在,可以创建购买UNI的订单。最快的方法是通过市价单按当前现货价格交易。若要按特定价格或更优价格购买,还可以设置限价单止损限价单

若要创建市价单,请转至交易平台界面的右侧,点击[现货]。在[买入]选项卡下,必须选择[市价单]作为订单类型,然后输入希望交易的BUSD金额。最后,点击[买入UNI]下单。


如何在币安出售UNI

UNI的出售过程与购买类似。首先,您的UNI必须存入自己的币安现货钱包。如果尚未存入代币,请前往[法币和现货]页面,搜索UNI。点击[充值],了解划转UNI的具体步骤。您也可以阅读我们的《如何在币安充值》指南,获得更多帮助。


成功充值UNI后,打开交易平台页面,选择所需UNI交易对。我们以UNI/BTC为例。


使用搜索栏查找目标交易对。在本次操作中,点击[UNI/BTC]。


若要按当前市价出售UNI,请转至屏幕右侧。点击[现货]并在[卖出]选项卡下选择[市价单]作为订单类型。输入希望出售的UNI数量,然后点击[出售UNI]。


总结

Uniswap是构建于以太坊的创新型交易平台协议。它允许所有以太坊钱包持有者直接进行代币交换,无需中心化参与方介入。

尽管存在一定的局限性,但这项技术仍可能对去信任化代币交换的未来发展产生非常积极的影响。一旦以太坊2.0的可扩展性解决方案在网络上线,Uniswap也同样会从中受益。