快速了解 Uniswap-v2

原文发布在 https://github.com/33357/smartcontract-apps 这是一个面向中文社区,分析市面上智能合约应用的架构与实现的仓库。欢迎关注开源知识项目!

去中心化交易所(DEX)

去中心化交易所是指使用智能合约,部署在区块链运行的非托管式交易所。目前的主流去中心化交易所,主要有三大特征:

  • 去中心化运行:应用的运行不依赖于中心化服务器的服务;或者即使所依赖的中心化服务器宕机,应用的核心数据和服务也不会收到影响。

  • 不托管用户资产:用户无需向应用本身或者第三方托管资产,就可以获得完整的交易服务。

  • 无审核服务:应用不会对特定用户拒绝服务,也不会限制用户交易任何种类的资产。

自动化做市商(AMM)

在传统的中心化交易所当中,有专门的市商在交易所中挂买卖单,以提供资产流动性。同样,在去中心化交易所,也需要有人为资产提供流动性。然而,不同于中心化交易所挂单成本几乎为0,在区块链上进行频繁的挂单、撤单操作会消耗大量手续费,而且并不及时,这会导致市商的严重亏损。因此,去中心化交易所必需要开发出一套能在区块链上运行的自动化做市商系统,能够为提供流动性的市商自动地配置买卖双边资产,减少损失。

恒定乘积做市模型(CPMM)

Uniswap-v2 使用了恒定乘积做市模型来实现自动化做市商。其计算步骤如下:

  1. 甲在 Uniswap-v2 上提供了 1000 个 TokenA 和 100 个 TokenB 作为流动池,计乘数 Kab = 1000 * 100 = 100000
  2. 乙想要在 Uniswap-v2 上使用 100 个 TokenA 兑换 TokenB,那么 Uniswap-v2 会首先计算交易后流动池会有 1000 + 100 = 1100 个 TokenA;为了维持 Kab 的不变,就需要 TokenB 的数量减少为 100000/1100 = 90.909… 。因此,Uniswap-v2 会给乙兑换出100 - 90.909 = 9.091 个 TokenB 。
  3. 乙成功地使用 100 个 TokenA 在 Uniswap-v2 上兑换了 9.091 个 TokenB。可以预见的是,根据这套算法,乙需要兑换的 TokenA 越多,平均每个 TokenA 能兑换的 TokenB 就会越少。这就产生了滑点的概念。

简化公式:(TokenA余额 + 你出售的TokenA)*(TokenB余额 - 你获得的TokenB) = 常数K

滑点

在上面的例子中,甲在 Uniswap-v2 上提供了 1000 个 TokenA 和 100 个 TokenB 作为流动池,TokenA 和 TokenB 的标记比价为 10:1,即10个 TokenA 可以兑换 1 个 TokenB。然而在乙使用 1000 个 TokenA 在 Uniswap-v2 上兑换了 50 个 TokenB之后,其实际的交易比价约为 1000:50,实际上使用 10 个 TokenA 只能兑换 0.5 个 TokenB。这就是在 Uniswap-v2 上交易产生了滑点,滑点高达 50% 。

流动池

不同于传统中心化交易所的订单交易,可以理解为有一个和你博弈的对手,你需要买入他卖出的单子,或者等他吃掉你卖出的单子。不管买入还是卖出,在 Uniswap-v2 上的所有交易都是对流动池的交易,没有对手会直接和你做交易。

流动性凭证(LP)

当你在 Uniswap-v2 上为代币提供流动性时,Uniswap-v2 会发送给你一个流动性凭证(LP),这代表了你对你所提供流动性的所有权。要从流动池中提取资产时,必需要返回流动性凭证。因此千万不要随意转移LP到不受你控制的地址(本人血泪教训)。

无常损失

当你在 Uniswap-v2 上为代币提供流动性,赚取手续费时,会涉及到无常损失的计算。下面举一个简单的例子。

  1. 甲在 Uniswap-v2 上提供了 1000 个 TokenA 和 100 个 usdt 作为流动池,乙在 Uniswap-v2 上使用 1000 个 TokenA 兑换了 50 个 usdt,池子里剩下 2000 个 TokenA 和 50 个 usdt。

  2. 原来甲在 Uniswap-v2 上提供的总资产价值为 1000 个 TokenA 和 100 个 usdt,TokenA 对 usdt 的兑换比率为 1000 :100,可以换算为 200 个 usdt。乙兑换之后,甲在 Uniswap-v2 上提供的流动性资产价值为:2000 个 TokenA 和 50 个 usdt,TokenA 对 usdt 的兑换比率为 2000:50 ,总计为 100 个 usdt。

  3. 而如果甲本来就不提供流动性,TokenA 对 usdt 的兑换比率跌为2000:50 ,则其资产为 1000 个 TokenA 和 100 个 usdt = 125 usdt。可以看到,甲因为提供流动性多损失了25usdt,这就是资产下跌造成的无常损失。

  4. 乙改为在 Uniswap-v2 上使用 100 个 usdt 兑换了 500 个 TokenA。乙兑换之后,甲在 Uniswap-v2 上提供的流动性资产价值为:500 个 TokenA 和 200 个 usdt,TokenA 对 usdt 的兑换比率为 500:200,总计为 400 个 usdt。

  5. 而如果甲本来就不提供流动性,TokenA 对 usdt 的兑换比率涨到500:200,则其资产为 1000 个 TokenA 和 100 个 usdt = 500 usdt。可以看到,甲因为提供流动性少赚了100usdt,这就是资产上涨造成的无常损失。

简单总结:无常损失就是流动性提供者,在资产上涨过程中自动卖出,在资产下跌过程中自动买入所造成的损失。

闪电贷

闪电贷是一种新型的无抵押贷款,目前只能在区块链上实现,uniswap-v2 也完成了闪电贷的实现。其主要特点:

  • 使用闪电贷借出的资产无需任何抵押品,也不要任何身份认证,但必须在借出的同一个区块内完成还款并支付利息,否则借款就会失败并回滚交易数据。

目前来说,闪电贷的主要用途是借贷平仓、交易所搬砖、黑客攻击等。很多被黑客攻击的受害者认为闪电贷是一种危险的工具,不应该存在。但不管怎么说,它赋予了所有人用极小成本,使用极大资金的能力。

价格预言机

Uniswap-v2 所代表的去中心化交易所,提供去中心化的价格生成体系。以此为基础,可以打造出一个去中心化的价格生成和获取系统。这对于去中心化的借贷、杠杆等金融衍生品来说非常重要,虽然目前 Uniswap-v2 所代表的去中心化单一流动池价格预言机并不是完全安全的。

快速了解 Uniswap-v2相关推荐

  1. Uniswap V2白皮书翻译

    Uniswap V2核心架构 Hayden Adams Noah Zinsmeister Dan Robinson hayden@uniswap.org noah@uniswap.org dan@pa ...

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

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

  3. Anki(快速记忆软件) v2.1.14

    点击下载来源:Anki(快速记忆软件) v2.1.14 Anki是一个好用.方便且科学高效的记忆软件,既好玩,又能学习.记住知识,是一款学习的好软件.Anki结合其它方法学习效果会更好,因为它比一般传 ...

  4. Uniswap V2里的手续费换算

        在Uniswap V2中,默认是收取0.3%的手续费,这个手续费是以存入资源池的ΔX为基数计算的,即先扣除0.3%*ΔX个Token X.     先定义如下几个常用的换算公式,如图(1)所示 ...

  5. uniswap v2 代码解读注释

    文章目录 注意事项 UniswapV2Factory UniswapV2Router02 uniswap 闪电贷(待补充) uniswap 添加/移除lp时手续费公式(待补充) 注意事项 部分说明 首 ...

  6. nTrun(快速启动软件) V2.0.1 简体中文绿色版是什么

    nTrun是一款程序快速启动工具,它是新一代快速启动软件,您要做的仅仅是把软件添加到程序之后,便可通过系统功能"运行",来启动您添加的软件.它可完全关闭;它可让你第一次感受到敲击键 ...

  7. Assetizr(图片快速处理软件)v2.1.1官方版

    Assetizr是一款图片处理软件,可以帮助用户快速的编辑图片尺寸,非常的方便好用,还能对图片进行压缩处理,支持图片重命名,还可以批量操作,有需要的用户可以下载. 软件介绍: Assetizr将最佳化 ...

  8. Sketchup快速分割插件v2.1.1绿色版

    Sketchup快速分割插件是款针对sketchup软件的模型快速风格的插件.它可以平面或曲面按照两个方向进行分割,极大的提高制作效率,有需要的小伙伴们不要错过了. 主要功能: 1.快速分割插件功能可 ...

  9. Uniswap V3的流通性突破5亿美元,24小时交易量仅次于V2和Sushiswap

    据欧科云链OKLink数据显示,截至今日10时30分,以太坊上Dex 24小时交易量约合32.2亿美元.其中交易量排名前三的Dex协议分别是Uniswap V2 11.3亿美元,SushiSwap 4 ...

  10. 以太坊--Uniswap分享

    基础介绍 Uniswap是一个用于以太坊上自动代币交换的协议.它围绕易用性.gas使用效率.抗审查性和零抽租而设计.其主要特点是抛弃了cex的订单簿交易方式,采用设计的恒定乘积做市商机制.2020年9 ...

最新文章

  1. HarmonyOS Java工程目录结构
  2. deltasql 1.6.0 发布,数据库模型版本控制
  3. 产品创新必备方法论:国外系统的产品创新
  4. Spark _09资源调度和任务调度
  5. mysql 5.5.41 下载_MySQL 5.5.41/5.6.22 发布下载
  6. 前端学习(507):垂直居中的第二种方式的优缺点
  7. linux yum下载RPM包后再安装LAMP环境
  8. memcache面试
  9. android学习的java,android学习之java常识
  10. 生命的密码 —— DNA
  11. flex blazeds java_flex使用blazeds和java交互类型问题
  12. 【项目经理之修炼(9)】《初级篇》谦虚也是可以修炼的
  13. IP地址自动切换脚本
  14. 读《从优秀到卓越》乱摘
  15. ROS2探索(一)Publisher-Subscriber的内部过程
  16. 用外置的tocat运行springboot项目的四个步骤
  17. 简单的封装知识 RDL,TSV, Bump,Wafer
  18. ThinkPHP 5.0常用助手函数
  19. Swoole 介绍以及三步快速安装 swoole 教程
  20. 在Ubuntu 18.04上用源码安装GVM 20.08

热门文章

  1. 清华大学孙茂松:NLP 面临的三大真实挑战
  2. sdcms_php_web,SDCMS通杀漏洞
  3. Laravel安装及环境的配置(XAMPP集成开发环境下)
  4. TP4067是一款完整的单节锂电池充电器,世界首创带电池正负极反接保护、输入电源正负极反接保护的单芯片
  5. 打死都不要进外包,看看我在阿里外包的2年...
  6. 虚拟服务器C盘备份,电脑换主机怎么备份_电脑换主机c盘怎么备份
  7. 明明是“脱毛膏”,却被当做“生发剂”的生姜
  8. u盘修复计算机w7,怎么用u盘修复系统开启,win7旗舰版!
  9. Java实现二维码,验证码详细总结
  10. 7-3 排队接水(C++)