一文读懂Uniswap V2的改进与创新

2023-11-05

Uniswap V2是链上交易所的下一个迭代产品。

Uniswap是Ethereum区块链上的一个链上流动性协议,它可以实现无信任的代币交换,这意味着所有的交易都是由智能合约执行的,而不需要中介或受信任方。这种去中心化的交换代币的方法已经被证明受到ERC20代币持有者的欢迎,以交换他们的代币并为代币对提供流动性。

Uniswap于2020年5月19日在Ethereum 主网上推出了第二个版本,以配合核心合约v1.0.1的发布,在此之前,Uniswap已经在Rinkeby testnet上测试了一段时间。在撰写本文时,该协议已经在主网上使用了2个多月,到目前为止,还没有发生与智能合约完整性有关的重大破损或问题。

如果你对持有和/或交易加密货币、Ethereum发展、金融科技或一般的金融趋势感兴趣,Uniswap应该会吸引你的注意。它在2020年第三季度经历了快速增长,以配合蓬勃发展的DeFi领域。Uniswap作为一个独立的服务存在,但也可以整合到第三方钱包或Dapps中。除此之外,其他智能合约也依靠Uniswap作为其服务的基础。

本篇将以中立的方式向读者介绍与Uniswap V2一起推出的增强功能,详细介绍主要功能。

Uniswap V1提供的基础

Uniswap V1 奠定了链上代币交换和去中心化流动性池的基础,为用户提供流动性的奖励,并收取少量费用进行交换。

代币汇率不是实盘,而是使用所谓的 "恒定产品公式 "来计算,这一点将在下面简单重温。它本质上提供了一种机制,以保持代币价值相对于相关代币对的平衡。

基础代币对(如DAI兑换ETH,或DAI兑换USDC)都有与之相关的独立流动性池,用户可以通过将其中任何一种代币存入相应的池子来贡献流动性。然后,每当有交易发生时,流动性提供者就会得到0.3%的手续费分成奖励--这个分成是基于其池中代币相对于整个池子供应量的比例。

Uniswap V2中的新内容

Uniswap V2为协议带来了一系列升级和增强,这些升级和增强建立在第一个迭代引入的交换和流动性机制的基础上。主要变化包括

ERC20到ERC20的代币交换,其中ETH不再需要作为中介代币来促进交换过程。这也被称为 "ETH桥接"。取消这一要求后,交易次数减少了一半,节省了gas费。这也使得Dapps在没有设置直接交换代币池的情况下,可以有效地找到从一个代币到另一个代币的 "路线"。本篇将进一步详细访问这些变化。

价格预言机功能,允许根据每个区块的代币对价格进行时间加权平均定价。我们将详细解读这个机制背后的机制。

闪电交换,或者说能够从Uniswap池中 "借用 "代币,与外部服务进行一些任意交易,并在一次交易中偿还你最初的借贷资金。该交易是具有原子性的,这意味着如果在任何阶段交易失败,它将被全额还原。这种功能的明显用例是利用流动性池执行套利交易,但也有其他用例提供了好处,比如削减执行特定DeFi操作的gas费用,比如关闭Maker Vault。

通过将无效返回类型的transfer和transferFrom视为成功转移,支持非标准的ERC20代币。这看起来似乎微不足道,但主要的代币如USDT(Tether)和BNB(Binance Coin)在它们的转移方法上正是这样做的。包括广泛采用的没有完全遵守ERC20标准的代币,加强了Uniswap在使用量上优先链上交易所的主张。

额外的实用方法,以防止在转移的代币数量超过Solidity所能支持的情况下出现溢出。

非标准ERC20代币必须支持官方EIP规范中指定的方法,但返回类型以及由此产生的方法签名可能与概述的内容不同。这个问题使得令牌成为非标准的。重命名或删除所需的方法也会使令牌成为非标准,但这种做法较少,而且如果像Uniswap这样的协议想要支持这种与最终确定的规范的偏差,则需要大量的变通方法。

Uniswap V2引入了一个可切换的0.05%的协议收费,它吃掉了标准的0.3%的费用,但它目前是关闭的--只有通过去中心化的治理机制才能开启。关于这一点,我们将在下文中介绍更多。

Uniswap V2在经过广泛的测试和审计后推出。

<
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一文读懂Uniswap V2的改进与创新 的相关文章

  • 测试方法——边界值法

    边界值测试方法 边界值方法是一种比较常用的测试方法 在很多软件测试中都会应用到 一 应用条件 只要有输入框输入数据的地方 就可以用边界值这一方法来测试 一般与等价类划分共同使用 找到有效数值和无效数值之间的分界点及其两边的点进行测试 二 测

随机推荐

  • Jmeter进阶使用指南-使用参数化

    Apache JMeter是一个广泛使用的开源负载和性能测试工具 在进行性能测试时 我们经常需要模拟不同的用户行为和数据 这时候 参数化就显得尤为重要 此文主要介绍如何在JMeter中使用参数化 什么是参数化 参数化是一种将静态值替换为动态
  • 深入理解HashMap和LinkedHashMap的区别

    简介 我们知道HashMap的变量顺序是不可预测的 这意味着便利的输出顺序并不一定和HashMap的插入顺序是一致的 这个特性通常会对我们的工作造成一定的困扰 为了实现这个功能 我们可以使用LinkedHashMap LinkedHashM
  • 【配电变电站的最佳位置和容量】基于遗传算法的最优配电变电站放置(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 基于遗传算法的最优配电变电站放置 为了实现
  • iseacms1.0漏洞复现

    iseacms1 0漏洞复现 作者 admin 时间 2021 06 29 分类 漏洞复现 Index php源码 文件包含 参数转义了 0 利用方式有限在网站目录有phpinfo php文件的前提下 payload为 index r te
  • 【十三】Nacos 服务注册和配置中心

    目录 Nacos 初识 Nacos 服务部署 注册中心服务部署 服务提供者注册到Nacos 服务消费者从Nacos获取服务 负载均衡 Nacos 服务详解 实列服务详情详解 Nacos 初识 Nacos Dynamic Naming and
  • Android 输入框的输入提示效果(AutoCompleteTextView)

    在一些体验较好的APP中 输入框输入时会有相应的提示 让人能够很快的通过点击提示进入下一步 这里 我就通过自己构思 实现了一个通过 SharedPreferences 保存的输入提示 demo 实现 1 实现一个 SharedPrefere
  • opencv项目实战(二)——文档扫描OCR识别

    一 项目描述 二 代码详解 2 1 预定义参数 2 2 辅助函数 2 3 文档矫正 2 4 文档识别 三 项目完整代码 一 项目描述 目的 将图片中的文档矫正 并识别文档内容 输入与输出 方法流程 核心思想 采用tesseract ocr进
  • 前端在vue2框架中导出PDF

    1 需求 导出具有页眉页脚 页码的Pdf 并且解决Pdf分割的问题 2 实现思路 该需求主要的难点在于分页的时候容易出现分割问题 并且要将页眉页脚加进去 实现的大概思路 1 先使用jsPDF html2canvas将页面可以导出 2 第一页
  • PHP 8突破性变化

    新的PHP首要版别PHP8估计将于2020年底发布 它现在正处于十分活泼的开发中 所以在接下来的几个月里 开发速度和开发进程或许会有很大的改动 在这篇文章中 我会罗列出PHP8中会发作的一些改动 新功能 性能改善和突破性改动 由于PHP8是
  • redis 二. string 应用场景及底层分析

    String 字符串类型 一 简单命令示例 二 java 操作示例 基础 setnx 与 getset 三 使用场景举例 统计点击次数 四 底层分析 SDS 嵌入式动态字符串 再次总结 一 简单命令示例 String字符串类型 一个key对
  • Netty入门详解

    Netty是什么 Netty是 一个异步事件驱动的网络应用程序框架 用于快速开发可维护的高性能协议服务器和客户端 本质 网络应用程序框架 实现 异步 事件驱动 特性 高性能 可维护 快速开发 重要的类 方法解析 EventLoop Even
  • B站最全:给小白的Python入门教程

    如今绝大多数互联网公司 谷歌 腾讯 阿里 百度 知乎等 的很多职位要求应聘者必须具有 Python技能 学会了 Python 等于手握他们的敲门砖 0 编码基础的你 学会 Python 以后 你一个人可以做五个人的工作 最主要的是下班早 月
  • JAVA内部类

    内部类是一种类的结果扩充 一个类的内部除了属性和方法外 还可以存在其他类的结构 并且内部类也可以定义在方法或代码块中 基本概念 所谓的内部类指的就是在一个类的内部继续定义其他内部结构类 观察内部类的基本形式 package oop 观察内部
  • 服务器更换系统教程视频,更换服务器教程视频

    更换服务器教程视频 内容精选 换一换 本节操作介绍如何在移动设备上连接Linux实例 以iTerminal SSH Telnet为例介绍如何在iOS设备上连接 Linux 实例 详细操作请参考IOS设备上登录Linux云服务器 以Juice
  • vue调用视频播放插件

    安装依赖 npm install vue video player S 引入配置 import VideoPlayer from vue video player require video js dist video js css req
  • 如何直接关闭使用3306端口的进程

    要直接关闭使用3306端口的进程 你可以按照以下步骤进行操作 以关闭占领3306端口MySQL服务为例 获取占用3306端口的进程ID PID 在终端中执行以下命令 sudo lsof i 3306 查找输出中的进程ID PID 列 以及它
  • shell IF条件判断,判断条件

    http hi baidu com ryouaki item 0689dcb8a467b5a7eaba9319 前言 无论什么编程语言都离不开条件判断 SHELL也不例外 if list then do something here eli
  • k8s笔记17--ubuntu & k8s 开启 swap功能

    k8s笔记17 k8s 中途开启 swap功能 1 介绍 2 方法 2 1 ubuntu 开启swap 2 2 k8s 开启swap 3 说明 1 介绍 swap 功能是 linux是一个非常强大的功能 类似于windows的虚拟内存 当内
  • 【vue3+elementPlus】在el-table中使用popconfirm、popover、tooltip、select时,出现placement错位或者框被table的列遮挡的解决方案

    首先 第一种情况 项目设置了zoom 会导致el popconfirm el popover el tooltip el select位置不对 解决方案 temported false 给以上标签加该属性 意思是不插入body el pop
  • 一文读懂Uniswap V2的改进与创新

    Uniswap V2是链上交易所的下一个迭代产品 Uniswap是Ethereum区块链上的一个链上流动性协议 它可以实现无信任的代币交换 这意味着所有的交易都是由智能合约执行的 而不需要中介或受信任方 这种去中心化的交换代币的方法已经被证