主页 > imtoken怎么退出账号 > btc兑换eth Uniswap的做市原则

btc兑换eth Uniswap的做市原则

imtoken怎么退出账号 2023-01-17 08:39:18

Uniswap 是一种基于以太坊的协议,旨在促进 ETH 和 ERC20 代币数字资产之间的自动兑换交易。 Uniswap 完全部署在链上。 任何个人用户只要安装了去中心化钱包软件(目前支持的钱包包括 MetaMask、WalletConnect、Coinbase Wallet、Fortmatic 和 Portis)都可​​以使用该协议。 Uniswap 也可以被认为是一个 DeFi 项目btc兑换eth,因为它试图使用去中心化协议来完全去中心化数字资产交易过程。

Uniswap 中有两种类型的智能合约:

交易合约工厂合约 这些智能合约是用 Vyper 智能合约编程语言编写的,它们是 Uniswap 协议实现各种功能的核心组件。 一个交易合约支持一个ERC20代币,每个交易合约都预留一定数量的ETH和支持的ERC20代币。 这意味着在 ERC20 代币-ETH 交易合约中执行的交易均基于该合约中 ETH 与 ERC20 代币的相对供应量。

通过ETH作为中介,交易合约还可以实现一种ERC20代币与另一种ERC20代币之间的直接交易。

工厂合约可用于部署新的交易合约。 因此,任何在 Uniswap 上没有交易合约的 ERC20 代币都可以使用工厂合约来部署交易合约。 任何以太坊用户都可以通过“createExchange()”函数来做到这一点。 工厂合约在 Uniswap 中扮演着交易合约“注册中心”的角色。 工厂合约可用于查找所有已添加到 Uniswap 系统中的 ERC20 代币和交易地址。 交易合约发布后,工厂合约不会对交易合约中的ERC20代币进行背景调查等操作。 只有“一个交易合约只能包含一个ERC20代币”的限制。 因此,用户应该只参与他们信任的那些ERC20代币项目的交易。

Uniswap 上的资产流动性

Uniswap协议的设计结构体系与传统数字资产交易所的交易模型完全不同。 大多数传统交易所通过维护“订单簿”来匹配数字资产的买卖双方。 Uniswap 则完全不同。 它利用储备金的流动性,实现协议上数字资产的兑换。

交易合约中的准备金是由许多“流动性提供者”提供的。 这些流动性提供者将等值的 ETH 和 ERC20 代币充值到这个交易合约中。 第一个为本合约提供流动性的流动性提供者有权设定该 ERC20 代币与 ETH 之间的汇率。 第一个流动性提供者充值他们认为与交易合约等值的ETH数量和ERC20代币数量,然后就可以设置汇率了。 而如果第一流动性提供者设定的汇率与外面更大的市场不一致,那么套利交易者就会用砖头来抹平这些价差,保持与大盘一致的汇率。 之后,所有流动性提供者将以充值时的汇率作为计算等值的依据。

Uniswap 还发行了一种“流动性代币”,它也符合 ERC20 标准。 该流动性代币代表流动性提供者对该交易合约的贡献。 Uniswap 限制“一个交易合约只支持一个 ERC20 代币”背后的逻辑是鼓励流动性提供者将他们提供的流动性集中到一个交易合约的储备金中。 Uniswap 发行流动性代币来追踪每个流动性提供者贡献的准备金占总准备金的比例。 流动性提供者可以随时选择销毁其持有的流动性代币,然后从交易合约中赎回相应比例的ETH和ERC20代币。

流动性提供者也可以选择直接出售或转让他们持有的流动性代币,而无需从交易合约中移除流动性。 然而,Uniswap 流动性代币严格限于交易合约,并没有与 Uniswap 协议相关联的单独的基础原生数字资产。 流动性提供者通过调用“addLiquidity()”函数向交易合约充值流动性,一旦交易发生,流动性提供者将获得一定份额的交易手续费作为回报。

Uniswap上的一种交易类型:ETH ERC20交易

可以在 Uniswap 上进行的交易之一是 ETH 和 ERC20 代币之间的交易。 如前所述,该交易对的汇率取决于交易合约中 ETH 的相对大小和 ERC20 代币的流动性池。 该汇率由 Uniswap 的常数乘积公式确定:

ETH 池 * 代币池 = 恒定产品价值

对于在 Uniswap 上执行的任何交易,这个恒定的产品价值保持不变。

只有当这个交易合约中的流动性池发生变化时,不变的产品价值才会发生变化。

我们以 ETH BAT(一种 ERC20 代币)为例:

Bob 想发起一笔交易,将自己的 1 ETH 兑换成 ERC20 代币 BAT,Bob 将使用 Uniswap 上已有的 BAT 交易合约来实现这一兑换操作。 此时,流动性提供者已经在交易合约中存储了一定数量的ETH和BAT。 这里举个例子,流动性提供者总共有10ETH和500BAT。 因此,潜在的恒定乘积值为:

ETH 池 * BAT 池 = 恒定产品价值

ETH 池 = 10

BAT池 = 500

恒定乘积值 = 500 * 10 = 5000

Bob 将通过发送 1ETH 到交易合约的 ETH 池来开始交易。 此时将扣除交易金额的0.3%,即0.003ETH,作为对流动性提供者的奖励。 剩余的 0.997ETH 被添加到 ETH 池中。 然后,用常数乘积值除以 ETH 池中新的 ETH 数量,得到 BAT 池中应该有的数量。 额外的 BAT 可以分配给 Bob。 详情如下:

Bob 发送 1 ETH

手续费 = 0.003 ETH

ETH 池 = 10 + (1 – 0.003) = 10.997

BAT池 = 5000/10.997 = 454.67

Bob 将兑换得到:500 – 454.67 = 45.33 BAT

Bob 开始交易时收取的流动性提供者费用现在被重新添加到 ETH 流动性池中。 这是对流动性提供者的奖励,他们可以在从流动性池中提取 ETH 和 ERC20 代币时获得这些奖励。 由于这些流动性提供者的奖励是在上述兑换交易计算后加回到ETH流动性池中的,因此交易合约上每执行一次交易,恒积值都会增加一点,这使得流动性供应商为交易支付合约提供流动性的事实已经成为一种盈利行为。 本次交易完成后,

ETH 池 = 10.997 + 0.003 = 11

BAT池 = 454.67

新的常量乘积值 = 5,001.37

本次交易中,Bob兑换的汇率为45.33 BAT/ETH

1 ETH 入

45.33 BAT 输出

汇率 = 45.33 BAT/ETH

Uniswap 上的第二种交易类型:ERC20 ERC20 交易

可以在 Uniswap 上执行的另一种交易类型是将 ERC20 代币换成另一个 ERC20 代币。 由于ETH被视为所有ERC20代币的公开交易对,Uniswap以ETH作为中介资产,实现ERC20代币与ERC20代币之间的兑换交易。 例如,Uniswap 可以实现:在一个交易合约中将 BAT 转换为 ETH,然后在另一个交易合约(例如另一个 ERC20 代币)中将 ETH 转换为 OMG,这一切都发生在一次交易操作中。

上面提到的常数乘积公式与一般市场非常相似,因为你想购买的代币越多,这笔交易的边际汇率就会越高。 这部分我们后面会详细介绍。

Uniswap 费用

Uniswap 对已发生的交易收取费用如下:

ETH/ERC20 代币交易:ETH 交易量的 0.3% ERC20 代币/ETH 代币交易:ERC20 代币交易量的 0.3% ERC20/ERC20 交易:ERC20 代币交易量和中间 ETH 交易量的 0.3% Uniswap 代币交易所总量的 0.3%速度

Uniswap 用于确定代币交易汇率的常数乘积公式最初来源于 Vitalik Buterin 于 2018 年 3 月发表的一篇文章。如本文所述,ERC20 代币的交易汇率是根据以下公式计算的:

x * y = k

k代表一个不变的常数

x 和 y 代表特定交易对中 ETH 和 ERC20 代币的可用数量。

对于Uniswap来说,就是ERC20代币与ETH的交易合约中ETH的储备量和ERC20代币的流动性池。 在这个公式中,ERC20代币与ETH的兑换率会一直处于这个公式结果曲线上的某一点。

该公式是 Uniswap 协议的组成部分。 如果我们以 Uniswap 中的交易合约为例,这意味着交易合约保留了 x 个 A 代币和 y 个 B 代币。 该合约将始终保持乘积不变,即 x * y 产生相同的 k 值。

任何人都可以通过有效地改变做市商在 x*y 曲线上的位置来买卖代币。

横轴表示卖出的 A 代币数量,纵轴表示买入的 B 代币数量。

假设代币B是ETH,代币A是任意ERC20代币,我们可以用公式x * y = k来理解它们的作用:

如果 Alice 决定购买大量的 A 代币,将导致 A 代币短缺和 ETH 数量增加。 爱丽丝的购买行为导致汇率移动到 x * y = k 曲线上的另一点。

红点会向左移动,即买入A代币的价格变高。

Uniswap 交易合约中 ETH 和 A 代币的相对供给量,也可以理解为 A 代币的供求关系,决定了 A 代币与 ETH 的兑换率。

如前所述,为交易合约提供流动性的第一个充值操作不依赖于交易汇率。 反之,后续交易汇率将取决于首次为交易合约提供流动性的充值操作中充值了多少ETH和ERC20代币,体现为首个流动性提供者交易所考虑的等值价值ERC20/ETH 的汇率。 如果汇率与市场相比过高或过低,套利交易者会迅速抹平缺口,直到市场处于正常水平。

Uniswap 和套利交易

需要强调的是,虽然 Uniswap 是一个去中心化的链上数字资产交易平台,但它并不是要取代中心化交易所。 因为如果 Uniswap 上的交易机制出现偏差,必须有一个正常的交易机制来纠正这一点。 这种修正过程以套利交易的形式存在。

套利交易是一种利用不同交易市场之间的价格差异来获取利润的交易策略。 在数字加密货币领域,某种加密货币资产可以在不同交易所之间找到价差。 如果交易者发现套利机会,他们将在一个交易所购买加密货币并在另一个交易所出售。 套利交易对 Uniswap 的功能至关重要,因为套利交易者可以利用其他加密货币交易所存在的汇率来纠正 Uniswap 上可能存在的汇率偏差。

Uniswap 和 Gas 消耗

使用 Uniswap 协议进行交易所交易的优势之一是,与其他去中心化交易所相比,Uniswap 上交易的 Gas 成本非常低。 Gas消耗水平如下表所示,ERC20/ETH、ETH/ERC20、ERC20/ERC20远低于Bancor和EtherDelta。

节省 Gas 只是 Uniswap 协议的优势之一,更多的优势包括:

Uniswap 是去中心化的btc兑换eth,因此它不依赖于任何第三方。 另外,任何用户都可以免费访问。 与其他数字资产交易平台相比,Uniswap 的交易成本更低。 Uniswap 允许任何用户为任何 ERC20 代币创建交易合约。

当然,Uniswap 也有其局限性:

Uniswap确实依靠套利交易来保证交易汇率与市场一致,也就是说Uniswap依靠其他交易所的交易汇率来保证自身的汇率平衡。

Uniswap 目前仍处于试验阶段,需要对其进行更多的开发,以专注于促进数字资产交易的效率。

以太坊分析DAPP开发