SUAC交易所平台百科:Uniswap到底是怎么运转的?

  • A+
所属分类:心理检查

SUAC交易所平台怎么样?在关于SUAC交易所平台正规吗?还有【SUAC交易所平台怎么样】可靠吗?甚至是SUAC交易所平台技术创新如何等,都是大家想知道并了解的Uniswap是一种基于以太坊的协议,旨在促进ETH和ERC20 代币数字资产之间的自动兑换交易。Uniswap完全部署在链上,任何个人用户,只要安装了去中心化钱包软件(当前已经支持的钱包包括 MetaMask、WalletConnect、Coinbase Wallet、Fortmatic、Portis),都可以使用这个协议。Uniswap也可以被认为是一个DeFi项目,因为它试图利用去中心化协议来让数字资产交易过程中彻底实现去中介化。

Uniswap 中包含两种类型智能合约:

交易合约、工厂合约

这些智能合约是用Vyper智能合约编程语言来编写的,它们是Uniswap协议实现各种功能的核心组成。一个交易合约支持一种ERC20代币,每一个交易合约都储备持有一定量的ETH以及支持的这种ERC20代币。这意味着,在某个ERC20代币-ETH交易合约中执行的交易,都是基于这个合约中的 ETH和此种ERC20代币的相对供应量来实现的。

SUAC交易所平台百科:Uniswap到底是怎么运转的?

通过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 池 * token 池 = 恒定乘积值

在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将通过向交易合约的ETH池发送1ETH来启动这笔交易,此时,交易金额的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,再在另一个交易合约中将ETH兑换为OMG(举例另一种ERC20代币),这些都是发生在一个交易操作里面。

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

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: