简介
每个 Uniswap 流动性资金池是一对 ERC20 代币的交易场所。当一个 pool contract
被创建时,它的每个代币的余额为 0;为了让池子开始促进交易,必须有人用每个代币的初始存款作为种子。这第一个流动性提供者是设定资金池初始价格的人。他们被激励将同等价值的两种代币存入池中。为了了解原因,考虑第一流动性提供者以不同于当前市场利率的比率存入代币的情况。这立即创造了一个有利可图的套利机会,这很可能被外部方所利用。
当其他流动性提供者加入现有的池子时,他们必须按当前价格的比例存入配对代币。如果他们不这样做,他们增加的流动性也有被套利的风险。如果他们认为当前的价格不正确,他们可以将其套利到他们想要的水平,并以该价格增加流动性。
Pool tokens
每当流动性被存入资金池时,被称为流动性代币的独特代币就会被铸造出来并被发送到提供者的地址。这些代币代表一个特定的流动性提供者对资金池的贡献。所提供的资金池流动性的比例决定了提供者收到的流动性代币的数量。如果提供者正在铸造一个新的池子,他们将收到的流动性代币数量将等于 sqrt(x * y)
,其中 x 和 y 代表每个代币的提供量。
每当有交易发生,就会向交易发送者收取 0.3% 的费用。这笔费用在交易完成后按比例分配给池中的所有 LPs。
为了取回基础流动性,加上任何应计费用,流动性提供者必须 “燃烧” 他们的流动性代币来换取他们在流动性池中的部分,以及按比例分配的费用。
由于流动性代币本身是可交易的资产,流动性提供者可以以他们认为合适的方式出售、转让或以其他方式使用其流动性代币。
通过高级主题了解更多信息。
Why pools?
Uniswap 的独特之处在于,它不使用订单簿来推算资产的价格或匹配代币的买家和卖家。相反,Uniswap 使用所谓的流动资金池。
流动性通常由个人在集中操作的订单簿上放置的离散订单表示。希望提供流动性或做市的参与者必须积极管理他们的订单,根据市场上其他人的活动不断地更新他们。
虽然订单簿是金融业的基础,并且在某些情况下非常有效,但它们受到一些重要的限制,尤其在应用于去中心化或区块链原生环境时更加放大了这些限制。订单簿需要中介基础设施来托管和匹配订单。这创造了控制点,增加了额外的复杂性。它们还需要做市商的积极参与和管理,做市商通常使用复杂的基础设施和算法,限制了高级交易者的参与。订单簿是在一个交易资产相对较少的世界中发明的,所以对于一个任何人都可以创建自己的代币的生态系统来说,它们并不理想,而且这些代币通常具有较低的流动性,这一点也不奇怪。总而言之,考虑到以太坊这样的平台作为基础设施,订单簿不是在区块链上实施流动性协议的原生架构。
Uniswap 专注于以太坊的优势,从第一原则出发重新构想代币交换。
一个区块链原生的流动性协议应该利用可信的代码执行环境,自主和永久运行的虚拟机,以及一个开放的、无权限的和包容性的访问模型,产生一个指数级增长的虚拟资产生态系统。
需要重申的是,一个 Pool 只是一个智能合约,由用户在上面调用函数来操作。交换代币就是在 Pool 合约实例上调用 swap
,而提供流动性就是调用 deposit
。
正如终端用户可以通过 GUI 与 Uniswap 协议互动,开发者可以直接与智能合约互动,并将 Uniswap 功能整合到他们自己的应用程序中,而无需依赖中介机构或需要许可。
Developer resources
查看如何在智能合约中建立代币池参见Providing Liquidity
评论