怎么发音 Uniswap | HowToPronounce.com
词典
集合
测验
社会
贡献
Certificate
网站的语言
中文
Deutsch
English
Español
Français
Italiano
Magyar
Nederlands
Polski
Português
Pусский
Română
Svenska
Türkçe
čeština
Ελληνικά
עִברִית
日本人
没有找到结果
{{app.scroll_content}}
Uniswap 如何发音?
英语
发音
集合
测验
所有的语言
{{app['fromLang']['value']}} -> {{app['toLang']['value']}}
{{app['user_lang_model']}}
x
发音
翻译
集合
测验
X
"确定"
英语
南非荷兰语
阿尔巴尼亚
阿姆哈拉语
阿拉伯文
亚美尼亚
azerbaijan
巴斯克
孟加拉
波斯尼亚
保加利亚
缅甸
加泰罗尼亚语
中国
克罗地亚
捷克
丹麦
荷兰
世界
爱沙尼亚
菲律宾人
芬兰
法语
加利西亚
格鲁吉亚
德
希腊
古吉拉特
希伯来语
印地语
匈牙利
冰岛
印度尼西亚
爱尔兰
意大利语
日本
爪哇
卡纳达语
哈萨克斯坦
高棉
韩国
老挝
拉丁
拉脱维亚
立陶宛
马其顿
马来
马拉雅拉姆语
马耳他
马拉
蒙古
尼泊尔
挪威
普什图语
波斯
波兰
葡萄牙
罗马尼亚
俄罗斯
塞尔维亚
僧伽罗语
斯洛伐克
斯洛文尼亚
索马里
西班牙语
巽
斯瓦希里语
瑞典
泰米尔
泰卢固语
泰国
土耳其
乌克兰
乌尔都语
乌兹别克斯坦
越南语
威尔士
祖鲁语
所有的语言
英语
阿拉伯文
缅甸
中国
法语
德
印地语
印度尼西亚
意大利语
日本
韩国
葡萄牙
俄罗斯
西班牙语
土耳其
{{temp['translated_content']}}
添加的词
100
增加一个发音
150
添加收藏
200
创建测验
500
登录在 或
注册
发音
试音
含义
测验
集合
评论意见
学学怎么发音的 Uniswap
Uniswap
X
X
评价的困难发音
4
/5
(1 投票)
很容易的
容易的
温和的
困难
非常困难的
谢谢你的投票!
发音 Uniswap 1 个音频发音
0
评价
评价
收视率
记录和聆听的发音
实践模式
x
x
x
记录
点击记录键的发音
不幸的是,这一浏览器,不支持语音记录
不幸的是,这种设备不支持话音记录
记录
点击记录再次按下按钮来完成记录
玩
停止
再次记录
贡献 adduse
您可以将 Uniswap 的音频发音贡献给 HowToPronounce 词典。
贡献
你完成了你的记录?
是的
不,我想继续
你完成了你的记录?
是的
不,我想继续
谢谢你的贡献
恭喜! 你已经得到了发音Uniswap权利。 跟上。
哎呀! 似乎喜欢你发音Uniswap不是正确的。 你可以再试一次。
原始音频
你的声音
恭喜!你已经赚了 {{app.voicePoint}} points
再试一次
因为你已经超过了你的时间限制,你的记录已经停止。
"确定"
你能读这个词更好
或者宣布在不同的口音
促进模式
x
x
x
记录
点击记录键的发音
不幸的是,这一浏览器,不支持语音记录
不幸的是,这种设备不支持话音记录
记录
点击记录再次按下按钮来完成记录
玩
停止
再次记录
贡献 adduse
您可以将 Uniswap 的音频发音贡献给 HowToPronounce 词典。
贡献
你完成了你的记录?
是的
不,我想继续
你完成了你的记录?
是的
不,我想继续
谢谢你的贡献
恭喜! 你已经得到了发音Uniswap权利。 跟上。
哎呀! 似乎喜欢你发音Uniswap不是正确的。 你可以再试一次。
原始音频
你的声音
恭喜!你已经赚了 {{app.voicePoint}} points
再试一次
因为你已经超过了你的时间限制,你的记录已经停止。
"确定"
含义为 Uniswap
A popular decentralized finance protocol was founded in 2018.
0
评价
评价
收视率
Thandi Jacobs
添加一个含义
取消
谢谢你的贡献
你是不是记录。.
请
登录在 或
注册
或职位作为一个客人
提交
测验Uniswap
{{ quiz.name }}
{{ quiz.questions_count }} 的问题
玩
显示 更多 更少 测验
上Uniswap的收藏
{{collection.cname}}
{{collection.count}}
查看收藏
-私
-{{collection.uname}}
显示 更多 更少 集合
添加 Uniswap 详细信息
语音拼写Uniswap
添加语音拼写
取消
谢谢你的贡献
你是不是记录。.
请
登录在 或
注册
或职位作为一个客人
提交
Uniswap 的同义词
增加的同义词
取消
谢谢你的贡献
你是不是记录。.
请
登录在 或
注册
或职位作为一个客人
提交
反义词 Uniswap
添加的反义词
取消
谢谢你的贡献
你是不是记录。.
请
登录在 或
注册
或职位作为一个客人
提交
例子Uniswap中的一个句子
添加一个句子
取消
谢谢你的贡献
Uniswap应当在句子
你是不是记录。.
请
登录在 或
注册
或职位作为一个客人
提交
翻译 Uniswap
增加翻译
取消
谢谢你的贡献
选择一种语言
南非荷兰语
阿尔巴尼亚
阿姆哈拉语
阿拉伯文
亚美尼亚
azerbaijan
巴什基尔
巴斯克
白俄罗斯
孟加拉
波斯尼亚
breton
保加利亚
缅甸
加泰罗尼亚语
中国
克罗地亚
捷克
丹麦
荷兰
英语
世界
爱沙尼亚
菲律宾人
芬兰
法语
加利西亚
格鲁吉亚
德
希腊
古吉拉特
haitian
Hawaiian
希伯来语
印地语
匈牙利
冰岛
印度尼西亚
爱尔兰
意大利语
日本
爪哇
卡纳达语
哈萨克斯坦
高棉
韩国
吉尔吉斯斯坦
老挝
拉丁
拉脱维亚
立陶宛
卢森堡的
马其顿
马达加斯加
马来
马拉雅拉姆语
马耳他
国语
毛利人的
马拉
蒙古
尼泊尔
挪威
普什图语
波斯
波兰
葡萄牙
旁遮普语
罗马尼亚
俄罗斯
苏格兰盖尔语
塞尔维亚
僧伽罗语
斯洛伐克
斯洛文尼亚
索马里
西班牙语
巽
斯瓦希里语
瑞典
他加禄语
塔吉克斯坦
泰米尔
鞑靼
泰卢固语
泰国
土耳其
乌克兰
乌尔都语
乌兹别克斯坦
越南语
威尔士
科萨语
犹太语
祖鲁语
你是不是记录。.
请
登录在 或
注册
或职位作为一个客人
提交
评论Uniswap
后
{{comment[1]}}
回复
后
{{reply}}
{{comment[0].pname }}
{{comment[0].pname }}
{{comment[0].pmsg}}
回复
后
{{reply}}
{{reply.cname }}
{{reply.cname }}
{{reply.cmsg}}
Uniswap与发音含义,同义词,反义词,翻译,刑和更多的
怎么发音 Celecoxib?
sehluh-kaak-suhb
sehluh-kaak-suhb
seh-LUH-kaaksu-hb
seh-LUH-kaaksu-hb
seh-luh-kaak-suhb
seh-luh-kaak-suhb
发音调查
投票
问问你的朋友
X
X
流行集
Manchester United Players List 2020
-Gloria Mary
33
French words
-Gloria Mary
30
World's Most Dangerous Viruses
-私
12
Real Madrid Squad / Player List 2020-21
-John Dennis G.Thomas
35
Welsh
-Gloria Mary
31
Brands
-Gloria Mary
30
热门测验
Guess the App (Food)
10
的问题
3802
尝试次数
Linguistics
10
的问题
1625
尝试次数
Joe Biden
10
的问题
1917
尝试次数
Do you know your presidents well?
10
的问题
2115
尝试次数
Are you a foodie? Check out these Famous cuisines around the World
10
的问题
2070
尝试次数
CoVID-19
10
的问题
1359
尝试次数
趋势 HowToPronounce
Mei [en]
Duarte [en]
Phonk [en]
Guthrie [en]
Elsie [en]
tool [en]
ewing [en]
Chioma [en]
Jeff Fenech [en]
cerberus [en]
Calvin Ridley [en]
Sergio [en]
tanya [en]
Rose Hanbury [en]
Ezequiel [en]
每日一词
Operose
[ oper-ose ]
学习发音
最新的文字提交
Citerdel
[en]
Olliendhawntiss
[en]
Junhyuk Bae
[en]
Horomel
[en]
SOUTH KEARNY
[en]
最后更新
三月 13, 2024
近看的话
Clain
[en]
Rhadamanthus
[en]
Green Bay
[en]
Wing Chuen Lam
[en]
Achensee
[en]
最后更新
三月 14, 2024
标志字/发音
×
嵌入
分享
链接
×
Create a quiz
×
欢呼!您已解锁奖杯
{{app.userTrophy[app.userTrophyNo].hints}}
"确定"
X
音频发音的词典89语言的含义,同义词,句子的使用、翻译等等。
话
名字
地方
药物
学会的发音的词
南非荷兰语
阿尔巴尼亚
阿姆哈拉语
阿拉伯文
亚美尼亚
azerbaijan
巴斯克
孟加拉
波斯尼亚
保加利亚
缅甸
加泰罗尼亚语
中国
克罗地亚
捷克
丹麦
荷兰
英语
世界
爱沙尼亚
菲律宾人
芬兰
法语
加利西亚
格鲁吉亚
德
希腊
古吉拉特
希伯来语
印地语
匈牙利
冰岛
印度尼西亚
爱尔兰
意大利语
日本
爪哇
卡纳达语
哈萨克斯坦
高棉
韩国
老挝
拉丁
拉脱维亚
立陶宛
马其顿
马来
马拉雅拉姆语
马耳他
马拉
蒙古
尼泊尔
挪威
普什图语
波斯
波兰
葡萄牙
罗马尼亚
俄罗斯
塞尔维亚
僧伽罗语
斯洛伐克
斯洛文尼亚
索马里
西班牙语
巽
斯瓦希里语
瑞典
泰米尔
泰卢固语
泰国
土耳其
乌克兰
乌尔都语
乌兹别克斯坦
越南语
威尔士
祖鲁语
每日一词在你的收件箱,每天
March 14, 2024
Operose
学习发音 >>
订阅了解和宣布一个新单词的每一天!
订阅
Subscribed
please enter a valid email address
© 2024 HowToPronounce. 所有权保留
条款
隐私
饼干
联系我们
广告
×
x
x
小白课堂 | 一文读懂Uniswap,附Uniswap使用教程 - 知乎首发于数字货币切换模式写文章登录/注册小白课堂 | 一文读懂Uniswap,附Uniswap使用教程书匠火火玄学一、加密货币交易形式 当我们要进行加密货币交易时,使用最早也是目前使用最多的形式还是中心化交易所,在中心化交易所,我们首先需要注册,然后加密货币也需要存入到交易所,由交易所进行托管,如果要提现加密货币出来,也需要经过交易所审核同意。虽然中心化交易所有诸多优势,例如交易速度较快、用户不需要管理私钥,降低了用户的使用门槛,但是它的弊端也是显而易见的,用户的加密货币由交易所托管,交易所是有跑路风险的。也确实发生过多起交易所跑路的事件,几乎每年都有发生。那么,有没有更好的加密货币交易形式呢? 随着区块链技术的不断发展,加密货币交易形式也变得越来越多样化,我们不但可以使用中心化交易所进行交易,也可以使用去中心化交易所进行交易。在去中心化交易所进行交易时,不需要注册,只需要使用数字钱包连接去中心化交易所就可以进行加密货币的交易了,交易完成后,相应的加密货币会自动转入到用户的数字钱包中,用户的资产始终在自己的钱包中,并非像中心化交易所那样托管在交易所,所以,在去中心化交易所进行交易,安全性大大提高了。 目前,去中心化交易所主要有两种形式,一种是交易所撮合买方用户和卖方用户的订单,只不过操作过程发生在链上,典型代表有 EOS 去中心化交易所 Newdex,Newdex 依旧承担了中心化交易所的订单撮合模式。在 Newdex 交易,用户无需注册、资产无需托管,撮合发生在 EOS 链上,数据公开透明。 去中心化交易所的另一种形式是基于兑换池,而非基于买方和卖方订单所构成的订单簿,它类似于人机交易,采取的是柜台模式,就像我们去银行兑换不同国家的法币。典型的代表是 Uniswap。二、Uniswap 是什么Uniswap 是基于以太坊的代币交换协议,是基于兑换池,而不是订单簿的去中心化交易协议。而所谓的兑换池,指的则是一个资金池,用户在 Uniswap 中交易的价格则由这个资金池中的代币比例和算法来决定。Uniswap 是去中心化的,不仅跟传统的加密货币交易所不同,也跟普通的去中心化代币交易所不同。Uniswap 是一组部署到以太坊网络的合约,所有的交易都在链上进行。Uniswap 的交易对手并不是其他交易用户,而是跟代币池进行交易,且有自动做市的模型来计算交易价格,代币兑换价格与代币兑换池中代币的比例有关。三、Uniswap 的功能和优势 在 Uniswap 中,使用最多的功能就是代币之间的币币兑换交易了,由于 Uniswap 是基于以太坊的,所以在 Uniswap 中只能交易以太坊上的加密货币资产。目前 Uniswap 支持的币种大概在150种左右,以太坊上的主流资产基本上都可以在上面进行交易了。当然了,用户也可以自行添加交易对,也就是做市商,这样可以赚取一定的手续费。 使用 Uniswap 这种交易形式,比订单撮合模式速度更快,因为它是基于兑换池的人机交易,节省了撮合时间。而且 Uniswap 支持的币种间可以实现两两兑换交易,交易对明显比中心化交易所更丰富。 例如: LRC 和 KNC 之间的交易,在 Uniswap 是可以一步完成交易(虽然系统可能需要转换,但在用户看来就是一步交易)的。而在中心化交易所,LRC 和 KNC 没有直接的交易对,用户最少需要两次交易,即把 LRC 兑换成 ETH ,再用 ETH 和 KNC 交易。很显然,对于用户来说,Uniswap 更便捷。四、如何使用 Uniswap 进行币币兑换交易 我们可以通过多链钱包 TokenPocket 来连接 Uniswap 进行交易。在 TP 钱包的发现界面的 DeFi 区,找到 Uniswap 并点击进入。1、兑换我们可以选择 V2 版本。在兑换界面中,输入表示的是拿来用于兑换的币种,而输出表示的是兑换后的币种。例如:拿 LRC 兑换 KNC,输入部分要选择 LRC,而输出部分要选择 KNC。在选择好输入输出币种后,输入输填写数量,即用于兑换 KNC 的 LRC 数量,可以收到的 KNC 数量就会根据 LRC/KNC 当前的汇率自动计算出来并填充。输入完成后,点击"授权 LRC"按钮,然后点击右侧的"兑换"就可以完成 LRC 和 KNC 之间的兑换了。2、发送 在 Uniswap 的发送界面中,主要有两个功能。一个是转账功能。选择要转出的币种,输入转账数量以及接收地址,然后点击"send"就可以转账了,这和一般的钱包转账也没什么区别。另外一个功能是"兑换+转账",挺有意思的一个功能。 例如我们要把 LRC 兑换为 KNC,并转账到另外一个 ETH 地址中,就可以使用该功能,还是挺方便的。首先,在发送界面中点击"添加兑换"按钮。 然后选择兑换的两个币种和用于兑换 KNC 的 LRC 数量,并输入接收地址。最后,点击"授权LRC"按钮后,点击 "Send"按钮就可以完成代币的兑换以及转账了。3、资金池 在 Uniswap 中,除了可以用于代币兑换之外,还可以加入 Uniswap 的资金池,通过为 Uniswap 提供流动性而赚取收益。首先在"资金池"界面中点击"加入一个资金池"按钮,然后选择一个流动性池,例如选择 ETH/USDT,在选择了流动性池后,输入要存入资金池的币种数量。注意,交易对是成比例存入资金池的,例如上例中,如果存入 0.091216 ETH 到资金池,那么USDT就要存入21.751个。 输入完成后,点击下面的"授权 USDT",然后点击"供应"就可以加入资金池了。总之,通过 Uniswap 进行以太坊上数字资产之间的交易,还是非常方便的,不需要注册,也不需要托管在交易所,通过钱包连接到 Uniswap 就可以进行交易了,交易完成后,相应的数字资产也会自动转入到用户的 ETH 钱包中,而且在兑换时还可以选择转到其他地址中。如果要使用 Uniswap 进行交易,可以到多链钱包 TokenPocket 中体验和使用。源自公众号:库尔班区块链发布于 2020-12-15 18:58Uniswap去中心化交易所(DEX)赞同 8332 条评论分享喜欢收藏申请转载文章被以下专栏收录数字货币在这里,读懂
Uniswap深度科普 - 知乎首发于区块随笔切换模式写文章登录/注册Uniswap深度科普JasonW喜欢思考,博而不专的铲屎官一、Uniswap是什么首先要搞清楚一下相关的名词都是什么意思: Uniswap Labs:负责开发Uniswap协议、网络接口的公司。 The Uniswap Protocol:一个实现自动化做市商的智能合约全家桶,促进点对点做市和以太坊上ERC-20 token的交易的协议(即Uniswap核心技术,后续工作原理介绍也都是针对协议内容的解释)。 The Uniswap Interface:为了方便使用Uniswap protocol而开发的网络接口,是与Uniswap protocol交互的众多方式之一(也可以直接与智能合约交互)。 Uniswap Governance:一个Uniswap Protocol的民主治理系统(社区式治理方式,论坛模式)。 按官网上的介绍,Uniswap协议是一个用来在以太坊区块链上交易加密货币(ERC-20代币)的点对合约系统。这个协议通过一个持久化、不可更改的智能合约集合来实现,旨在优先考虑抗审查性、安全性、自我监管,以及在没有任何可能有选择地限制访问的可信中介的情况下运行。简单点说就是通过智能合约实现了一个去中心化的ERC-20代币的自动交易系统。 二、Uniswap的发展历程Uniswap诞生至今也不过两年多的时间,但是却创造了很多令人惊叹的记录: 2018年11月2日,Uniswap公开宣布上线并部署到以太坊主网,推出第一个版本Uniswap v1,但这个v1版本只能算是一个新型去中心化交易方式的概念验证,可实用性并不强。 2020年1月31日,经过1年多的沉淀,Uniswap锁仓金额突破5000万美元,成为DeFi龙头。 2020年5月19日,Uniswap v2版本上线,增加了自由组合交易对、价格预言机、闪贷、最优化交易路径等功能,对v1版本进行了全面的技术升级。 2020年7月27日,Uniswap 24小时交易额突破1亿美元,DeFi在2020年迎来爆发式增长。 2020年8月7日,Uniswap官方宣布已完成1100万美元的A轮融资,由Andreessen Horowitz领投。 2020年8月31日,Uniswap锁仓金额突破10亿美元。 2020年9月1日,Uniswap总交易量超过100亿美元。 2020年9月3日,Uniswap锁仓金额突破20亿美元,距离10亿美元仅仅过了3天,可见市场之火爆。 2020年9月17日,Uniswap宣布其协议治理代币UNI已在以太坊主网上发布,针对每一个之前使用过Uniswap protocol的区块链地址空投400个UNI,UNI的持有者有对平台新的发展及改变的提议的投票权。 2021年5月5日,Uniswap v3版本上线,提供了集中流动性、多重收费层次、高级价格预言机、流动性预言机等技术升级,核心是提升资本效率,具体实现可关注另一篇文章Uniswap v3 设计详解。有一点需要注意的是v1和v2版本都遵循的是GPL开源协议,但是v3使用的是Business Source License 1.1(有效时限GPL-2.0或更高版本的许可证)。该许可证将v3源代码在商业环境或生产环境中的使用期限限制为两年,届时它将永久转换为GPL许可证。 三、Uniswap中的自动化做市商(Automated Market Maker,AMM)在开始介绍Uniswap之前,先来说说中心化的交易所是怎么交易的在传统中心化交易所中,你以一个价格发出买单,系统会在order book寻找合适的卖单进行撮合成交,如果当前没有合适的对手单,则将新的订单暂存到order book中等待合适的对手单出现。这个order book以中心系统的形式保存了所有买单、买单的信息,如下图所示:Order Book在这种中心化交易平台上,每笔交易的撮合并不需要通过区块链,而是在中心化系统中实现,保证了交易的高并发和低时延,但如果平台上的买卖双方不够活跃,用户发出的买单或者卖单无法快速找到交易对手方进行撮合,就会出现长时间的挂单,交易效率低下,这时就出现了做市商。 做市商是指在传统证券市场上,由具备一定实力和信誉的独立证券经营法人作为特许交易商,不断向公众投资者报出某些特定证券的买卖价格(即双向报价),并在该价位上接受公众投资者的买卖要求,以其自有资金和证券与投资者进行证券交易。买卖双方不需等待交易对手出现,只要有做市商出面承担交易对手方既可达成交易。 做市商通过做市制度来维持市场的流动性,满足公众投资者的投资需求。做市商通过买卖报价的适当差额来补偿所提供服务的成本费用,并实现一定的利润,但是在中心化平台中,买方/卖方并不确定做市商是否真的在区块链上有实际的资产(账户中的余额只是中心化数据库中的一个数字),而且用户的资产都保存在中心化交易所的钱包里,自己没有绝对的控制权,而中心化交易所也没接受任何监管机构的监管,很容易发生监守自盗的事件。 基于以上种种弊端,Uniswap提出了一种通过智能合约实现自动化做市商(Automated Market Maker,AMM)来与用户进行交易的去中心化交易协议,用户资产完全由自己控制,而智能合约中锁定的做市资产也是公开可查,是一种更安全透明的交易方式。 四、Uniswap技术原理由于v1版本主要是概念验证,因此不做过多介绍,主要就v2版本来深度解析一下Uniswap的技术原理,关于v3版本的更新,会再单独解析。 AMM要实现能自动跟买方/卖方完成交易,需要满足几个特性: AMM要持有资产,由于要做双向报价,所以要持有两种资产; AMM资产池要能充值/提现; AMM可以根据市场情况自动调整价格; AMM要能通过交易赚取利润; 接下我们通过核心的几个智能合约来看看Uniswap是怎么实现AMM的这些特性的: UniswapV2ERC20: 由于Uniswap是部署在以太坊上的,而且支持的是同质化代币之间的交易,因此可交易的资产是符合ERC-20标准的Token.我们在开发去中心化应用时,通常是通过智能合约来执行交易,当我们需要从一个用户的地址中转移一部分token到另外一个地址时,需要地址拥有者授权,就像是你用微信发红包,直接关联到银行卡的话,就需要你先授权微信可以从你的银行账户里划款一样,用户要先给银行一个指令,告诉银行可以给微信授权一个额度,然后微信才能去用户在银行的账户中划款,如下图所示: 如果在区块链上实现一个去中心化的微信应用,分别用智能合约来实现微信(DApp)和银行(ERC-20)的功能,那么用户就要发起至少两次链上交易,如下图中红色部分所示,第1步owner授权DApp可以从他的地址提取100个token,第3步DApp智能合约执行交易从ERC-20合约中owner的地址余额提取不多于100个的token,也就是要消耗两次gas手续费,极大地提升了链上交易的成本。 为了降低成本,减少链上交易次数,可以通过链下签名授权的方式来实现第1步的授权,首先owner在链下进行对某个DApp授权操作的签名,一起发给DApp的智能合约,在DApp智能合约中发起的ERC-20的执行交易中,先验证授权签名(permit),然后再调用提取函数(withdraw)进行owner账户下的token提取,这样整个交易流程就只有一个链上交易,只需要消耗1次gas。 作为Uniswap核心合约之一,UniswapV2ERC20合约定义了Uniswap中所有交易资产的标准。 UniswapV2Pair: 有了资产之后就到了最核心的交易部分了,Uniswap提供了一个UniswapV2Pair的智能合约来交易任意两种ERC-20代币,pairs交易对主要提供三个功能: 流动性追踪,追踪交易池中的代币余额,并且提供流动性代币;自动做市,根据特定算法自动计算出来的价格来撮合交易;去中心化预言机,暴露相关数据给外部使用;接下来分别详细介绍一下这几个功能:流动性追踪首先我们也是要先了解几个重要概念: 流动性:指的是pair合约里的两种ERC-20代币的总和,如果同时质押两种代币,则称为增加(提供)流动性 流动性池(Pool):所有流动性汇集成的池子,即AMM的资产池,Uniswap协议通过流动性池提供个人对合约的交易撮合 流动性提供者(Liquidity Provider/LP):向流动性池中提供流动性的人 流动性代币(Pool Token也叫做Liquidity Token):UniswapV2Pair本身也是一种ERC-20合约,它的代币用来代表流动性供给,即为流动性代币,在LP提供流动性时自动增发(mint)代币给LP,提取流动性时燃烧(burn)LP的代币 流动性池份额(Liquidity Pool Share/LPS):计算出来代表所占有的流通的流动型代币的份额值,用来记录每个LP的流动性贡献比例 在初始化一个pair合约之后,其中两种代币的初始值都是0,为了使流动性池可以开始促成交易,必须有流动性提供者(LP)质押一定量的两种代币来启动流动性池,第一个LP就是设定这个流动性池初始价格的人,并且获得流动性池份额(LPS)。流动性池中两种代币的相对价格是通过池子中两种代币的数量比来决定的,直观的理解就是两种代币的总价值是相同的,每次交易完之后由于两种代币的数量会发生变化,相对价格也会变化,价格的调整遵循如下公式:x和y代表两种代币的数量,具体在交易中这个公式发挥的作用会在后文详细介绍。如果第一个LP初始化质押的两种代币量分别为x_0和y_0,则获得的流动性池份额(Liquidity Pool Share/LPS)为s_0: 使用几何平均数计算的好处是可以使LPS在任何时候都不受质押的两种代币的比例影响,因为两种代币在流动性池中的比例可能与市场价格不符。如下图所示,假设初始质押量为x_0 = 100,000,y_0 = 1,000,则s_0 = 10,000,在LP质押完X和Y代币之后会收到10,000LPS,此时s_current也同样是10,000,相当于第一个LP持有100%的LPS(除去锁定到零地址的LPS),Liquidity Pool中当前Y相对于X的价格为 1 Y = 100000 / 1000 X = 100 X,例如X是USDT,Y是ETH的话,那么 1 ETH = 100 USDT。*:Output数据在第一次质押中实际会做一些调整,这部分的介绍在Uniswap白皮书中比较简略,但其实蕴含的内容和机制还是较多较复杂,接下来深入挖掘一下。 按照LPS初始值的计算公式,一个LPS的价值不会低于Pair中两种质押代币的几何平均数,而且随着交易手续费的积累或者“捐赠”会使LPS的价值升高,因为交易手续费在流动性池中积累,针对这部分手续费并不会产生新的LPS,效果就是池子变大了,但是LPS总量没变,两者的比值即LPS的价值就升高了。 Pair智能合约对应的LPS是有18位小数的(以太坊中最大的小数位数),理论上有一种情况是LPS的最小量(即1e-18 LPS)价值非常大,导致后续小流动性提供者很难再提供流动性了,因为提供流动性的成本太高了,例如1e-18 LPS = $100的话,因为这个是最小单位了,所以要增加流动性就至少质押$100美金才能获得LPS,而且随着LPS增值,流动性成本越来越高,不利于维持交易的流动性。在Uniswap白皮书中把这种极端情况认为是一种可能的人为攻击,为了提高这种攻击的成本,在新创建流动性池的时候,设置了一个最小流动性值MINIMUM_LIQUIDITY=1e-15,即LPS最小单位的1000倍,任何流动性池在启用之初都要在零地址中锁定1e-15的LPS,所以上面流动性池初始化的图修订后为: 在这种机制之下,如果人为把LPS价值提升到1e-18 = $100的话,就需要在零地址中锁定价值 $100 * 1e3 = $100000 的LPS,这样就极大地提升了攻击成本,而且在通常情况下,1e-15的LPS的价值是很小的,甚至可以忽略,所以修订图中第一次质押后获得的LPS虽然要减少1e-15LPS,但约等于10000不变。当然也会有极端情况,例如Pair中质押的两种代币都没有小数,而且单价很高,那么1e-15LPS的价值还是可以感知到的,不过这种类型的代币也不太适合用Uniswap协议来交易。接下来如果有LP继续添加流动性,则按新增的流动性等比例增发LPS,假设当前Pool中X的量为x_current,Y的量为y_current,存量LPS为s_current,新增加的流动性中的X为x_add,Y为y_add(通常情况下x_current/y_current = x_add/y_add,即等比例增加流动性),则新增发的LPS为s_add:如下图所示,增加2000 X和20 Y之后,获取200 LPS,此时LPS都在各个LP自己的地址里,他们可以自由转账,流动性池里只是记录了目前LPS总量的值。通常情况下,LP会按照目前流动性池里的X和Y的比例来增加流动性,获取LPS,Uniswap也提供了周边辅助性智能合约来完成增加流动性的操作,如果新质押的X和Y比例与流动性池中不一样,会按照少的代币量等比例质押,另一种多出来的不会去质押,避免损失,如果是直接去操作Pair合约,需要自己校验,否则还是按少的代币量计算LPS,但另一种多出来的就不会返还了,当是捐赠了。 如果是减少流动性,例如减少LPS为s_remove,存量X为x_current,Y为y_current,LPS为s_current,则LP可以提出去的两种代币量分别为x_withdraw和y_withdraw: 整个流动性相关还会涉及到协议手续费的问题,默认是不收取的,此处暂不讨论。 自动做市Uniswap的流动性池是通过一个恒定乘积公式来计算价格的,以x和y来代表流动性池中两种ERC-20代币(假设为X和Y)的数量,则: 如果我们想要用X从流动性池中交换Y,假设输入X的量为deltaX,交易换回的Y为deltaY,在交易池中的资产足够的前期下,满足: 也就是说交易前后,流动性池中两种代币的乘积是恒定不变的,基于此,如果交易的量相对于流动池中的量很小的话,那么交易价格就近似为当前两种代币的比: 在实际交易过程中,还会有0.3%的交易手续费,扣除方式是先扣掉手续费,再利用乘积公式进行计算,由于最终兑换出来的交易数量是跟交易量有关的,因此实际交易价格并不等于当前两种代币的比例,而且同一个区块里可能会有多笔交易,同一区块里前面的交易对后续的交易也都会有一定的影响,我们来看一下单笔交易的过程: 如上图所示,原流动性池中两种代币余额为100 X和1 Y,可认为Y相对X的价格为1 Y = 100 X,此时要通过流动性池交易20个X,如果按照当前价格全量交易的话,应该换回 20 / 100 = 0.2 个Y,再减去0.3%的手续费,最后返回0.1994个Y,但实际返回了0.1658个Y,我们来逐步分析一下: 输入20个X,先扣除0.3%的手续费,即实际交易量为19.94个X; 按照x*y=k(k=1*100=100)的公式进行计算: 3. Uniswap pair会给交易者地址返回0.1658个Y,此交易平均交易价格为 1 Y = 20 / 0.1658 X = 120.6273 X,比交易开始时的100要高20%多,主要是因为交易量20个X相对于流动性池的比例较大(20%),相当于大额交易,对价格会产生较大影响,直观的感觉就是市场上有人大量买入Y,从而导致Y的价格上涨,此笔交易之后,交易池中Y相对于X的价格变为了143.8504; 4. 更新流动性池中的余额,虽然交易的时候扣掉了0.3%的手续费,但实际上这个手续费依然会放到流动性池中,作为流动性提供者的收益,因此X更新后的余额还是100 + 20 = 120,Y的余额是1 - 0.1658 = 0.8342,Liquidity Shares的值不变。随着交易手续费的积累,整个流动性池的总价值在上涨,LPS的总量不变,则LPS的单位价值上涨。 以上基本介绍了Uniswap协议中的最核心设计原理,涉及到了流动性池和AMM机制等,除了基础核心部分,Uniswap还提供了一些高级功能,同时也带来了一些很有挑战性的问题,包括上文提到的手续费的收取、滑点损失、无偿损失等LP收益相关问题等等,都是很值得深入挖掘和探讨的。编辑于 2022-01-20 10:22去中心化金融(DeFi)Uniswap赞同 16216 条评论分享喜欢收藏申请转载文章被以下专栏收录区块随笔区块链技术领域的一些知
什么是Uniswap? 史上最全新手导读 - 知乎切换模式写文章登录/注册什么是Uniswap? 史上最全新手导读达瓴智库Uniswap是一个建立在以太坊上的主流分布式加密交易平台。绝大部分的加密资产交易发生在中心化交易平台,如Coinbase和Binance。这些平台受约束于单一中心机构(运转交易公司),用户需按其要求放入资金,并用传统的订单簿系统来促进交易。订货单交易是买入和卖出订单以其各自的金额呈现在一张表单中。一种资产未完成的买卖订单量被称为“市场深度”。为了在这个系统中促成成功的交易,订单中的一个买单需要匹配相对应的一个卖单,反之亦然。 例如,如果你想在中心化交易平台中以33000美元的价位卖出一个BTC,你需要等到一个买家出现,他希望以这个价格去购买同等或更高价格的BTC。这种系统的主要问题是流动性,在该种情况下,流动性指的是在任何给定时间内订单簿上的订单深度和数量。如果流动性比较低,意味着交易者无法执行他们买卖的订单。从另个角度思考流动性,想象你在一个集市上有一个自己的小摊,如果这个集市很繁忙,不断有人买卖商品,则这个就可以被认为是一个“流动性”。如果这个市场安静并且只有少量交易,则可被认为是个“狭窄的市场”。一、Uniswap是什么?Uniswap 是一种完全不同的交易平台,完全的分布式意味着它自己并不被单一实体所有并且运营,而是运用了名为自动流动性协议的一个全新交易模式。Uniswap平台于2018年建立在全球市值第二大的加密资产项目以太坊区块链之上,这使得它与所有ERC-20Token和基础设施(如MetaMask和MyEtherWallet等钱包服务)兼容。Uniswap也是一个完全开源的项目,意味着任何人都能复制代码去创造他们自己的分布式交易平台。它甚至允许用户免费上新Token。一般中心化交易所都是受利益驱动,并对上新Token收取高额费用。所以这是一个显著的差异。因为Uniswap是一个分布式交易平台(DEX),这也意味着用户任何时候都保持对他们基金的控制,而不是像中心化交易平台那样,要求交易者放弃控制自己的私钥,因此订单可以登录一个内部数据库,而不是在区块链上执行,两者比较起来,中心化交易平台更耗时和成本更高。通过保留对私钥的控制,它消除了交易平台遭到黑客攻击而损失资产的风险。根据2月初的数据,Uniswap是第四大分布式金融(DeFi)平台,在其协议上锁定了价值超过30亿美元的加密资产。二、Uniswap如何工作Uniswap运行在两个智能合约上; 一个“交换”合同和一个“工厂”合同。 这是一种自动计算机程序,当满足某些条件时,它被设计来执行特定的功能。 在这种情况下,工厂智能合约用于向平台添加新的Token,而交换合约为所有Token交换或“交易”提供便利。 任何基于ERC-20的Token都可以在更新的Uniswap v.2平台上与另一个Token交换。 三、自动化的流动性协议Uniswap用自动化流动性协议来解决中心化交易平台的流动性问题。这是通过激励人们在交易平台进行交易,从而成为流动性提供者(LPs)来实现的:Uniswap用户将他们的资金聚集在一起,来创建一个基金,用于执行平台上发生的所有交易。每一个登记的Token都有他们自己的用户可以贡献的基金pool,并且每个Token的价格用由电脑通过数学算法计算出来(在下面解释:Token价格如何决定的)。有了这个系统,买方或卖方不必等待对方出现来完成交易。相反,他们可以立即以已知价格执行任何交易,前提是特定pool中有足够的流动性为其提供便利。作为提供资金的交换,每个参与者都会收到一个Token,代表他们对投资pool的贡献。例如,如果你向一个总计持有10万美元的流动性pool贡献了1万美元,你将获得该流动性pool10%的Token。这个Token可以兑换一部分交易费用。Uniswap对用户在平台上进行的每笔交易收取0.30%的固定费用,并自动将其发送到一个流动性储备中。每当流动性提供者决定退出时,他们就会从准备金中获得相对于其在pool中持股金额的一部分费用。他们收到的Token记录了他们相对应的权益然后被销毁。在Uniswap v.2升级后,引入了一种新的协议费用,它可以通过社区投票来开启或关闭,基本上是将每0.30%的交易费用的0.05%发送给Uniswap基金,为未来的发展提供资金。目前,这一收费选项已被关闭,但一旦开启,这意味着参与者将开始收取pool交易费用的0.25%。四、Token的价格是如何决定的这个系统中另一个重要的原理是每个Token的价格是如何决定的。不同于最高买家和最低卖家决定每种资产的价格的订单系统,Uniswap使用的是自动做市商系统。这个替代的方法是基于供需的一个长期数学公式来调整资产价格。它的工作原理是根据每个资金pool中Token数量的比例来增加和减少Token的价格。这是一个非常重要的点,即每当有人向Uniswap添加一个新的ERC-20Token时,这个人就必须添加一定量的选定的ERC-20Token和等量的另一种ERC-20Token,以启动流动pool。每个Token价格的计算公式是x*y=k,TokenA的数量是X,TokenB的数量是Y,K是常数,是一个不变的数字。例如,Bob 想在Uniswap LINK/ETH资金pool中交易chainlink (LINK)Token, Bob将大量的LINK Token投入资金pool中,从而增加了资金pool中LINK相对ETH的比例。由于K值必须保持不变,这意味着ETH的成本增加,而资金pool中LINK Token的成本降低。因此,Bob LINKToken放入越多,他获取另外的Token就越少。流动性pool的规模也决定了Token价格在交易期间的变化幅度。在一个流动性pool中,资金越多,就越容易实施大规模的操作,而不语导致价格大幅下降。五、套利套利交易者是Uniswap生态系统中一个不可或缺的组成部分。这些交易员擅长发现多个交易平台之间的价格差异,并利用它们来获取利润。例如,如果BTC在Kraken上的交易价格是3.55万美元,Binance的价格是3.45万美元,你可以在Binance上购买BTC,然后在Kraken上出售,从而轻松获利。如果交易量大,就有可能以相对低的风险获得可观的利润。套利交易者在Uniswap上所做的是找到高于或低于其平均价格的Token交易——这是由于大量交易在pool中造成失衡并降低或提高价格的结果——并相应地买卖它们。六、如何使用Uniswap使用Uniswap相对简单,但是,你需要确保你已经有了支持ERC-20的钱包设置,如MetaMask、WalletConnect、Coinbase钱包、Portis或Fortmatic。一旦你有了这样一个钱包,你就需要添加ETH,以便在Uniswap上进行交易并支付GAS费(以太坊交易费用名称)。GAS费在价格方面的变化依赖于正在使用的网络的数量。在通过以太坊区块链进行支付时,大多数ERC-20兼容的钱包服务提供三种选择:慢速、中速或快速。慢速是最便宜的选择,快速是最贵的选择,而中速是介于中间。你交易快慢是靠以太坊网络节点维护者处理交易的速度决定的。翻译:Miki丨达瓴智库校对:Jane丨达瓴智库排版:炯炯丨达瓴智库审核:Amber丨达瓴智库原文:Ollie Leech, P. (2021, Feb 4). What Is Uniswap? A Complete Beginner’s Guide. CoinDesk. https://www.coindesk.com/business/2021/02/04/what-is-uniswap-a-complete-beginners-guide/发布于 2021-12-16 20:10区块链(Blockchain)去中心化金融(DeFi)赞同 263 条评论分享喜欢收藏申请
Buy/Sell Bitcoin, Ether and Altcoins | Cryptocurrency Exchange | Binance
Error 403 Forbidden - This request is blocked.
For security reasons you can't connect to the server for this app or website at this time.
It maybe that you have too many requests or the illegal request payload is identified as an attack.
Please try again later.
Uniswap - 维基百科,自由的百科全书
跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页分类索引特色内容新闻动态最近更改随机条目资助维基百科
帮助
帮助维基社群方针与指引互助客栈知识问答字词转换IRC即时聊天联络我们关于维基百科
搜索
搜索
创建账号
登录
个人工具
创建账号 登录
未登录编辑者的页面 了解详情
贡献讨论
目录
移至侧栏
隐藏
序言
1历史
2参考文献
3外部链接
开关目录
Uniswap
11种语言
العربيةDeutschEnglishEspañolفارسیFrançais日本語ქართულიNorsk bokmålРусскийTürkçe
编辑链接
条目讨论
简体
不转换简体繁體大陆简体香港繁體澳門繁體大马简体新加坡简体臺灣正體
阅读编辑查看历史
工具
工具
移至侧栏
隐藏
操作
阅读编辑查看历史
常规
链入页面相关更改上传文件特殊页面固定链接页面信息引用本页获取短URL下载二维码维基数据项目
打印/导出
下载为PDF可打印版
在其他项目中
维基共享资源
维基百科,自由的百科全书
UniswapUniswap Web应用的介面开发者Hayden Adams源代码库github.com/Uniswap/uniswap-v3-core编程语言Solidity平台Ethereum类型去中心化交易许可协议GNU General Public License v3.0网站uniswap.org
Uniswap是一种用于交换加密货币的分散金融协议。Uniswap也是最初构建Uniswap协议的公司的名称。该协议通过使用智能合约促进以太坊区块链上的加密货币令牌之间的自动化交易。截至2020年10月,按每日交易量计算,Uniswap估计是最大的分散交易所和第四大加密货币交易所。
Uniswap作为Defi协议,于2020年9月对其用户进行了其原生代币UNI的空投活动。总数为49,000,000UNI。[1]
历史[编辑]
Uniswap于2018年11月2日西门子工程师Hayden Adams创建[2]。
参考文献[编辑]
^ Uniswap Airdrop » Claim 400 free UNI tokens (~ $7,400). airdrops.io. [2022-01-16]. (原始内容存档于2022-01-29) (美国英语).
^ A short history of Uniswap. Uniswap Protocol. 2019-02-11 [2022-01-16]. (原始内容存档于2022-03-16) (英语).
外部链接[编辑]
官方网站 (页面存档备份,存于互联网档案馆)
查论编加密货币技术密码学
数字签名
哈希
密码杂凑函数
公钥
私钥
零知识证明
分散式计算
分散式账本
分散式应用程式
分布式网络
拜占庭容错(BFT)
异步拜占庭容错(aBFT)
其他
原子互换(英语:Atomic swap)
区块链
加密货币混币器
密码货币兑换(英语:Cryptocurrency exchange)
密码货币钱包
有向无环图
分叉
智能合约
闪电网络
侧链
比特币自动柜员机
分散式交易所
去中心化金融
MetaMask
非同质化代币
Web3
共识机制
工作量证明(PoW)
持有量证明(PoS)
股份授权证明(DPoS)
权威证明(英语:Proof of authority)
空间证明(英语:Proof of space)
个人身份证明(英语:Proof of personhood)
工作量证明货币基于SHA-256
比特币
比特币现金
交易对手(英语:Counterparty (platform))
LBRY
民族币(英语:MazaCoin)
域名币
纽比特币(NuBits)
点点币
NeuCoin(英语:NeuCoin)
乳头币(英语:Titcoin)
基于Ethash
以太坊
以太坊经典
Omise GO
基于Scrypt
极光币
Bitconnect
Coinye(英语:Coinye)
多吉币(狗币)
羽毛币
莱特币
大麻币(英语:PotCoin)
基于Equihash
比特币黄金
比特币私密
Zcash
Horizen
科莫多币(Komodo)
基于CryptoNote
百特币
门罗币
基于X11演算法
达世币
石油币
其他
AmbaCoin(英语:AmbaCoin)
飞熔币(英语:Firo (cryptocurrency))
IOTA
质数币
Verge(英语:Verge (cryptocurrency))
绿币(英语:Vertcoin)
持有量证明货币
阿尔戈兰德
雪崩币(英语:Avalanche (blockchain platform))
艾达币
EOS.IO
格雷德币
Kin(英语:Kin (cryptocurrency))
Nxt
点点币
波卡币
Solana
斯蒂姆币(英语:Steemit)/HIVE币
Tezos(英语:Tezos)
波场币
ERC-20代币
Augur(英语:Augur (software))
阿文图斯币(英语:Aventus Protocol)
Bancor(英语:Bancor (cryptocurrency))
注意力币(BAT)
Chainlink
Kin(英语:Kin (cryptocurrency))
柯达币(英语:KodakCoin)
Minds
柴犬币
The DAO(英语:The DAO (organization))
波场币
稳定币
DAI
Diem
泰达币(Tether/USDT)
USDC
其他货币
比特股
奇亚币
菲乐币
菲乐星(FileStar)
Hashgraph(HARB)(英语:Hashgraph)
MobileCoin(英语:MobileCoin)
Nano(英语:Nano (cryptocurrency))
小蚁币(英语:NEO (cryptocurrency))
新经币
瑞波币
SafeMoon(英语:SafeMoon)
Safuu(英语:Safuu)
恒星币(英语:Stellar (payment network))
华堡币(英语:WhopperCoin)
世界币
加密货币交易所
Abra(英语:Abra (company))
币安
Bitfinex
bitFlyer(英语:bitFlyer)
Bitkub(英语:Bitkub)
Bitpanda(英语:Bitpanda)
Bithumb(英语:Bithumb)
BitMEX
Bitso(英语:Bitso)
Bitstamp
Bitrue
BTCC
BUX(英语:BUX (brokerage))
Circle
Coinbase
Coincheck(英语:Coincheck)
Crypto.com
E投睿
JPEX
双子星(英语:Gemini (company))
火币网
ItBit(英语:Paxos Trust Company)
克拉肯(英语:Kraken (company))
LocalBitcoins(英语:LocalBitcoins)
牛顿(英语:Newton (company))
OKEx
ShapeShift(英语:ShapeShift)
Uniswap
Upbit(英语:Upbit)
Zaif(英语:Tech Bureau)
WazirX(英语:WazirX)
CoinEx
MEXC
Gate
Hoo
已停业
BTC-e(英语:BTC-e)
FTX
Mt. Gox
QuadrigaCX(英语:Quadriga Fintech Solutions)
密码货币钱包
MetaMask
Trust Wallet
Coinbase Wallet
Rainbow Wallet
相关主题
空投
BitLicense
匿名网上银行
区块链游戏
补充货币(英语:Complementary currency)
密码学无政府主义
加密货币泡沫(英语:Cryptocurrency bubble)
密码经济学(英语:Cryptoeconomics)
数位货币
分布式自治组织
分散式帐本技术法律(英语:Distributed ledger technology law)
双重支付
加密货币的环境影响(英语:Environmental impact of cryptocurrencies)
超级账本
首次代币发行
证券型代币发行
首次交易所发行(英语:Initial exchange offering)
Initiative Q(英语:Quahl)
符号货币
虚拟货币
骑劫挖矿
分类
共享资源
列表
取自“https://zh.wikipedia.org/w/index.php?title=Uniswap&oldid=80834386”
分类:数字货币交易所隐藏分类:CS1美国英语来源 (en-us)CS1英语来源 (en)
本页面最后修订于2024年2月8日 (星期四) 02:58。
本站的全部文字在知识共享 署名-相同方式共享 4.0协议之条款下提供,附加条款亦可能应用。(请参阅使用条款)
Wikipedia®和维基百科标志是维基媒体基金会的注册商标;维基™是维基媒体基金会的商标。
维基媒体基金会是按美国国内税收法501(c)(3)登记的非营利慈善机构。
隐私政策
关于维基百科
免责声明
行为准则
开发者
统计
Cookie声明
手机版视图
开关有限宽度模式
新手指南 | Uniswap 是什么? | 登链社区 | 区块链技术社区
文章
问答
讲堂
专栏
集市
更多
提问
发表文章
活动
文档
招聘
发现
Toggle navigation
首页 (current)
文章
问答
讲堂
专栏
活动
招聘
文档
集市
搜索
登录/注册
新手指南 | Uniswap 是什么?
Bisade Asolo
更新于 2019-12-23 10:55
阅读 14966
Uniswap 是一个基于以太坊的协议,旨在实现 ETH 和 ERC20 代币数字资产之间的自动兑换。Uniswap 是一个完全的链上协议,个人只要安装了 MetaMask 就可以使用该协议。Uniswap 也可以被认为是一个 DeFi(去中心化金融)项目,因为它寻求利用其去中心化协议,消除参与数字资产交易流程的中间人。
Uniswap 是一个基于以太坊的协议,旨在实现 ETH 和 ERC20 代币数字资产之间的自动兑换。Uniswap 是一个完全的链上协议,个人只要安装了 MetaMask 就可以使用该协议。Uniswap 也可以被认为是一个 [DeFi(去中心化金融)](https://www.mycryptopedia.com/what-are-decentralized-finance-defi-applications/ "DeFi(去中心化金融)")项目,因为它寻求利用其去中心化协议,消除参与数字资产交易流程的中间人。
Uniswap 由两种类型的[智能合约](https://www.mycryptopedia.com/3-ethereum-smart-contract-use-cases/ "智能合约")组成:
- 一个交易合约 (exchange contract)
- 一个工厂合约 (factory contract)
这些合约都由 Vyper 智能合约编程语言所编写,而且它们是 Uniswap 协议功能的核心。**一个交易合约只支持一种 ERC20 代币,而且每个交易合约都储备了 ETH 和所支持的 ERC20 代币**。这意味着在一个特定交易合约上执行的交易,是基于合约中存储的 ETH 和 ERC20 代币的相对供应量。在交易合约中执行的交易,也可以是通过将 ETH 作为中介来实现 ERC20 与 ERC20 之间的直接交易。
**工厂合约**可用于部署一个新的交易合约,因此,**尚未拥有交易合约的 ERC20 代币都可以通过工厂合约来创建一个交易合约。**createExchange() 函数允许任何以太坊用户利用工厂合约部署一个交易合约。还需要注意的是,工厂合约被用作 Uniswap 交易合约的注册表,这意味着工厂合约可用于查询被添加进系统中的**所有代币和交易地址**。当一个交易合约发布时,工厂合约不会对代币进行检查(除了需要检查每个交易合约只支持一种代币的约束意外),因此,**用户应该只与他们完全信任的交易合约进行交互。**
## Uniswap 的流动性
Uniswap 协议的设计架构不同于传统数字资产交易所中的模型。大多数传统交易所会维护一个订单簿并用于匹配特定资产的买家和卖家。而 Uniswap 利用**流动性储备 (liquidity reserves) **来在协议中实现数字资产的交易。
交易合约的流动性储备由网络中的流动性提供者 (liquidity providers) 提供。这些流动性提供者将等价的 ETH 和 ERC20 代币存入特定的 ERC20 代币交易合约之中。**第一个向某个交易合约提供流动性的流动性提供者将首先设定 ETH 和该交易合约中相应的 ERC20 代币之间的兑换率**。流动性提供者通过存入他们认为等价的 ETH 和该合约支持的 ERC20 代币来设定这个兑换率的。**如果流动性提供者设定的兑换率与更广泛的加密货币交易市场不一致,那么套利的交易者会把 ETH 和 ERC20 代币间的兑换率引向市场上所认为的正确兑换率上。因此,所有后续的流动性提供者将会使用自己存入资产时的兑换率来存入流动性。**
Uniswap 还使用所谓的**“流动性代币” (liquidity tokens)**,这些代币本身符合 ERC20 标准。这些代币可以视为流动性提供者对交易合约贡献的一种表示。Uniswap 限制每个交易合约只能支持一种 ERC20 代币的背后原理是为了**鼓励流动性提供者将他们的流动性资产集中到单一的储备中**。Uniswap 通过铸造流动性代币来追踪每个流动性提供者贡献给总储备的相对比例。**流动性提供者能够在他们选择的时间对他们的流动性代币进行销毁,从而他们可以从交易合约中取出他们的 ETH 和 ERC20 代币的比例份额。**
流动性提供者可以选择出售或者转让其流动性代币,而不必从交易合约中移除流动性。然而,Uniswap的流动性代币被严格地指定于一个交易合约。**与 Uniswap 协议相关联的单一原生数字资产是不存在的**。流动性提供者还可以通过调用 addLiquidity() 函数往交易合约存入流动性。**作为提供流动性的奖励,流动性提供者在交易执行时会获得一定比例的交易手续费。**
## 在 Uniswap 进行交易:ETH ⇄ ERC20 交易
**能在 Uniswap 协议中执行的其中一类交易是将 ETH 与任何特定的 ERC20 代币进行兑换。**如前文所述,**ETH 和某种 ERC20 代币之间的兑换率基于交易合约中各资产流动性池的相对大小。**兑换率是建立这个在 Uniswap 的不变式之上:**ETH pool * token pool = invariant (不变量)**。在执行 Uniswap 协议上的任何交易期间,invariant (不变量)会保持不变。此外,**只有当交易合约中的流动性增加或减少时,不变量才会发生变化。**
**例子 ETH ⇄ BAT:**Bob 希望发起一笔交易,用于把 1 ETH 兑换为 ERC20 代币 BAT。Bob 将使用一个 Uniswap 协议上现有的交易合约来执行此交易。流动性提供者已将一定数量的 ETH 和 BAT 存入该交易合约,就本例而言,假设为 10 ETH 和 500 BAT。底层的不变式被设置为:ETH pool * BAT pool = invariant (不变量),也即:
- ETH pool = 10
- BAT pool = 500
- Invariant = 10 * 500 = 5,000
Bob 通过发送 1 ETH 到交易合约的 ETH 池中来发起他交易,在此基础上扣除 0.3% 作为给流动性提供者的费用。**剩下的 0.997 ETH 被添加到 ETH 池子中。然后,用不变量除以新的 ETH 总量以确定 BAT 池子的最新大小**。然后,剩余的 BAT 代币会被发送给买家,在本例中买家为 Bob。也即:
- Bob 发送:1 ETH
- 手续费:0.003 ETH
- ETH pool = 10 + (1 – 0.003) = 10.997
- BAT pool = 5000/10.997 = 454.67
- Bob 收到:500 – 454.67 = 45.33 BAT
**支付给流动性提供者的手续费在先前 Bob 发起交易时被扣除,现在这笔手续费又被加入到流动性池子中 (这意味着不变量会增加)。**这起到了向流动性提供者支付费用的作用,**当这些提供者从市场中移除他们的流动性贡献时,他们就可以获取这些费用。**由于这笔费用在价格计算后重新被加入,**随着在交易合约上的每笔交易被执行,不变量逐渐增大,**使得把流动性存入一个交易合约的行为对于流动性提供者来说是一种有利可图的行为。此时:
- ETH pool = 10.997 + 0.003 = 11
- BAT pool = 454.67
- 新的不变量 (invariant) = 5,001.37
在这次交易中,Bob 获取 BAT 的兑换率为 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 代币之间得兑换成为可能。。
这个公式的作用非常类似于一个普通的市场,原因是你购买的代币越多时,为了购买多一个单元的代币,你所要支付的边际兑换率就会越高。
## 交易费用构成
在协议上执行交易的 Uniswap 费用的构成如下:
- ETH 兑换为 ERC20:支付 0.3% 的 ETH。
- ERC20 兑换为 ETH:支付 0.3% 的 ERC20 代币。
- ERC20 兑换为 ERC20:支付 0.3% 的 ERC20 代币 (针对将某种 ERC20 代币兑换为 ETH) 和 0.3% 的 ETH (针对将 ETH 再兑换为另一种 ERC20 代币)。
## 代币兑换率
Uniswap 采用的用于确定代币间兑换率的不变式取自于 Vitalik Buterin 在2018年3月发表的[一篇文章](https://ethresear.ch/t/improving-front-running-resistance-of-x-y-k-market-makers/1281)。在该文章中,ERC20 代币的兑换率按照一下公式计算:
x * y = k
k 是一个不变的常量,x和y表示在特定的交易中可用的 ETH 和 ERC20 代币的数量,在 Uniswap 的情况下,x 和 y 就是在特定交易合约中可用的 ETH 和 ERC20 代币的数量。**利用这个公式,代币的兑换率将始终是上述公式产生的曲线上的某个点**。见下图。
x*y=k 公式是 Uniswap 协议中不可分割的一部分,而且 Vitalik Buterin 使用下面所示的图,以如下方式进行描述:
![null](https://img.learnblockchain.cn/2020/02/08_/723842887.png)
根据该公式,一个合约 (在本例中为 Uniswap 的交易合约) 将会持有x个**代币A**和y个**代币B**。**这个合约将维持不变量使得 x * y = k 始终成立**。任何个人都可以通过有效地改变做市商在 x * y 曲线上的头寸 (position) 来买卖该合约中的代币。将做市商的头寸向右移动意味着,一笔交易向右移动的金额就是交易员必须输入的**代币A**的量 (即通过输入代币A来兑换代币B)。相应地,做市商的头寸向下移动的量是交易者应该买入多少**代币B**。
假设代币B是 ETH,代币A是任何特定的 ERC20 代币,我们可以看到它们是如何利用公式x * y = k进行运转的。如果 Alice 决定购买一大批特定的 ERC20 代币,这将使得交易合约中的 ERC20 代币的短缺以及 ETH 的增加。Alice 的购买结果是把兑换率移动到 x * y = k 曲线上的一个不同的点。也即红点将会向左移动,这意味着购买更多 ERC20 代币会变得更加昂贵。ETH 和 ERC20 代币的相对供应量可以被认为是 ERC20 代币供需的反映,这最终会决定兑换率价值。
如前文所述,流动性往交易合约的首次存入并非由兑换率所决定。相反,流动性提供者将会存入一定数量的 ETH 和 ERC20 代币,这反映了他们心中 ETH 和 ERC20 代币间的兑换率值。**如果 ETH 和 ERC20 代币被认为是太便宜或者太贵,那么套利交易者就会受到激励去把价格带到市场认为正确的价格上。**
## Uniswap 和套利交易
值得主要的是,虽然 Uniswap 是一个去中心化的链上数字资产交易所,但是它不是为了替代中心化交易所而存在的。当 Uniswap 上的交易机制出现偏差时(笔者注:这里的意思是 Uniswap 上兑换率偏高或偏低),那么必须存在一个纠正错误的机制。这个机制以套利交易的形式存在。
套利交易 (arbitrage trading) 可以被很好地理解为交易者利用两个市场之间存在的价格差进行交易获利的策略。在加密货币的情况下,这种价格差可以在[加密货币交易所](https://www.mycryptopedia.com/cryptocurrency-exchanges-complete-beginners-guide/ "加密货币交易所")之间的数字资产价格差异中找到。如果交易者发现了套利的机会,那么他们会在一个交易所中购买数字资产,然后在另一个加密货币交易所中出售。**套利交易对于 Uniswap 的运作至关重要,这是因为交易者可以利用其他加密货币交易所的兑换率来纠正 Uniswap 上可能出现的价格偏差。**
## Uniswap 和 Gas
使用 Uniswap 协议进行数字资产兑换的其中一个优点是它十分节约 gas。**在 Uniswap 上进行交易时所产生的 gas 成本相对来说比其他去中心化交易所更加便宜。**正如下面展示的 gas 基准:ETH 至 ERC20,ERC20 至 ETH 以及 ERC20 至 ERC20 的转换明显比 Bancor,EtherDelta 等交易所更加便宜。
![null](https://img.learnblockchain.cn/2020/02/08_/422127116.jpeg)
节约 gas 只是 Uniswap 协议的其中一个优点,更多的**优点**包括:
- Uniswap 是去中心化的,因此它的运作不依赖于第三方。此外,希望连接到该协议的任何人都可以自由访问 Uniswap。
- 与其他数字资产交易所相比,在 Uniswap 上进行交易的成本相对较低。
- Uniswap 允许任何用户为任何特定的 ERC20 代币创建交易合约。
然而,Uniswap 确实有它的**局限性**:
- Uniswap 确实依靠套利交易来控制协议中代币的交易价格。这意味着 Uniswap 依靠其他数字资产交易所的存在来保持兑换率的平衡。
- Uniswap 仍处于试验阶段,仍需要对协议进行更多的改进以了解它在促进数字资产交易方面的有效性。
## 结论
总之,Uniswap 代表了以太坊生态内支持数字资产交易的重要一步,正因它使得资产交易得的流程变得更加有效。Uniswap 仍然处于初期阶段,但是,看着这一创新的协议在未来如何发展将是一件有趣的事情。
Uniswap 是一个基于以太坊的协议,旨在实现 ETH 和 ERC20 代币数字资产之间的自动兑换。Uniswap 是一个完全的链上协议,个人只要安装了 MetaMask 就可以使用该协议。Uniswap 也可以被认为是一个 DeFi(去中心化金融)项目,因为它寻求利用其去中心化协议,消除参与数字资产交易流程的中间人。
Uniswap 由两种类型的智能合约组成:
一个交易合约 (exchange contract)
一个工厂合约 (factory contract)
这些合约都由 Vyper 智能合约编程语言所编写,而且它们是 Uniswap 协议功能的核心。一个交易合约只支持一种 ERC20 代币,而且每个交易合约都储备了 ETH 和所支持的 ERC20 代币。这意味着在一个特定交易合约上执行的交易,是基于合约中存储的 ETH 和 ERC20 代币的相对供应量。在交易合约中执行的交易,也可以是通过将 ETH 作为中介来实现 ERC20 与 ERC20 之间的直接交易。
工厂合约可用于部署一个新的交易合约,因此,尚未拥有交易合约的 ERC20 代币都可以通过工厂合约来创建一个交易合约。createExchange() 函数允许任何以太坊用户利用工厂合约部署一个交易合约。还需要注意的是,工厂合约被用作 Uniswap 交易合约的注册表,这意味着工厂合约可用于查询被添加进系统中的所有代币和交易地址。当一个交易合约发布时,工厂合约不会对代币进行检查(除了需要检查每个交易合约只支持一种代币的约束意外),因此,用户应该只与他们完全信任的交易合约进行交互。
Uniswap 的流动性
Uniswap 协议的设计架构不同于传统数字资产交易所中的模型。大多数传统交易所会维护一个订单簿并用于匹配特定资产的买家和卖家。而 Uniswap 利用流动性储备 (liquidity reserves) 来在协议中实现数字资产的交易。
交易合约的流动性储备由网络中的流动性提供者 (liquidity providers) 提供。这些流动性提供者将等价的 ETH 和 ERC20 代币存入特定的 ERC20 代币交易合约之中。第一个向某个交易合约提供流动性的流动性提供者将首先设定 ETH 和该交易合约中相应的 ERC20 代币之间的兑换率。流动性提供者通过存入他们认为等价的 ETH 和该合约支持的 ERC20 代币来设定这个兑换率的。如果流动性提供者设定的兑换率与更广泛的加密货币交易市场不一致,那么套利的交易者会把 ETH 和 ERC20 代币间的兑换率引向市场上所认为的正确兑换率上。因此,所有后续的流动性提供者将会使用自己存入资产时的兑换率来存入流动性。
Uniswap 还使用所谓的“流动性代币” (liquidity tokens),这些代币本身符合 ERC20 标准。这些代币可以视为流动性提供者对交易合约贡献的一种表示。Uniswap 限制每个交易合约只能支持一种 ERC20 代币的背后原理是为了鼓励流动性提供者将他们的流动性资产集中到单一的储备中。Uniswap 通过铸造流动性代币来追踪每个流动性提供者贡献给总储备的相对比例。流动性提供者能够在他们选择的时间对他们的流动性代币进行销毁,从而他们可以从交易合约中取出他们的 ETH 和 ERC20 代币的比例份额。
流动性提供者可以选择出售或者转让其流动性代币,而不必从交易合约中移除流动性。然而,Uniswap的流动性代币被严格地指定于一个交易合约。与 Uniswap 协议相关联的单一原生数字资产是不存在的。流动性提供者还可以通过调用 addLiquidity() 函数往交易合约存入流动性。作为提供流动性的奖励,流动性提供者在交易执行时会获得一定比例的交易手续费。
在 Uniswap 进行交易:ETH ⇄ ERC20 交易
能在 Uniswap 协议中执行的其中一类交易是将 ETH 与任何特定的 ERC20 代币进行兑换。如前文所述,ETH 和某种 ERC20 代币之间的兑换率基于交易合约中各资产流动性池的相对大小。兑换率是建立这个在 Uniswap 的不变式之上:*ETH pool token pool = invariant (不变量)。在执行 Uniswap 协议上的任何交易期间,invariant (不变量)会保持不变。此外,只有当交易合约中的流动性增加或减少时,不变量才会发生变化。**
例子 ETH ⇄ BAT:Bob 希望发起一笔交易,用于把 1 ETH 兑换为 ERC20 代币 BAT。Bob 将使用一个 Uniswap 协议上现有的交易合约来执行此交易。流动性提供者已将一定数量的 ETH 和 BAT 存入该交易合约,就本例而言,假设为 10 ETH 和 500 BAT。底层的不变式被设置为:ETH pool * BAT pool = invariant (不变量),也即:
ETH pool = 10
BAT pool = 500
Invariant = 10 * 500 = 5,000
Bob 通过发送 1 ETH 到交易合约的 ETH 池中来发起他交易,在此基础上扣除 0.3% 作为给流动性提供者的费用。剩下的 0.997 ETH 被添加到 ETH 池子中。然后,用不变量除以新的 ETH 总量以确定 BAT 池子的最新大小。然后,剩余的 BAT 代币会被发送给买家,在本例中买家为 Bob。也即:
Bob 发送:1 ETH
手续费:0.003 ETH
ETH pool = 10 + (1 – 0.003) = 10.997
BAT pool = 5000/10.997 = 454.67
Bob 收到:500 – 454.67 = 45.33 BAT
支付给流动性提供者的手续费在先前 Bob 发起交易时被扣除,现在这笔手续费又被加入到流动性池子中 (这意味着不变量会增加)。这起到了向流动性提供者支付费用的作用,当这些提供者从市场中移除他们的流动性贡献时,他们就可以获取这些费用。由于这笔费用在价格计算后重新被加入,随着在交易合约上的每笔交易被执行,不变量逐渐增大,使得把流动性存入一个交易合约的行为对于流动性提供者来说是一种有利可图的行为。此时:
ETH pool = 10.997 + 0.003 = 11
BAT pool = 454.67
新的不变量 (invariant) = 5,001.37
在这次交易中,Bob 获取 BAT 的兑换率为 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 代币之间得兑换成为可能。。
这个公式的作用非常类似于一个普通的市场,原因是你购买的代币越多时,为了购买多一个单元的代币,你所要支付的边际兑换率就会越高。
交易费用构成
在协议上执行交易的 Uniswap 费用的构成如下:
ETH 兑换为 ERC20:支付 0.3% 的 ETH。
ERC20 兑换为 ETH:支付 0.3% 的 ERC20 代币。
ERC20 兑换为 ERC20:支付 0.3% 的 ERC20 代币 (针对将某种 ERC20 代币兑换为 ETH) 和 0.3% 的 ETH (针对将 ETH 再兑换为另一种 ERC20 代币)。
代币兑换率
Uniswap 采用的用于确定代币间兑换率的不变式取自于 Vitalik Buterin 在2018年3月发表的一篇文章。在该文章中,ERC20 代币的兑换率按照一下公式计算:
x * y = k
k 是一个不变的常量,x和y表示在特定的交易中可用的 ETH 和 ERC20 代币的数量,在 Uniswap 的情况下,x 和 y 就是在特定交易合约中可用的 ETH 和 ERC20 代币的数量。利用这个公式,代币的兑换率将始终是上述公式产生的曲线上的某个点。见下图。
x*y=k 公式是 Uniswap 协议中不可分割的一部分,而且 Vitalik Buterin 使用下面所示的图,以如下方式进行描述:
根据该公式,一个合约 (在本例中为 Uniswap 的交易合约) 将会持有x个代币A和y个代币B。这个合约将维持不变量使得 x * y = k 始终成立*。任何个人都可以通过有效地改变做市商在 x y 曲线上的头寸 (position) 来买卖该合约中的代币。将做市商的头寸向右移动意味着,一笔交易向右移动的金额就是交易员必须输入的代币A的量 (即通过输入代币A来兑换代币B)。相应地,做市商的头寸向下移动的量是交易者应该买入多少代币B**。
假设代币B是 ETH,代币A是任何特定的 ERC20 代币,我们可以看到它们是如何利用公式x y = k进行运转的。如果 Alice 决定购买一大批特定的 ERC20 代币,这将使得交易合约中的 ERC20 代币的短缺以及 ETH 的增加。Alice 的购买结果是把兑换率移动到 x y = k 曲线上的一个不同的点。也即红点将会向左移动,这意味着购买更多 ERC20 代币会变得更加昂贵。ETH 和 ERC20 代币的相对供应量可以被认为是 ERC20 代币供需的反映,这最终会决定兑换率价值。
如前文所述,流动性往交易合约的首次存入并非由兑换率所决定。相反,流动性提供者将会存入一定数量的 ETH 和 ERC20 代币,这反映了他们心中 ETH 和 ERC20 代币间的兑换率值。如果 ETH 和 ERC20 代币被认为是太便宜或者太贵,那么套利交易者就会受到激励去把价格带到市场认为正确的价格上。
Uniswap 和套利交易
值得主要的是,虽然 Uniswap 是一个去中心化的链上数字资产交易所,但是它不是为了替代中心化交易所而存在的。当 Uniswap 上的交易机制出现偏差时(笔者注:这里的意思是 Uniswap 上兑换率偏高或偏低),那么必须存在一个纠正错误的机制。这个机制以套利交易的形式存在。
套利交易 (arbitrage trading) 可以被很好地理解为交易者利用两个市场之间存在的价格差进行交易获利的策略。在加密货币的情况下,这种价格差可以在加密货币交易所之间的数字资产价格差异中找到。如果交易者发现了套利的机会,那么他们会在一个交易所中购买数字资产,然后在另一个加密货币交易所中出售。套利交易对于 Uniswap 的运作至关重要,这是因为交易者可以利用其他加密货币交易所的兑换率来纠正 Uniswap 上可能出现的价格偏差。
Uniswap 和 Gas
使用 Uniswap 协议进行数字资产兑换的其中一个优点是它十分节约 gas。在 Uniswap 上进行交易时所产生的 gas 成本相对来说比其他去中心化交易所更加便宜。正如下面展示的 gas 基准:ETH 至 ERC20,ERC20 至 ETH 以及 ERC20 至 ERC20 的转换明显比 Bancor,EtherDelta 等交易所更加便宜。
节约 gas 只是 Uniswap 协议的其中一个优点,更多的优点包括:
Uniswap 是去中心化的,因此它的运作不依赖于第三方。此外,希望连接到该协议的任何人都可以自由访问 Uniswap。
与其他数字资产交易所相比,在 Uniswap 上进行交易的成本相对较低。
Uniswap 允许任何用户为任何特定的 ERC20 代币创建交易合约。
然而,Uniswap 确实有它的局限性:
Uniswap 确实依靠套利交易来控制协议中代币的交易价格。这意味着 Uniswap 依靠其他数字资产交易所的存在来保持兑换率的平衡。
Uniswap 仍处于试验阶段,仍需要对协议进行更多的改进以了解它在促进数字资产交易方面的有效性。
结论
总之,Uniswap 代表了以太坊生态内支持数字资产交易的重要一步,正因它使得资产交易得的流程变得更加有效。Uniswap 仍然处于初期阶段,但是,看着这一创新的协议在未来如何发展将是一件有趣的事情。
学分: 31
分类: Uniswap
标签:
Uniswap
点赞 5
收藏 7
分享
Twitter分享
微信扫码分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。
你可能感兴趣的文章
UniswapV3 部署 - - Foundry Edition
233 浏览
uniswap v2
313 浏览
#DEFI# 从 BitShares 到 Uniswap:Dex 发展亲历者的去中心化交易所之旅
551 浏览
对比 Uniswap,一种新的去中心化交易所的流动性算法
973 浏览
以太坊合并一年后的MEV格局
951 浏览
EIP-1153 除了赋能 Uniswap-v4 还能做什么
906 浏览
相关问题
有没有已经部署的合约去查询Uniswap V3 NFT仓位的价值
1 回答
一般在编写套利合约中通过什么能直接读取给定交易对uniswap v2中的价格?
4 回答
uniswap 多跳路由寻找相关
1 回答
Uniswap中的LP token的数值是如何计算出来的(需要详细计算过程)
2 回答
如何获取 Uniswap 代币价格,v2 v3 是否不同
1 回答
复制以太坊钱包地址在 Uniswap 上发生交易的机器人
2 回答
3 条评论
请先 登录 后评论
Bisade Asolo
关注
贡献值: 30
学分: 48
江湖只有他的大名,没有他的介绍。
文章目录
关于
关于我们
社区公约
学分规则
Github
伙伴们
DeCert
ChainTool
GCC
合作
广告投放
发布课程
联系我们
友情链接
关注社区
Discord
Youtube
B 站
公众号
关注不错过动态
微信群
加入技术圈子
©2024 登链社区 版权所有 |
Powered By Tipask3.5|
粤公网安备 44049102496617号
粤ICP备17140514号
粤B2-20230927
增值电信业务经营许可证
×
发送私信
请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!
发给:
内容:
取消
发送
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
取消
举报
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!
如何评价uniswap? - 知乎首页知乎知学堂发现等你来答切换模式登录/注册去中心化金融(DeFi)Uniswap如何评价uniswap?如何评价uniswap?显示全部 关注者26被浏览6,616关注问题写回答邀请回答好问题添加评论分享11 个回答默认排序律动BlockBeats关注区块链、数字加密行业,首选媒体—律动BlockBeats 关注采访:Jack,BlockBeats整理:Jaleel、Kaori,BlockBeats编辑:Jack,BlockBeats诞生于 2019 年黑客马拉松 1inch,在 2020 年 DeFi Summer 的助推下,成功地崭露头角。在两位俄罗斯青年 Sergej Kunz 和 Anton Bukov 的引领下,1inch 凭借高效且低成本的交易方式,稳步攀升至 DeFi 聚合器赛道的领头羊位置。根据 DUNE 的数据显示,自上个月来,使用 1inch 的唯一钱包数量已超过 100 万大关,超过了在 2021 年的高峰期。在近期 1INCH 上涨突破 0.5 美元,团队也推出了自己的开发者门户测试版本,该 Web3 SaaS(软件即服务)平台提供了用于开发新产品的 API,包括交易、现货价格、代币信息等。与此对应的,是 DeFi 市场另一只独角兽的接连出击。今年 6 月 13 日,Uniswap 团队宣布推出第四代版本 V4,引入了「Hooks」和「The Singleton」两个新概念。其中,前者 Hooks 尤其受关注。在许多人看来,它似乎成为了 Uniswap 击败所有 DEX 的杀手锏。而在随后的 ETHCC 大会上,Uniswap 又推出了 UniswapX,向流动性聚合器领域发起进攻。在这种接连冲击下,许多 DeFi 创业者都发出了「放弃 DEXs,加入 Hooks」的感叹。上周,在巴黎 ETHCC 大会期间,BlockBeats 对 1inch 联合创始人 Anton Bukov 进行了专访,深度探讨了 1inch 的发展历程、对 DeFi 创新的看法和思考,以及如何应对 Uniswap 的出击等话题。寸拳,1inch 的创新哲学1inch 这个名字蕴含了浓烈的东方哲学,源自李小龙的名招「一寸拳」,这是国际间对中国传统武术中「寸拳」技法的译称——"One Inch Punch"。在深入智能合约前,1inch 联合创始人 Anton Bukov 的初始职业是一名 C++系统工程师,接着因为对苹果开发工具的喜爱而转向 iOS 开发。而当他遇到智能合约后就立刻被强烈吸引了:在编写智能合约时,需要在全新的层面上去思考和编写代码。在 2018 年,通过朋友的介绍,Anton Bukov 和 Sergej Kunz 相遇并瞬间击中,然后在 2019 年的黑客马拉松上,Sergej 和 Anton 一起开发出了 DEX 聚合器解决方案——这就是 1inch 的起源。左为 Sergej Kunz,右为 Anton Bukov「记账创新的重要性被大大低估了」BlockBeats:1inch 在 DeFi 领域做出了独一无二的贡献,我们一直希望能与 1inch 的创始团队有深入的对话,而据我所知,你们还在涉猎一些新项目。Anton Bukov:没错。举例来说,像 =nil; Foundation 这样的组织,不论是在各类大型会议上,还是在会议之外,都在进行着众多的项目,规模大小不一。有些人正在为现有的区块链和 EVM 构建新的功能,还有人则致力于为加密货币领域的 ZK 创造全新的工具。这些项目并非只是在既有的 EVM 和以太坊的框架内进行,而更像是在为加密货币证明的大众市场,或是协议不可知的项目,构建未来的解决方案。对于那些不能带来任何实际价值的项目,我并不感兴趣,我不相信它们能带来任何实际的价值。然而,有一些人在做的事情。例如,当我和他们交谈了 15 到 20 分钟后,我会发现他们正在做一些非常有趣的事情,他们正在解决一个实际的问题。尽管这个问题现在可能还不太大,但是正在变得越来越重要,这让人感到非常鼓舞。BlockBeats:我简单地和 =nil; Foundation 交谈过,了解到他们在Proof Market方面进行的尝试。Anton Bukov:是的,值得一提的是他们所提出的证明市场,这是一个很酷的东西。所有使用零知识证明(ZK)的参与者都需要创建证明,这是一个需要消耗大量资源的过程,包括能源、GPU 和 ASIC。有一些专门的设备能够承担这些工作。就像比特币挖矿需要 ASIC 一样,创建证明也需要 ASIC。这种专用的硬件能够比通用 GPU 更高效、更经济地创建证明。他们试图创建一个市场,你可以在这个市场上发布订单,如果你愿意支付一定的费用,让别人为你生成证明,那么总会有人对你的订单感兴趣并完成它。一旦完成,他们就会生成该证明,并将其提供给能够验证并支付他们的智能合约。我曾经在 Hackathon 上也做过一个类似的项目,创建了一个智能合约,它可以让用户定制个性化的比特币地址,该合约使用了分离密钥生成的方案。因此,没有人知道最终的私钥,甚至那些用 GPU 算力去寻找私钥的人也无法知道。这是不可能的事情。他们只知道私钥的一部分,那部分是将要加到一个他们不知道的数字上的数字。BlockBeats:那是你编写的第一个智能合约吗?Anton Bukov:是的,那是我在 2017 年的一次 Hackathon 上编写的第一个智能合约。由于我在 Solidity 上找不到任何有助于椭圆加密的库,这可能是密码学密度最高且最复杂的智能合约之一。我需要生成私钥公钥,添加公钥,然后我们可以通过公钥的哈希计算地址。我自己实现了这个逻辑,研究了椭圆曲线是如何工作的,根据维基百科和我找到的其他文档编写了代码,然后就奏效了。后来我还找到了一个库,以一种更高效的方式提供了某种中间表示,这对我来说非常有趣。BlockBeats:提到 2017 年,当时许多人都专注于 ICO 之类的投机行为。Anton Bukov:那可能是在 ICOs 之前,或者大概在几个月后,大约在 2017 年中,我们曾开过一些关于发行代币的玩笑。1inch 可能没有其他领域或项目那么专注于代码数量,因为我们坚信确保用户安全的关键在于尽可能简化代码,并在预算允许的范围内进行尽可能多的审计。如果你有一个含有 5000 行代码的协议并且进行了一次审计,与你有一个只有 500 行代码但进行了 10 次审计的协议相比,你的安全性要高出 100 倍。因为审计并不能保证你的协议是安全的。即使经过了形式化验证,也不能保证安全。它只能保证在你了解所有可能的组合的情况下,可能是安全的。但是你可能忽视了其中的某些威胁和潜在用例。过去的经历表明,一些经过形式化验证的项目也会受到黑客攻击。当有人发现他们可以在同一个区块内操纵 LP 代币的价格,他们就会将以太坊和其他资产投入 Uniswap V2 池中,这使得 LP 代币的价格上涨。然而,如果你拥有两个仓位,一个以 LP 代币作为抵押品,另一个以 LP 代币作为债务,在操纵价格的同时,如果一个仓位非常大,另一个仓位却是负的,那么你就可以带着巨额仓位离场,抛弃那个负债的仓位。因此,如果你能操纵资产的价格,甚至在同一区块内将价格抬高,这会给资金市场带来风险。这是人们没有意识到的,而形式化验证也没有解决这个问题。Aave 的一个分支就因为这个问题被黑客攻击。Aave 关闭了这些智能预言机,因为它们对这种攻击毫无防备。这就是形式化验证不能使项目百分之百安全的例子。我们相信,每次审计都会增加你的安全性,代码越少,审计越多,就越安全。当然,作为拥有 15-20 年软件开发经验的工程师,我们也花费大量时间提高效率和 GAS 效率。在智能合约方面,唯一的优化目标就是智能合约代码的大小和 GAS 效率,我们试图在这两个参数之间找到平衡。代码简洁性和功能紧凑性的平衡BlockBeats:其实在很多人的想象中,DeFi 动态聚合器的代码一定非常复杂。Anton Bukov: 我们会在代码的简洁性和紧凑性之间找到一种平衡,并不意味着我们要把所有的东西都只放在一行代码里。我们只做必要的事情,而且要以高效的方式去做。写代码时常会使用数据结构和算法来帮助处理复杂性和 gas 成本,但我们找到了另一种巧妙的方式,提出新的记账算法,这是在算法领域被低估的一个话题,即算法中的记账创新。来自 Paradigm 的一位成员也在 Twitter 上提到了这个话题,他同样认为记账本身是一个被低估的领域,将在 DeFi 中带来很多创新。这个领域就是。例如,在 2020 年,我和我的同事创建了一个农场智能合约。第一个具有农场激励机制的智能合约是我和我的同事为 Synthetics 协议编写开发的,这个协议每周通过脚本发送激励。我们加入他们的 Discord 提出:「你们为 Uniswap V2 的流动性提供了激励,但是那些提供流动性的人拥有 LP 代币,为什么你们不为这些奖励制定一个质押合约呢?」他们都惊讶于我们刚来就提这个建议。我还说,我们可以编写这个合约。于是我们编写了这个合约,并由 Sigma Prime 审核。这个合约可能是以太坊上被复制最多的智能合约之一。你可能记得 DeFi Summer 时有很多「食物代币」,它们主要就是基于这个智能合约。这是一个记账创新的例子,因为在这个智能合约的重要部分就是人们可以加入「农场」,也可以离开「农场」,这个「农场」可能有数千甚至数百万的用户。但当他们加入和离开时,它是如何运作的呢?「农场」在一段时间内平均分配所有的资金,比如每周分配一定数量的代币,每秒、每分钟、每个区块都在分配同样的金额,但是这些资金是按照用户的质押比例分配的。这里只有三个操作:存款、取款和领取奖励。这三个操作都不包含钱包的枚举,这种方法的复杂度被称为常量复杂度。这意味着,无论我们有一千个用户,还是一百万个用户,这三个方法执行所需要的 gas 成本都是完全相同的。BlockBeats:DeFi 的哪一点吸引了你的关注?又是如何想到 DEX 聚合器这个点子的?Anton Bukov: 因为我们看到这个领域仍然存在大量的未被挖掘的潜力。我们在算法和记账上的创新想法非常有创新,尽管我们已经拥有货币市场、AMMs 等,但记账方式这个领域仍被严重低估了。以加密货币市场为例,它的运作方式很有趣。人们将他们的资产存入一个池子中,这个池子会混合所有人的钱,然后你可以借入其他资产。比如说,你将你的以太坊存入,然后借出比特币。你实际上是从那些存入比特币的人那里借钱的,而不是从某个特定的人那里借的,所以这个过程不是点对点的,而是一个池对池的交互。这种模式使得你的债务和抵押品每秒都在增加。但是这是如何运作的呢?比如说,如果一半的 USDC 抵押品被借出,那些借款人每年需要支付 6% 的利息,他们的债务每年增长 6%,但这个数字是每秒都在增加的。那些提供流动性的人,一半的流动性被借出,支付 6% 的利息,但这些流动性提供者获得的年化收益率为 3%,因为这 6% 的一半按照 100% 的存款比例分配,作为 3% 的年化收益率,而且这个数字也是每秒计算的。为什么是每秒计算的呢?因为最初当我想到这个作为一个黑盒子的借贷概念时,我以为当你归还时需要支付额外的费用,比如你借了 100 美元,归还时你需要支付 105 美元,这笔钱会按比例分配给所有人,但如果你只按照目前在池子里的人来分配,那么就有空间给操纵者。有人可能会插队,存入 99% 的流动性,获得这 5 美元的奖励,然后在你之后立即取出。所以你应该把这 5 美元奖励分配给曾经在池子里的所有人,根据他们在一段时间内的持有比例。他们所做的就是让你的债务和抵押品每秒都在增长。所以对于操纵者来说,插队是没有意义的,因为分配已经发生了。当有人偿还债务时,并不意味着他会支付一笔将被分配的款项,这笔钱已经被分配了,他只是在还清自己的债务,这是一个伟大的记账创新。Compound 和 Aave 的实现方式不同,Compound 会通过不断提高 Compound 资产价格与基础资产的价格比来分配奖励。这个价格每秒都会根据一个公式增加。当借贷的比率发生变化时,他们会调整这个比例。Aave 的做法与此相似,但他们保持 1:1 的价格比,所以你的余额会不断增长,这是一种不同的方法,可以相互转换。任何人都可以编写一个代币封装器,让其表现得像一个 Compound 代币。它的余额不会增长,而是价格会增长。而且还可以创建一个反向封装器代币,可以让 Compound 代币封装器表现得像其他代币,与基础资产一对一,余额不断增长。我相信有人可能已经做了这个项目,比如 X token 项目之类的,他们通常会做一些封装器,允许实现类似的功能,比如投票功能、自动投票、委托等。对于为什么我们选择在 DeFi 领域创新,我想说我们并不仅仅关注 DeFi。我们也非常关注 Web3,并寻求在这方面创新。通常,我们会想出一些独特的技术创新和想法,然后尝试理解我们是否可以基于这些创新和想法构建一个有用且成功的产品。我注意到有些项目首先设想一个产品,然后试图实现它。但我认为 1inch 的做法与之相反,我们首先提出创新,然后尝试理解如何利用这种记账方法或这种算法来最好地服务于用户。这也是为什么我们的大部分产品都能在落地时做得很好,并且很难有人能与之竞争。开发者门户,1inch 在憋什么大招?7 月 19 日,1inch Labs 宣布其开发者门户(Developer Portal)测试版的发布,这是一个 Web3 云 SaaS(软件即服务)平台,为开发新产品提供最先进的 API。1inch 开发者门户提供的 SaaS 解决方案包括:可为用户在特定区块链上交换的加密货币数量提供报价的 Swap API ;根据可用的流动性,在支持的网络上提供加密货币的当前现货价格的 Spot Price API ;为加密货币钱包余额和限额提供准确信息的 Balance API ;基于 1inch 限价单协议的 Orderbook API ;提供用户钱包中所有 NFT 信息的 NFT API 等其他诸多功能。据官方说明,1inch 开发者门户经过验证的解决方案,已在 1inch Wallet 和 1inch dApp 中成功测试。已经集成 1inch API 的项目包括 MetaMask、Trust Wallet 和 Ledger。1inch 开发者门户提供 99% 的正常运行时间服务级别协议。1inch API 为用户提供极短的响应时间,延迟是市场上是最低的。同时,1inch Swap API 可访问多个区块链上的众多流动性来源。便捷的界面可以让用户能够访问最新文档、高级请求统计数据,以及有关 1inch 协议的所有重大升级信息。一个团队应该如何看待行业创新?BlockBeats :让我们来谈谈产品。1inch 最新发布的开发者门户和之前提供给开发者的 API 有何不同?Anton Bukov:Web3 领域的许多开发者都曾参加或仍在参加 Hackathon。我认为,在 Hackathon 上,快速交付成果非常关键。这里存在一条帕累托法则,即付出 20% 的努力就可以得到 80% 的结果,这就是在 Hackathon 上需要追寻并实现的目标。然而,为真正的用户交付产品还需要完成剩下的 20%,而这将需要你投入 80% 的精力。这正是我们的新开发者门户(DevPortal)希望解决的问题。我们花费大量时间为自己、我们的钱包和我们的产品构建所有这些服务。然后,我们决定如果我们能让其他开发者访问所有这些高质量的 API,他们将能够更快地推进自己的产品,更快地验证他们的假设是否符合市场需求,无需投入那 80% 的努力就能实现那 20% 的功能。BlockBeats :开发者可以用这些 API 构建哪些类型的应用或实现呢?Anton Bukov:可能性是无穷的,可以是钱包,也可以是 dApps。如果你打算制作一个钱包,那么你投入的 20% 的努力和得到的 80% 的结果可能就是用户界面,可能是一个移动应用或者 Web 应用。然而开发后端获取钱包的所有代币,这些代币的价格,历史变动,历史记录,这些要在链上,是更大的工作。但是如果有人想要运行一个新的钱包并验证人们是否喜欢它,他们就无法在没有后端的情况下实现这一点。而现在,他们可以只使用我们的 API 来进行尝试,对于大多数人来说,这都是免费的。BlockBeats :在整个 1inch 生态系统中,1inch 钱包将扮演什么角色?Anton Bukov:我们坚信我们的使命是改进这个领域,加速奇点的发展。因此,我们认为公司的唯一生存之道就是创新。我们不仅仅想要生存,还想要持续创新,这也是驱使我们前进的动力。当然,我们有时会感到我们在与其他项目竞争,但这是好事,因为这对我们来说是充满挑战的。我们最初是从 Hackathon 起步的,2019 年我们参加了 15-20 场 Hackathon,对于最终用户来说,竞争总是有益的。在区块链的每个领域都存在竞争,钱包之间、聚合器之间都存在竞争,几乎在所有 Web3、区块链、DeFi 技术所提供的市场中都存在竞争。然而,这些竞争的最大赢家通常都是用户,这真的很棒。这个行业还很年轻,十年后可能会有很大变化。但我们现在所做的一切对于构建这个光明的未来都是有益的。我们发布了这些 API,不仅是为了我们自己内部的使用,也是为了让所有人都能使用,我们相信这将推动行业构建更多的应用。我们并不害怕竞争,因为我们认为这个领域有巨大的发展空间,即使我们在钱包市场上只占有 10% 或 15% 的份额,我们也不在乎。我们仍然处理了超过一半的聚合交易,并一直努力提高我们的市场份额。当然,我们会为我们的份额竞争。但总的来说,我们更希望让这些市场发展得更快。我们的目标不是在小市场上竞争,而是要让整个市场更快地发展。拥有更多不同的钱包可能会吸引更多的人加入到 DeFi 中来,我们希望让整个市场比现在发展得更快。在产品创新和市场增长之间的做出平衡BlockBeats:能透露一下 1inch 现在最赚钱的功能或产品是什么吗?Anton Bukov:实际上,我们并没有从 Swap 中获得收入,因为我们现在的资金充足,我们并不急于赚钱。我们认为,现在更重要的是增长。如果我们需要获得更多的资金,有许多方法可以做到。但在 2023 年的现在,我认为我们离停止增长还有很长的路要走,整个行业在未来 3-5 年内可能会增长 10 倍,因此增长更为重要。许多项目把所有的收入和投资都用于增长,而不是赚钱,许多公司也是如此,比如 Uber。有时,这些公司可能因为高杠杆而生存艰难,他们试图花更多的钱,赚更多的钱,投资更多。但问题是,当投资者看到这些钱都去哪里时,他们会发现这些钱都投入到了增长上,通常不仅仅是在 DeFi 领域,还包括了不断增长的市场和新兴市场。因此,市场中最大的公司非常专注于整个市场的增长和自身在市场中的增长。BlockBeats :在 Fusion 之后,你觉得 1inch 的下一个重大更新会是什么?Anton Bukov:我们现在正在探索下一步可能关注的产品,我们已经设计了一些尚未发布的产品。最初,我们有超过 10 个想法,然后进行了一番头脑风暴。我们对这些想法进行了排序,有三个听起来特别好。我们会继续进行这样的过程,直到决定哪一个可能最符合当前市场和形势的需求。所以现在还没有具体的决定。这也是我们从未公开路线图的原因。市场变化非常快,六个月后市场或许会变得完全不同,我们可能会开发出不同的产品。我们也不能完全确定在接下来的六个月中,我们会做什么。如果我们有一个长期的路线图,但我们又改变了想法,那么很多人可能会感到不满,因为他们认为原来的路线图很好,新的路线图不行。我们的目标是始终超越预期,所以我们不发布路线图,总会有人认为他们比你更懂,他们总会有不满。BlockBeats :谈论创造新产品或创新时,必须考虑产品交付的问题,市场正在快速变化,特别是在 DeFi 领域。你们是如何调整产品的开发方向和实际执行的市场适应性呢?Anton Bukov:我们不会花超过半年的时间来开发一个产品或下一个版本的产品。通常,我们需要的时间会少得多,大约两到三个月,可能稍微多一些。有些开发工作可能从 solidity 智能合约开始,然后在审计期间,我们会有前端、后端等工作。通常是两到三个月左右,可能在某些情况下会稍微多一点。如果我们的产品周期是一年,我们就会被市场淘汰。当你发布它时,可能没人会去用,它可能会变得毫无用处。比如 Uniswap 团队,据我了解,他们在交付产品方面平均需要一年左右的时间。他们说这是 Uniswap X,关于 V3 版本,我相信他们在此之前甚至一年多就开始宣传了,但他们一直在研究 AMM 领域,例如 V3 是 AMM 创新,这个市场在过去一到两年中一直相当稳定。但是,当我们在不同方向、不同 DeFi 领域构建时,我们不能接受这种情况。Uniswap 接连出击,1inch 如何应对?此前,Uniswap 创始人在 ETHCC 上宣布,即将推出跨 AMM 、基于荷兰式拍卖的聚合协议:UniswapX。对于这一款即将上线的新产品,社区和市场做出的评价褒贬相半。Paradigm 研究员 Dan Robinson(@danrobinson)在社交媒体上对 UniswapX 的改变给予高度评价:「我认为 UniswapX 改变了去中心化交换、MEV 和互操作性的游戏规则」,且详细列举出了五个原因。但 Curve Finance 官方账号却做出了不同的评价,他们的看法带有一丝别样的韵味:「恕我直言。游戏规则在很久以前就已经改变了:当 1inch 第一次进行高质量聚合时,当 CoWSwap 推出 Solvers 模型时。UniswapX 是不错,但它并不是开创者,甚至也不是第二个玩家。」无疑,Curve Finance 认为 Uniswap 在抄袭。一些社区成员也纷纷发出疑问:「UniswapX = CoWSwap + 1inch?」相关阅读:《褒贬相半,Uniswap 究竟是不是「币圈腾讯」?》粉色阴影BlockBeats:你提到了 Uniswap,他们最近发布了其重要的 V4 版本以及 UniswapX。尽管其他协议早就提出了类似的创新,但 Uniswap 对这些创新的二次采用还是让其他协议黯然失色。我想听听你对这个问题的看法,一个 DEX 团队作为 Uniswap 的对手,现在应该如何在 DeFi 领域发展?Anton Bukov:当我第一次听说 UniswapX 时,我的第一反应是想知道为什么它和 1inch Fusion 看起来如此相似。当我们深入研究了他们的白皮书后,我们发现 1inch Fusion 是他们最重要的参考之一。我认为这是一种肯定,这再次证明我们和其他在市场上做类似事情的参与者正朝着正确的方向前进。这也再次强调了我们总是领先一步。我坚信,我们的解决方案将继续领先于行业。BlockBeats:许多不同的 DeFi 协议进行了很多创新,但市场并没有给予他们足够的关注。但当 Uniswap 实施了类似的创新后,整个市场就突然觉得这就像一场革命一样。Anton Bukov:是的,我认为有些项目已经具有了不公平的优势,这里的不公平优势是指他们有一些审计师,由于品牌效应,这些审计师成为了他们服务的敲门砖。但这种情况正在慢慢得到解决,因为市场在自我调整。人们开始意识到聚合器的存在,当他们看到 DEX 聚合器时,几乎立刻就能理解到 DEX 虽然不错,但 DEX 聚合器总是领先一步。市场上的不平等和不公平几乎无处不在,在自由市场和非严格监管的市场上,这种情况得到了改善。非监管市场的增长速度远快于监管市场,而且它们的不平等状况随着时间的推移也在逐渐改善。BlockBeats:我还想谈谈商业许可证的问题。在 Fusion 发布后,你们宣布了 MIT 许可,这与 Uniswap 采用的 BSL 许可有很大的区别,MIT 许可更加开放。你怎么看 Uniswap 在许可证方面的做法,为什么选择 MIT 许可?Anton Bukov:我们并不特别害怕竞争,我们的大部分智能合约解决方案都是完全开源的。MIT 许可允许任何人使用我们编写的代码做任何事情。我们认为,不是所有的软件工程师,特别是匿名的软件工程师,都会尊重你的许可。我在 Uniswap V3 的商业许可到期之前就已经看到了一些不知名的团队的分叉。商业许可可能会阻止一些公开团队或公平的竞争者进行分叉,但它无法阻止一些随机的公开分叉。我们认为,如果有人受到我们的想法的启发,那是件好事。我们开发了这个产品,即使有人复制或稍作修改,我们仍然是领先的。当我们发布新版本时,我们通常会已经在开发下一个版本,并且每个新版本都比前一个版本更先进。所以我们通常不太担心被复制,我们把这看作是对公众利益的贡献。BlockBeats:在 DEX 领域,Uniswap 正在走向极致,并且正朝着垄断性的方向前进。现在的 DeFi 领域,还有哪些方向对于创业者来说仍有发展空间?Anton Bukov:我认为创新仍然有空间,仍然有东西可以发明。但从技术角度发明出一些重要的东西之前构建项目或产品可能没有什么意义。仅仅对 Uniswap 或其他项目进行细微的改变,这可能行不通。这样根本无法扩大市场份额。但是好的一面是如果你能找到一个很好的设计,XS AMM 就能得到关注,因为如果你的协议相对于其他协议能提供更好的价格,你的协议就会立即被聚合器所采纳。如果它能提供优秀的价格和对 LP 有吸引力的收益,你就可以取得成功。有可能会有某个天才想出一个天才的方法,发布一个协议,吸引几十万左右的流动性。这个新的 AMM 或 DEX 可能会被聚合器所接纳,从而获得其首批交易量,为 LP 带来丰厚的收益。随着更多的 LP 的加入,项目将逐步发展壮大,在市场上占据数万的份额是有可能的。在聚合器出现之前,新建的 DEX 之间会有很多竞争对手。某个 Hackathon 的参赛者可能会想出一个非常好的解决方案,它被投入使用并在市场上获得竞争份额。以前要获得市场的 10% 份额是不可能的,仅凭一个想法和一点流动性是不够的。你必须吸引用户,因为没有人会进行兑换,但现在,你可以自动获得交易量。所以聚合器的市场定位与 Uniswap 目前的业务有所不同。在聚合器发明之后,有很多 DEX 出现了,而以前很多 DEX 因为没有用户而消亡,但是当聚合器出现时,很多 DEX 能够生存下来并取得成功,获得一些份额继续生存。BlockBeats:目前大家对 1inch 的印象主要还是一个 DeFi 聚合器,未来你们如何在 DeFi 市场中定义自己?Anton Bukov: 是的,1inch 的主要业务仍然是聚合器,我们不认为 Uniswap X 的发布会有很大的变化。我们已经在市场上看到了其他的聚合器,过去三年半我们与他们竞争得相当成功。在最初的半年里,我们几乎是市场上唯一的玩家。我相信事情会有所改变,但并不像有些人想象的那么剧烈。我们有一些并非仅仅是聚合器的产品,还将拥有更多不同的产品。次级 DeFi 可能会针对不同的市场进行监管,比如美国和欧洲的次级 DeFi,也应该添加针对中国的次级 DeFi,因为这是一个非常庞大的市场。可能还有其他市场,比如日本,也是一个庞大的经济体,我们可以通过国家或国家联盟的经济规模来看待BlockBeats:你是否担心未来 Uniswap 的流动性过强,进而影响到 1inch 的大规模采集和使用呢?Anton Bukov:他们一直有很多不公平的交易量,所谓不公平是指聚合器按照不同 DEX 提供的价格公平地分配交易量。当一个用户群体在 Uniswap 上交易,却不使用其他 DEX 或聚合器时,他们可能会有一些交易量。如果这些交易量相对于他们的流动性和价格而言过高,那就是我所说的不公平交易量。从我们在一两年前的测量结果来看,这个问题非常严重,但现在正在逐渐好转。这个市场,和其他所有市场一样,正在变得更好。很多人在 Uniswap 上交易,是因为他们在 TikTok 上听说过它,并不知道其他 DEX 或聚合器的存在,但无论如何,他们最终会为此付出代价,因为这个市场实在太疯狂了。如何看待 DeFi 的未来?BlockBeats:有些人表示,他们正将策略转向在 V4 hooks 上构建一些东西,而不是开发新的 DeFi 应用。从你的角度来看,什么是最好的策略?Anton Bukov:你可以通过 V4 hooks 来引入去中心化交易平台的一些创新,可以在现有的去中心化交易平台之上进行创新,增加额外的功能,如预言机或类似的东西。Uniswap 看到他们的协议被分叉了很多次,而这些变化很小,实际上并没有改变 Swap 的逻辑,他们改变的是其他方面。这个带有分叉的 V4 将允许其他开发者在顶部添加自己的功能,收费或不收费,或者其他任何东西,而无需分叉他们的代码,他们仍然能够通过这些池进行交易,只是带有一些 hooks,现在他们不会通过 SushiSwap 或其他任何平台进行交易。Anton 在 ETHCC 会场BlockBeats:但这会缩小市场或者降低人们建立自己的交易平台并利用聚合器获得即时流动性的积极性,从而导致市场上的技术堆栈减少吗?Anton Bukov:讨论的重点并不是减少交易平台的数量,而是减少现有交易平台的分叉。你可以拥有你自己的 Hooks,我们会很高兴收取费用或其他任何东西。但是如果你想在没有任何重要创意的情况下复制 Uniswap,请不要制造分叉,这没有任何意义。我们可能会看到更少的 Uniswap 分叉,但可能会有更多的 Hooks。BlockBeats:很多开发者都放弃了创建 DEX 的计划,转而研究 Hooks。Anton Bukov:他们在某种程度上仍然可以通过 DEX 来实现,但是与 Uniswap 的 V3 和 V4 解决方案相比,竞争确实变得更加困难,我相信 V4 会比 V3 更强大,V3 并没有完全取代 v2,可能是因为 V2 的 GAS 费用要低得多,这就是为什么 v2 仍然具有大量流动性,而 Uniswap 及其路由器仍然支持 v2 和 V3。但很可能 V3 会完全转移到 V4,因为 V4 比 V3 更好,在 V3 中保留流动性没有意义了,不过我相信他们的路由器会支持 V3。我们曾经有过一些关于自有预言机和其他事物的想法,但我们总是在为我们需要维护一个全新的 AMM 及其所有流动性而挣扎。然而我们认为 Uniswap 在改善这个市场方面做出了很好的举措。因此,我们正在探讨我们到底能提供什么,我们可以开发哪些能够大幅改善某些方面的 Hooks,改进预言机,或者提高 LP 的利润。我们正在探索这一切,并且可能会想出一些组合,这些组合可能会成功,并将大量流动性吸引到我们开发的 Hooks 上。BlockBeats:这或许会是聚合器发挥作用的地方,它不一定是 DEX 聚合器,还可以是很多其他东西?Anton Bukov:是的,已经有了收益、DEX、桥接的聚合器。我认为每个市场都是不同的,聚合 DEX 时我们并没有增加用户的风险。我们可以从第一天开始添加很多 DEX,用户不会承担任何新的风险,因为我们的智能合约在处理所有的风险。但当我们谈论到收益聚合时,这会给用户带来新的风险,从本质上讲这不应该像 1inch 那样。我们可以将一切隐藏在一个交易的幕后,但我认为他们仍然应该向用户展示选择性,用户应该决定使用哪个桥接,哪个更快,多得 10 美元还是在 2 分钟而不是 20 分钟内完成一切,你不能替用户做决定。BlockBeats:我记得你去年在 ETH Denver 上也提到了关于 DeFi 的监管问题,但最近关于监管的讨论越来越多,比如与 RWA 等相关的问题。你是否仍然认为 DeFi 可能需要在诸如稳定币之类的问题上寻求自己的解决方案?Anton Bukov:关于监管,我可以说的是,不同的国家和地区对于监管有不同的要求和想法。但问题是如果他们试图通过让协议或用户遵循与非监管 DeFi 不兼容的规则来进行监管,这不会损害 DeFi,这会创造一个 DeFi 的子市场,这是一种子 DeFi。DeFi 允许用户和协议的子集在自我限制和监管方面进行互动,所以他们不能监管 DeFi,只能以某种方式创造一个受监管的子 DeFi。我们可能会看到针对美国、欧洲地区的受监管子市场,我们已经有了一个相当庞大的 DeFi 市场,如果一些国家希望他们的经济与这个新兴行业融合,就需要接受它。监管是有可能的,但它应该非常微弱,不应是阻止接受现有 DeFi 的东西。例如,我们前几个月看到巴黎银行创建了稳定币,人们在推特上嘲笑它。它的代币看起来像是 ERC20,但与 ERC20 完全不兼容,也绝对不会与现有 DeFi 的大部分现有协议一起使用。你可以试着让它运行,但它可能会破坏事物。因为现有协议假定 ERC20 按照标准中的描述工作,如果你的代币运行方式不同,就可能会破坏它。例如,Uniswap V3 根本无法运行,因为它们在追踪存款用于交换或提供流动性时的余额变化时,之前的版本从源头或智能合约转移,会认为转移发生了,余额已经更新,但实际上并没有,所以奇怪的事情可能会发生,他们的代币无法接入现有 DeFi。他们正在创建一种新的市场,我很好奇是否会出现至少一个支持他们解决方案的协议。很可能不会发生这种情况,他们不会成功的。发布于 2023-08-02 18:22赞同 12添加评论分享收藏喜欢收起沈志强公众号「沈志强」作者,欢迎订阅交流。 关注在进行区块链资产交易时,有两大主要的交易途径,它们分别是 dex 交易和 cex 交易,也就是去中心化交易所交易和中心化交易所交易。从行业现状来看,类似于币安和 okx 这样的中心化交易所还是占据着整个加密货币交易的大部分份额,因为在中心化交易所中进行交易相对来说更简单安全一些,但可交易得标的则远远没有去中心化交易所多;而去中心化形式的交易中,Uniswap 则占据着妥妥的头龙地位。写在前面,我接下来写的东西很可能是错的,如果您看到我的错误,欢迎对我的错误提出指正,感谢。同时,我所有关于区块链资产交易的内容都不构成对您的任何投资建议。另外,我之前也写过系列区块链领域相关文章,感兴趣的朋友可点击文章上方「#区块链」标签随时了解。1什么是 Uniswap?在聊 Uniswap v4 之前,我想我们可以稍微回顾一下有关于 Uniswap 本身的一些基础认识。Uniswap Labs:开发 Uniswap 协议以及 Web 界面的公司。Uniswap 协议:一套持久的、不可升级的智能合约,共同创建一个自动做市商,该协议促进以太坊区块链上的 ERC-20 代币的点对点做市和交换。Uniswap 界面:一个 Web 界面,允许与 Uniswap 协议轻松交互。该界面只是与 Uniswap 协议交互的多种方式之一。Uniswap 治理:用于管理 Uniswap 协议的治理系统,由 UNI 代币启用。该部分来源于 Uniswap 官方文档,链接:https://docs.uniswap.org/concepts/overview《什么是 ( https://docs.uniswap.org/concepts/overview《什么是 ) Uniswap?》官方文档中还包含了非常多的其他的基础性的概念介绍,对 Uniswap 感兴趣的朋友,就非常值得去好好看看里面的内容了。那么,接下来我也向大家快速汇报下我对于 Uniswap 的整体理解。应该说,Uniswap 在区块链领域是一个非常大的创新,它的出现无疑促进了整个区块链资产交易活动,现在 Uniswap 已经成为了区块链领域中的一个基础设施了。如要简单理解 Uniswap 的话,我们可以先回想一下传统金融中的股票交易市场。在股票交易中,很多都是通过限价订单簿的形式促成交易的,也就是买卖双方可以对标的物自行定价,然后将该价格挂到交易系统中,只要有人接受该价格,那么这笔交易就会成交。像币安、okx 这样的交易所就相当于股票交易所,它们搭建了一个平台,吸引所有人去交易。有个挺重要的基础是,币安、okx 是最大的流动性提供方,这是它们能够吸引到别人去自己平台交易的原因之一,只是它们是中心化的一个场所。那么,在去中心化环境中,能不能也实现类似的交易呢?Uniswap 团队给出了自己的解决方案,那就是提供一个自动做市机制来替代订单簿。自动做市机制允许所有人提供流动性,这样一来就巧妙解决了一般标的物流动性提供的问题,只要标的运作良好,就不用担心流动性问题。这也促成了链上大量的可交易的标的出现,给整个行业注入了不少活力。2Uniswap 协议核心内容Uniswap 于 2018 年 11 月 2 日由西门子 ( https://en.wikipedia.org/wiki/Siemens )前机械工程师 Hayden Adams 创建,截止目前,Uniswap 协议已经历经了 3 次升级,分别是 Uniswap v1、Uniswap v2 和 Uniswap v3。现阶段,链上交易普遍使用得是 Uniswap v2 和 Uniswap v3,Uniswap v1 已经没有人在使用了。由于 “年代久远”,我也没有仔细了解 Uniswap v1 的情况;所以,接下来我们主要聊得就是 Uniswap v2 和 Uniswap v3。不论是 Uniswap v1、Uniswap v2 还是 Uniswap v3,自动做市机制的实现都依赖于这样一个算法实现:x * y = k。这个算法的意义就在于每一个 Uniswap v1 交易对池子都包含两个代货币,在提供流动性的过程中保证两种代币余额的乘积无法减少。也就是说,在目标代币的价格不断变化的过程中,流动性提供者的池子中的两个代币的数量会自动发生变化,但始终保持二者乘积不变。比如:有人提供了 ETH/DAI 交易对的流动性,当 DAI 价格上涨时「这里可以理解成有其他用户用他的 ETH 想要在这个池子中购买 DAI」,Uniswap 就会自动将池子中的 DAI 卖出一部分「也就是卖给那个目标用户」换成 ETH「其实是将那个目标用户的 ETH 给到了这个头寸的流动性提供者」,那么效果就是当 DAI 价格上涨时,流动性提供者的 ETH 数量会逐渐增加,DAI 的数量会逐渐减少。反过来,当 DAI 价格下跌时,流动性提供者的 ETH 数量会逐渐减少,DAI 的数量会逐渐增加。而在这个过程中,有人为目标标的的交易提供了流动性,实际上是为所有想要交易目标标的的人提供了流动性;那么哪些想要交易目标标的的人就需要为这些流动性提供者支付一些手续费,这些就是 Uniswap 为 LP(流动性提供者)所做出的激励。在交易手续费上,Uniswap v1 设置的手续费比例是固定的 0.3%,Uniswap 协议本身在交易过程中不收取任何费用;Uniswap v2 由于支持在工厂合约中修改一个合约,这使得 Uniswap 能够针对每笔交易收取 0.005% 的手续费,而 LP 则只能收到 0.025 的手续费,只是该开关默认是关闭的,Uniswap 可在未来某个时间打开该开关;Uniswap v3 则在手续费收取上更加灵活,因为交易手续费将不再限定在 0.3%,而是允许 LP 在设置交易对或者说提供流行性时自行设置手续费率,目前 Uniswap 可支持用户自行设置的手续费率有 0.05%,0.3%和 1%,当然,这个手续费等级是可以通过 UNI 治理随时更新的。在交易池价格区间设定上,根据 Uniswap v1 和 Uniswap v2 协议能够给出得实际交易价格区间都是 (0, ∞ ),这带来了一些问题,那就是当提供对像类似 USDC/USDT 这样的稳定币的流动性时,这样的机制设定会让 LP 的资金利用效率变得极为低下,因为稳定币中的价格交易区间几乎都是在一个非常小的范围内;所以,Uniswap v3 提供了更为灵活的价格设定机制,它允许用户根据目标代币的价格变化自行设定一个自己所提供的交易对的交易范围价格,这就让代币在任何价位内都能有合适的 LP,换句话说,大家都可以根据自己对于目标标的的认知来获取自己的利益了。在交易对支持上,Uniswap v1 只支持原生 ETH 作为桥接代币。比如:某人想要给代币 A 和 代币 B 这个交易对提供流动性,在 Uniswap v1 协议下,要完成这样的流动性提供,LP 实际上需要提供得是 ETH/A 和 ETH/B,这样处理的好处就是路由比较简单,但对 LP 来说成本会比较高,因为一般代币对都需要使用两次 ETH 来做桥接,这意味着两倍的流程费用同时承受着两倍的交易滑点;Uniswap v2 和 Uniswap v3 则允许 LP 为任意两个 ERC-20 代币创建交易合约,这一方面减少了交易流程费用和滑点,另一方面也大大增加了 LP 所能提供的代币对的种类,不足之处就是寻找最佳路由变得困难了,但这可以通过各种各样的链上聚合器来实现寻找最佳交易路径,类似于 1inch 就是这样的聚合器。其实除了交易手续费、交易价格区间设定和交易对支持这三方面之外, Uniswap v2 和 Uniswap v3 的具体内容还是非常丰富的,一篇篇幅较短的文章是不容易说得那么清楚的,详细内容还请大家移步 Uniswap v2 和 Uniswap v3 白皮书做更多全面了解。本人水平有限,我这里只是把我所理解的 Uniswap v2 和 Uniswap v3 的一些核心内容给大家做下汇报。https://uniswap.org/whitepaper.pdf ( https://uniswap.org/whitepaper.pdf ) 《uniswap v2 白皮书》https://uniswap.org/whitepaper-v3.pdf ( https://uniswap.org/whitepaper-v3.pdf ) 《uniswap v3 白皮书》3Uniswap v4 协议看点我们终于要聊到 Uniswap v4 了,前面啰嗦了那些东西也是为了更好更快让我们理解 Uniswap v4 在协议上的一些升级和创新点。目前 Uniswap 官方已经提前放出了 Uniswap v4 可能的一些变化,前期版本代码也已经开源,但并未最终发布上线,因为 Uniswap 官方给了几个月时间让广大的开发者参与共建。https://github.com/Uniswap/v4-core/blob/main/whitepaper-v4-draft.pdf ( https://github.com/Uniswap/v4-core/blob/main/whitepaper-v4-draft.pdf ) 《Uniswap v4 白皮书》根据白皮书的内容,我看到 Uniswap v4 有两大亮点,分别是:钩子和 gas 费用优化。3.1钩子在此前的所有 Uniswap 协议版本中,所有交易池子的生命周期都是紧密耦合在一起的,换句话说,设定任何池子之后,所有操作都会按照协议既定程序走完;而 Uniswap v4 允许用户创建一个钩子合约实现自定义流动性池子,也就是说,Uniswap v4 协议允许用户通过一种合约让流动性池子在其生命周期的任何节点执行某种特定的操作。就比如输入「钩子」,让这些用户可以自定义流动性池、兑换、费用和 LP 头寸。在官方说明中,他们给出了一些有趣的玩法的方向,比如:时间加权平均做市商(TWAMM)基于波动性或其他投入的动态费用链上限价订单将超出范围的流动性存入借贷协议定制化的链上预言机,例如几何平均数预言机自动复利 LP 手续费到 LP 头寸内部化的 MEV 利润分配给 LP基于波动性或其他投入的动态费用以及将超出范围的流动性存入借贷协议,我们根据上文中对之前协议的描述可以知道,Uniswap v4 协议之前的协议整体上的资金利用效率是在逐步提高的,但引入动态费用之后,LP 的资金利用效率会进一步得到提到。因为在实际交易过程中,会面临各种各样的复杂情况,每个交易对内的资产如果没有一个实时适应的反映就很难实现资金的最优化配置,Uniswap v4 通过动态费用以及将超出范围的流动性存入借贷协议补足了这个缺陷。而链上限价订单则有利于 Uniswap 争取到 cex 上的一些订单流,这可以进一步扩大 Uniswap 的订单量。自动复利 LP 手续费到 LP 头寸就是说产生的手续费用会自动投入到流动性池子中,这就像滚雪球一样,会让池子内的交易对规模越来越大,而此前的 Uniswap v3 不是这样的,它就是单纯的手续费而不会自动投入到池子中。...总的来说,引入钩子之后的玩法不仅限于上述官方给出的几种,钩子合约是用户自行编写的,理论上可玩性是无限的,这就有赖于广大用户无穷的想象力了。3.2gas 费用优化由于此前的协议会为每个流动性池子单独创建一个合约,这导致不同池子之间的路由总是会因为合约交互而产生一定的费用。Uniswap v4 在这方面的改进措施就是把所有流动性池子都用一个合约来管理,这就减少了不同合约交互这部分的 gas。据官方估计,Uniswap v4 仅利用这一个措施就将创建流动性池子池子的 gas 降低了 99%,不知道实际表现如何,我们可以期待下。除此之外,在「快速记账」系统方面也有了一定升级,在 Uniswap v3 中,所有的交易结算都是在净余额的基础上记录的,而 Uniswap v4 是在每次兑换结束时将资产转入和转出流动性池,这样就更加高效和简单明了,同时也因高效节省了一部分 gas。同时,Uniswap v4 又重新恢复了对原生 ETH 的交易支持,此前只有 Uniswap v1 支持支持原生 ETH,Uniswap v2 和 Uniswap v3 支持的是 WETH「一种包装后的 ETH 」,那么减少包装这个过程,当然也会节省一部分 gas 了。当我看到 Uniswap v4 在这些方面的改进点之后,我意识到 Uniswap v4 能够有利于 Uniswap 继续巩固自己作为 DIFI 龙头的地位,因为 Uniswap v4 通过钩子合约提供了更多可玩空间;而节省 gas 则是广大用户的需要,有利于接下来从 dex 聚合器手中回流一部分用户,而链上限价订单的支持则有助于 Uniswap 作为去中心化交易平台提升相对于中心化交易平台的竞争力。Uniswap v4 又一次给 DIFI 赛道带来了新的刺激,或许会对整个赛道产生不小的影响。顺便提一下,uni 代币自 6 月 13 日 Uniswap 官宣 v4 协议动作至今已有 20% 的涨幅,而 DIFI 赛道其他币种也有不同程度的上涨,这是否有关联?看完本文,大家或许会有自己的判断。不论如何,做任何投资决策前,请自行 DYOR 「做自己的研究」。这四个字母的意思是我前段时间才知道的,就也向大家报告一下~温馨提示:本号所有文章均在个人微信公众号「沈志强」首发,如需第一时间收到文章推送,可关注一下账号,我在那儿等您~发布于 2023-12-25 22:42赞同 2添加评论分享收藏喜欢
Uniswap入门 - 廖雪峰的官方网站
廖雪峰的官方网站
Blog
Java教程
手写Spring
手写Tomcat
Makefile教程
Python教程
JavaScript教程
区块链教程
SQL教程
Git教程
文章
问答
More
Java教程
手写Spring
手写Tomcat
Makefile教程
Python教程
JavaScript教程
区块链教程
SQL教程
Git教程
文章
问答
Java教程
手写Spring
手写Tomcat
Makefile教程
Python教程
JavaScript教程
区块链教程
SQL教程
Git教程
文章
问答
Profile
Passkey
Sign Out
Sign In
English
简体中文
Uniswap入门
廖雪峰 / 文章 / ... / Reads: 30728 Edit
在现货交易中,买卖双方各自报价,然后撮合成交,这是最简单,最直接,也是微观层面可以直接实现的一种交易方式。因此,自世界上第一家证券交易所诞生以来,撮合交易一直是最主流的方式。
随着DeFi的兴起,在以太坊这样的去中心化链上怎么实现买卖双方的交易?最直接的想法是把买卖盘搬到链上。然而,严重的技术问题导致了这种方式既慢又不经济。
对以太坊这种可以运行智能合约的链来说,交易实际上就是执行合约的函数。一个合约部署在链上,实际上相当于一组函数代码存放在链上。任何用户都可以通过钱包软件来调用这些函数,实现与合约的交互。但是,有几个限制:
每次只能调用一个函数,不过这个问题不大,因为合约内部,一个函数又可以调用其他函数;
用户必须主动发起调用,合约自身无法主动调用任何函数,也不存在定时调用机制,这是区块链的确定性计算和可验证性决定的,因此,价格涨到某个位置自动卖出或者价格跌到某个位置自动买入是无法在链上实现的;
买卖订单写入链上非常昂贵,如果一个订单写入是$0.1,那么100万个订单就要$10万,并且,第二天100 万个新订单又需要$10万,这个成本是不可能被用户接受的;
链上极低的TPS(一般在每秒几十到几百),无法支持传统撮合交易高达每秒上百万的性能。
而智能合约有几个独特的技术特性:
智能合约没有私钥,即使是合约部署者,也没有合约的控制权。所谓的合约控制人,只能写到代码逻辑里;
合约可以持有资产,这意味着与合约交互时,既可以把资产转移到合约,也可以从合约转移资产出去。
一句话总结,就是链上的交易,总是交易员与合约交互,这与传统的撮合交易,总是人与人的交互不同。因此,简单照搬撮合模式的链上交易,无一例外都不成功。
直到2018年底,Uniswap上线,一个全新的Swap交易模式诞生了。
需要特别指出的是,此Swap不是指金融衍生品的掉期,它是Uniswap的现货交易模式。
Uniswap首先解决的问题是任何交易员都是在与链上的合约程序交易,由合约本身充当做市商,即自动化做市商 AMM:Automated Market Maker。对于两种资产组成的交易对,例如UNI/ETH,卖出ETH,买入UNI,或者卖出UNI,买入ETH,要与程序完成这笔交易,合约本身首先要持有这两种资产,比如100个ETH和2000个UNI,这样,交易员用1个ETH买入20个UNI后,合约持有资产可能变成101个ETH和1980个UNI。如果另一个交易员稍后卖出40个UNI,合约持有的资产又可能变成2020个UNI和99个ETH。
程序做市的资产从哪来呢?只能由流动性提供者LP(Liquidity Provider)先存入合约。为了鼓励LP将资产作为流动性存入合约,需要以手续费返还的形式作为激励。
和撮合产生市场价不同,和程序交易,需要用算法产生市场价。Uniswap引入了最简单的固定乘积公式x * y = k来由程序决定价格。
还是以UNI/ETH为例,如果初始状态下LP注入2000个UNI和100个ETH到流动性池子里,那么初始价格就是1ETH=20UNI,或者1UNI=0.05ETH,而乘积k = 2000 * 100 = 200000就是固定常数。
假设下一个交易员准备卖1个ETH,他将买入N个UNI,池子里会有100+1个ETH和2000-N个UNI,带入公式(100 + 1) * (2000 - N) = 100 * 2000,计算得知N=19.802,因此,不计手续费的情况下该交易员花费1ETH获得19.802个UNI,买入UNI后价格变为1ETH=19.606UNI,或者1UNI=0.051ETH,即UNI的价格略微上涨。
在Uniswap交易对中,两种资产的地位是等价的,且任何人都可以注入流动性充当做市商。对做市商来说,任何时候,都可以按照当前价格的比例注入两种资产,Uniswap会计算新注入的LP的占比,并返回给做市商一个LP代币作为做市凭证。做市商稍后可以将LP凭证兑换出两种资产,并在兑换时一次性获得累计的手续费。
做市商的风险在于,做市的价格和退出做市的价格很可能不一样,例如做市时注入了100ETH和2000UNI,退出时取出了50ETH和4000UNI,价格变化可能造成做市商损失,这种损失被称为无常损失:Impermanent Loss。
对交易员来说,往一个交易池里扔进去一种资产,就自动获得另一种资产,数量由Uniswap计算后确定,这就是Swap。
每次Swap交易都会改变交易池里两种资产的数量,从而引起价格的变动。那么,影响滑点大小的因素有哪些呢?由Uniswap价格公式可知,如果做Swap交易的数量较少,则滑点较小。如果流动性池子的资产数量越多,则滑点越小。因此,注入到池子里的资产数量至关重要,Uniswap用总锁仓量TVL:Total Value Locked表示池子的大小,可以从Uniswap交易页看到TVL排名靠前的交易池:
如果交易员想要交易UNI/WBTC,但是Uniswap没有这个交易池,或者交易池太小,怎么办?可以找两个较大的交易池,例如UNI/ETH和WBTC/ETH,做两次Swap,完成UNI和WBTC的交易:
┌─────────┐
────>│ UNI/ETH │
└─────────┘
│
▼
┌─────────┐
<────│WBTC/ETH │
└─────────┘
这种借助中介资产的交易方式会付出更多的手续费,但滑点会大大降低。
由于流动性池子的大小对于滑点有重要影响,而通常价格只会在某个范围波动,为了更好地利用做市商的流动性池子,Uniswap的V3协议允许做市时指定价格区间,超过区间后该做市商的资金就不会被使用。这种改进的目的在于使用更少的资金提供相同的流动性:
除了Uniswap,还有其他基于链上Swap的DEX。
Balancer允许多个资产在同一个池子中交易,它采用的公式如下:
V=\prod_{}B_t^{W_t}
Curve也允许多个资产在同一个池子中交易,它采用的公式如下:
\prod_{}x_i=\left(\frac Dn\right)^n
数学功底过硬的同学可以自行推导价格变化曲线,这里我们就不展开细讲了。
术语
自动化做市商AMM:Automated Market Maker
流动性提供商LP:Liquidity Provider
无常损失:Impermanent Loss
总锁仓量TVL:Total Value Locked
小结
Uniswap开创了自动化做市的AMM机制,使得程序化在链上做市成为可能。
Comments
Make a comment
Sign in to make a comment
Author: 廖雪峰
Publish at: ...
关注公众号不定期领红包:
加入知识星球社群:
关注微博获取实时动态:
廖雪峰的官方网站
©Copyright 2019-2021
Powered by iTranswarp
Feedback
License
Uniswap深度科普 - 知乎首发于区块随笔切换模式写文章登录/注册Uniswap深度科普JasonW喜欢思考,博而不专的铲屎官一、Uniswap是什么首先要搞清楚一下相关的名词都是什么意思: Uniswap Labs:负责开发Uniswap协议、网络接口的公司。 The Uniswap Protocol:一个实现自动化做市商的智能合约全家桶,促进点对点做市和以太坊上ERC-20 token的交易的协议(即Uniswap核心技术,后续工作原理介绍也都是针对协议内容的解释)。 The Uniswap Interface:为了方便使用Uniswap protocol而开发的网络接口,是与Uniswap protocol交互的众多方式之一(也可以直接与智能合约交互)。 Uniswap Governance:一个Uniswap Protocol的民主治理系统(社区式治理方式,论坛模式)。 按官网上的介绍,Uniswap协议是一个用来在以太坊区块链上交易加密货币(ERC-20代币)的点对合约系统。这个协议通过一个持久化、不可更改的智能合约集合来实现,旨在优先考虑抗审查性、安全性、自我监管,以及在没有任何可能有选择地限制访问的可信中介的情况下运行。简单点说就是通过智能合约实现了一个去中心化的ERC-20代币的自动交易系统。 二、Uniswap的发展历程Uniswap诞生至今也不过两年多的时间,但是却创造了很多令人惊叹的记录: 2018年11月2日,Uniswap公开宣布上线并部署到以太坊主网,推出第一个版本Uniswap v1,但这个v1版本只能算是一个新型去中心化交易方式的概念验证,可实用性并不强。 2020年1月31日,经过1年多的沉淀,Uniswap锁仓金额突破5000万美元,成为DeFi龙头。 2020年5月19日,Uniswap v2版本上线,增加了自由组合交易对、价格预言机、闪贷、最优化交易路径等功能,对v1版本进行了全面的技术升级。 2020年7月27日,Uniswap 24小时交易额突破1亿美元,DeFi在2020年迎来爆发式增长。 2020年8月7日,Uniswap官方宣布已完成1100万美元的A轮融资,由Andreessen Horowitz领投。 2020年8月31日,Uniswap锁仓金额突破10亿美元。 2020年9月1日,Uniswap总交易量超过100亿美元。 2020年9月3日,Uniswap锁仓金额突破20亿美元,距离10亿美元仅仅过了3天,可见市场之火爆。 2020年9月17日,Uniswap宣布其协议治理代币UNI已在以太坊主网上发布,针对每一个之前使用过Uniswap protocol的区块链地址空投400个UNI,UNI的持有者有对平台新的发展及改变的提议的投票权。 2021年5月5日,Uniswap v3版本上线,提供了集中流动性、多重收费层次、高级价格预言机、流动性预言机等技术升级,核心是提升资本效率,具体实现可关注另一篇文章Uniswap v3 设计详解。有一点需要注意的是v1和v2版本都遵循的是GPL开源协议,但是v3使用的是Business Source License 1.1(有效时限GPL-2.0或更高版本的许可证)。该许可证将v3源代码在商业环境或生产环境中的使用期限限制为两年,届时它将永久转换为GPL许可证。 三、Uniswap中的自动化做市商(Automated Market Maker,AMM)在开始介绍Uniswap之前,先来说说中心化的交易所是怎么交易的在传统中心化交易所中,你以一个价格发出买单,系统会在order book寻找合适的卖单进行撮合成交,如果当前没有合适的对手单,则将新的订单暂存到order book中等待合适的对手单出现。这个order book以中心系统的形式保存了所有买单、买单的信息,如下图所示:Order Book在这种中心化交易平台上,每笔交易的撮合并不需要通过区块链,而是在中心化系统中实现,保证了交易的高并发和低时延,但如果平台上的买卖双方不够活跃,用户发出的买单或者卖单无法快速找到交易对手方进行撮合,就会出现长时间的挂单,交易效率低下,这时就出现了做市商。 做市商是指在传统证券市场上,由具备一定实力和信誉的独立证券经营法人作为特许交易商,不断向公众投资者报出某些特定证券的买卖价格(即双向报价),并在该价位上接受公众投资者的买卖要求,以其自有资金和证券与投资者进行证券交易。买卖双方不需等待交易对手出现,只要有做市商出面承担交易对手方既可达成交易。 做市商通过做市制度来维持市场的流动性,满足公众投资者的投资需求。做市商通过买卖报价的适当差额来补偿所提供服务的成本费用,并实现一定的利润,但是在中心化平台中,买方/卖方并不确定做市商是否真的在区块链上有实际的资产(账户中的余额只是中心化数据库中的一个数字),而且用户的资产都保存在中心化交易所的钱包里,自己没有绝对的控制权,而中心化交易所也没接受任何监管机构的监管,很容易发生监守自盗的事件。 基于以上种种弊端,Uniswap提出了一种通过智能合约实现自动化做市商(Automated Market Maker,AMM)来与用户进行交易的去中心化交易协议,用户资产完全由自己控制,而智能合约中锁定的做市资产也是公开可查,是一种更安全透明的交易方式。 四、Uniswap技术原理由于v1版本主要是概念验证,因此不做过多介绍,主要就v2版本来深度解析一下Uniswap的技术原理,关于v3版本的更新,会再单独解析。 AMM要实现能自动跟买方/卖方完成交易,需要满足几个特性: AMM要持有资产,由于要做双向报价,所以要持有两种资产; AMM资产池要能充值/提现; AMM可以根据市场情况自动调整价格; AMM要能通过交易赚取利润; 接下我们通过核心的几个智能合约来看看Uniswap是怎么实现AMM的这些特性的: UniswapV2ERC20: 由于Uniswap是部署在以太坊上的,而且支持的是同质化代币之间的交易,因此可交易的资产是符合ERC-20标准的Token.我们在开发去中心化应用时,通常是通过智能合约来执行交易,当我们需要从一个用户的地址中转移一部分token到另外一个地址时,需要地址拥有者授权,就像是你用微信发红包,直接关联到银行卡的话,就需要你先授权微信可以从你的银行账户里划款一样,用户要先给银行一个指令,告诉银行可以给微信授权一个额度,然后微信才能去用户在银行的账户中划款,如下图所示: 如果在区块链上实现一个去中心化的微信应用,分别用智能合约来实现微信(DApp)和银行(ERC-20)的功能,那么用户就要发起至少两次链上交易,如下图中红色部分所示,第1步owner授权DApp可以从他的地址提取100个token,第3步DApp智能合约执行交易从ERC-20合约中owner的地址余额提取不多于100个的token,也就是要消耗两次gas手续费,极大地提升了链上交易的成本。 为了降低成本,减少链上交易次数,可以通过链下签名授权的方式来实现第1步的授权,首先owner在链下进行对某个DApp授权操作的签名,一起发给DApp的智能合约,在DApp智能合约中发起的ERC-20的执行交易中,先验证授权签名(permit),然后再调用提取函数(withdraw)进行owner账户下的token提取,这样整个交易流程就只有一个链上交易,只需要消耗1次gas。 作为Uniswap核心合约之一,UniswapV2ERC20合约定义了Uniswap中所有交易资产的标准。 UniswapV2Pair: 有了资产之后就到了最核心的交易部分了,Uniswap提供了一个UniswapV2Pair的智能合约来交易任意两种ERC-20代币,pairs交易对主要提供三个功能: 流动性追踪,追踪交易池中的代币余额,并且提供流动性代币;自动做市,根据特定算法自动计算出来的价格来撮合交易;去中心化预言机,暴露相关数据给外部使用;接下来分别详细介绍一下这几个功能:流动性追踪首先我们也是要先了解几个重要概念: 流动性:指的是pair合约里的两种ERC-20代币的总和,如果同时质押两种代币,则称为增加(提供)流动性 流动性池(Pool):所有流动性汇集成的池子,即AMM的资产池,Uniswap协议通过流动性池提供个人对合约的交易撮合 流动性提供者(Liquidity Provider/LP):向流动性池中提供流动性的人 流动性代币(Pool Token也叫做Liquidity Token):UniswapV2Pair本身也是一种ERC-20合约,它的代币用来代表流动性供给,即为流动性代币,在LP提供流动性时自动增发(mint)代币给LP,提取流动性时燃烧(burn)LP的代币 流动性池份额(Liquidity Pool Share/LPS):计算出来代表所占有的流通的流动型代币的份额值,用来记录每个LP的流动性贡献比例 在初始化一个pair合约之后,其中两种代币的初始值都是0,为了使流动性池可以开始促成交易,必须有流动性提供者(LP)质押一定量的两种代币来启动流动性池,第一个LP就是设定这个流动性池初始价格的人,并且获得流动性池份额(LPS)。流动性池中两种代币的相对价格是通过池子中两种代币的数量比来决定的,直观的理解就是两种代币的总价值是相同的,每次交易完之后由于两种代币的数量会发生变化,相对价格也会变化,价格的调整遵循如下公式:x和y代表两种代币的数量,具体在交易中这个公式发挥的作用会在后文详细介绍。如果第一个LP初始化质押的两种代币量分别为x_0和y_0,则获得的流动性池份额(Liquidity Pool Share/LPS)为s_0: 使用几何平均数计算的好处是可以使LPS在任何时候都不受质押的两种代币的比例影响,因为两种代币在流动性池中的比例可能与市场价格不符。如下图所示,假设初始质押量为x_0 = 100,000,y_0 = 1,000,则s_0 = 10,000,在LP质押完X和Y代币之后会收到10,000LPS,此时s_current也同样是10,000,相当于第一个LP持有100%的LPS(除去锁定到零地址的LPS),Liquidity Pool中当前Y相对于X的价格为 1 Y = 100000 / 1000 X = 100 X,例如X是USDT,Y是ETH的话,那么 1 ETH = 100 USDT。*:Output数据在第一次质押中实际会做一些调整,这部分的介绍在Uniswap白皮书中比较简略,但其实蕴含的内容和机制还是较多较复杂,接下来深入挖掘一下。 按照LPS初始值的计算公式,一个LPS的价值不会低于Pair中两种质押代币的几何平均数,而且随着交易手续费的积累或者“捐赠”会使LPS的价值升高,因为交易手续费在流动性池中积累,针对这部分手续费并不会产生新的LPS,效果就是池子变大了,但是LPS总量没变,两者的比值即LPS的价值就升高了。 Pair智能合约对应的LPS是有18位小数的(以太坊中最大的小数位数),理论上有一种情况是LPS的最小量(即1e-18 LPS)价值非常大,导致后续小流动性提供者很难再提供流动性了,因为提供流动性的成本太高了,例如1e-18 LPS = $100的话,因为这个是最小单位了,所以要增加流动性就至少质押$100美金才能获得LPS,而且随着LPS增值,流动性成本越来越高,不利于维持交易的流动性。在Uniswap白皮书中把这种极端情况认为是一种可能的人为攻击,为了提高这种攻击的成本,在新创建流动性池的时候,设置了一个最小流动性值MINIMUM_LIQUIDITY=1e-15,即LPS最小单位的1000倍,任何流动性池在启用之初都要在零地址中锁定1e-15的LPS,所以上面流动性池初始化的图修订后为: 在这种机制之下,如果人为把LPS价值提升到1e-18 = $100的话,就需要在零地址中锁定价值 $100 * 1e3 = $100000 的LPS,这样就极大地提升了攻击成本,而且在通常情况下,1e-15的LPS的价值是很小的,甚至可以忽略,所以修订图中第一次质押后获得的LPS虽然要减少1e-15LPS,但约等于10000不变。当然也会有极端情况,例如Pair中质押的两种代币都没有小数,而且单价很高,那么1e-15LPS的价值还是可以感知到的,不过这种类型的代币也不太适合用Uniswap协议来交易。接下来如果有LP继续添加流动性,则按新增的流动性等比例增发LPS,假设当前Pool中X的量为x_current,Y的量为y_current,存量LPS为s_current,新增加的流动性中的X为x_add,Y为y_add(通常情况下x_current/y_current = x_add/y_add,即等比例增加流动性),则新增发的LPS为s_add:如下图所示,增加2000 X和20 Y之后,获取200 LPS,此时LPS都在各个LP自己的地址里,他们可以自由转账,流动性池里只是记录了目前LPS总量的值。通常情况下,LP会按照目前流动性池里的X和Y的比例来增加流动性,获取LPS,Uniswap也提供了周边辅助性智能合约来完成增加流动性的操作,如果新质押的X和Y比例与流动性池中不一样,会按照少的代币量等比例质押,另一种多出来的不会去质押,避免损失,如果是直接去操作Pair合约,需要自己校验,否则还是按少的代币量计算LPS,但另一种多出来的就不会返还了,当是捐赠了。 如果是减少流动性,例如减少LPS为s_remove,存量X为x_current,Y为y_current,LPS为s_current,则LP可以提出去的两种代币量分别为x_withdraw和y_withdraw: 整个流动性相关还会涉及到协议手续费的问题,默认是不收取的,此处暂不讨论。 自动做市Uniswap的流动性池是通过一个恒定乘积公式来计算价格的,以x和y来代表流动性池中两种ERC-20代币(假设为X和Y)的数量,则: 如果我们想要用X从流动性池中交换Y,假设输入X的量为deltaX,交易换回的Y为deltaY,在交易池中的资产足够的前期下,满足: 也就是说交易前后,流动性池中两种代币的乘积是恒定不变的,基于此,如果交易的量相对于流动池中的量很小的话,那么交易价格就近似为当前两种代币的比: 在实际交易过程中,还会有0.3%的交易手续费,扣除方式是先扣掉手续费,再利用乘积公式进行计算,由于最终兑换出来的交易数量是跟交易量有关的,因此实际交易价格并不等于当前两种代币的比例,而且同一个区块里可能会有多笔交易,同一区块里前面的交易对后续的交易也都会有一定的影响,我们来看一下单笔交易的过程: 如上图所示,原流动性池中两种代币余额为100 X和1 Y,可认为Y相对X的价格为1 Y = 100 X,此时要通过流动性池交易20个X,如果按照当前价格全量交易的话,应该换回 20 / 100 = 0.2 个Y,再减去0.3%的手续费,最后返回0.1994个Y,但实际返回了0.1658个Y,我们来逐步分析一下: 输入20个X,先扣除0.3%的手续费,即实际交易量为19.94个X; 按照x*y=k(k=1*100=100)的公式进行计算: 3. Uniswap pair会给交易者地址返回0.1658个Y,此交易平均交易价格为 1 Y = 20 / 0.1658 X = 120.6273 X,比交易开始时的100要高20%多,主要是因为交易量20个X相对于流动性池的比例较大(20%),相当于大额交易,对价格会产生较大影响,直观的感觉就是市场上有人大量买入Y,从而导致Y的价格上涨,此笔交易之后,交易池中Y相对于X的价格变为了143.8504; 4. 更新流动性池中的余额,虽然交易的时候扣掉了0.3%的手续费,但实际上这个手续费依然会放到流动性池中,作为流动性提供者的收益,因此X更新后的余额还是100 + 20 = 120,Y的余额是1 - 0.1658 = 0.8342,Liquidity Shares的值不变。随着交易手续费的积累,整个流动性池的总价值在上涨,LPS的总量不变,则LPS的单位价值上涨。 以上基本介绍了Uniswap协议中的最核心设计原理,涉及到了流动性池和AMM机制等,除了基础核心部分,Uniswap还提供了一些高级功能,同时也带来了一些很有挑战性的问题,包括上文提到的手续费的收取、滑点损失、无偿损失等LP收益相关问题等等,都是很值得深入挖掘和探讨的。编辑于 2022-01-20 10:22去中心化金融(DeFi)Uniswap赞同 16216 条评论分享喜欢收藏申请转载文章被以下专栏收录区块随笔区块链技术领域的一些知
小白课堂 | 一文读懂Uniswap,附Uniswap使用教程 - 知乎首发于数字货币切换模式写文章登录/注册小白课堂 | 一文读懂Uniswap,附Uniswap使用教程书匠火火玄学一、加密货币交易形式 当我们要进行加密货币交易时,使用最早也是目前使用最多的形式还是中心化交易所,在中心化交易所,我们首先需要注册,然后加密货币也需要存入到交易所,由交易所进行托管,如果要提现加密货币出来,也需要经过交易所审核同意。虽然中心化交易所有诸多优势,例如交易速度较快、用户不需要管理私钥,降低了用户的使用门槛,但是它的弊端也是显而易见的,用户的加密货币由交易所托管,交易所是有跑路风险的。也确实发生过多起交易所跑路的事件,几乎每年都有发生。那么,有没有更好的加密货币交易形式呢? 随着区块链技术的不断发展,加密货币交易形式也变得越来越多样化,我们不但可以使用中心化交易所进行交易,也可以使用去中心化交易所进行交易。在去中心化交易所进行交易时,不需要注册,只需要使用数字钱包连接去中心化交易所就可以进行加密货币的交易了,交易完成后,相应的加密货币会自动转入到用户的数字钱包中,用户的资产始终在自己的钱包中,并非像中心化交易所那样托管在交易所,所以,在去中心化交易所进行交易,安全性大大提高了。 目前,去中心化交易所主要有两种形式,一种是交易所撮合买方用户和卖方用户的订单,只不过操作过程发生在链上,典型代表有 EOS 去中心化交易所 Newdex,Newdex 依旧承担了中心化交易所的订单撮合模式。在 Newdex 交易,用户无需注册、资产无需托管,撮合发生在 EOS 链上,数据公开透明。 去中心化交易所的另一种形式是基于兑换池,而非基于买方和卖方订单所构成的订单簿,它类似于人机交易,采取的是柜台模式,就像我们去银行兑换不同国家的法币。典型的代表是 Uniswap。二、Uniswap 是什么Uniswap 是基于以太坊的代币交换协议,是基于兑换池,而不是订单簿的去中心化交易协议。而所谓的兑换池,指的则是一个资金池,用户在 Uniswap 中交易的价格则由这个资金池中的代币比例和算法来决定。Uniswap 是去中心化的,不仅跟传统的加密货币交易所不同,也跟普通的去中心化代币交易所不同。Uniswap 是一组部署到以太坊网络的合约,所有的交易都在链上进行。Uniswap 的交易对手并不是其他交易用户,而是跟代币池进行交易,且有自动做市的模型来计算交易价格,代币兑换价格与代币兑换池中代币的比例有关。三、Uniswap 的功能和优势 在 Uniswap 中,使用最多的功能就是代币之间的币币兑换交易了,由于 Uniswap 是基于以太坊的,所以在 Uniswap 中只能交易以太坊上的加密货币资产。目前 Uniswap 支持的币种大概在150种左右,以太坊上的主流资产基本上都可以在上面进行交易了。当然了,用户也可以自行添加交易对,也就是做市商,这样可以赚取一定的手续费。 使用 Uniswap 这种交易形式,比订单撮合模式速度更快,因为它是基于兑换池的人机交易,节省了撮合时间。而且 Uniswap 支持的币种间可以实现两两兑换交易,交易对明显比中心化交易所更丰富。 例如: LRC 和 KNC 之间的交易,在 Uniswap 是可以一步完成交易(虽然系统可能需要转换,但在用户看来就是一步交易)的。而在中心化交易所,LRC 和 KNC 没有直接的交易对,用户最少需要两次交易,即把 LRC 兑换成 ETH ,再用 ETH 和 KNC 交易。很显然,对于用户来说,Uniswap 更便捷。四、如何使用 Uniswap 进行币币兑换交易 我们可以通过多链钱包 TokenPocket 来连接 Uniswap 进行交易。在 TP 钱包的发现界面的 DeFi 区,找到 Uniswap 并点击进入。1、兑换我们可以选择 V2 版本。在兑换界面中,输入表示的是拿来用于兑换的币种,而输出表示的是兑换后的币种。例如:拿 LRC 兑换 KNC,输入部分要选择 LRC,而输出部分要选择 KNC。在选择好输入输出币种后,输入输填写数量,即用于兑换 KNC 的 LRC 数量,可以收到的 KNC 数量就会根据 LRC/KNC 当前的汇率自动计算出来并填充。输入完成后,点击"授权 LRC"按钮,然后点击右侧的"兑换"就可以完成 LRC 和 KNC 之间的兑换了。2、发送 在 Uniswap 的发送界面中,主要有两个功能。一个是转账功能。选择要转出的币种,输入转账数量以及接收地址,然后点击"send"就可以转账了,这和一般的钱包转账也没什么区别。另外一个功能是"兑换+转账",挺有意思的一个功能。 例如我们要把 LRC 兑换为 KNC,并转账到另外一个 ETH 地址中,就可以使用该功能,还是挺方便的。首先,在发送界面中点击"添加兑换"按钮。 然后选择兑换的两个币种和用于兑换 KNC 的 LRC 数量,并输入接收地址。最后,点击"授权LRC"按钮后,点击 "Send"按钮就可以完成代币的兑换以及转账了。3、资金池 在 Uniswap 中,除了可以用于代币兑换之外,还可以加入 Uniswap 的资金池,通过为 Uniswap 提供流动性而赚取收益。首先在"资金池"界面中点击"加入一个资金池"按钮,然后选择一个流动性池,例如选择 ETH/USDT,在选择了流动性池后,输入要存入资金池的币种数量。注意,交易对是成比例存入资金池的,例如上例中,如果存入 0.091216 ETH 到资金池,那么USDT就要存入21.751个。 输入完成后,点击下面的"授权 USDT",然后点击"供应"就可以加入资金池了。总之,通过 Uniswap 进行以太坊上数字资产之间的交易,还是非常方便的,不需要注册,也不需要托管在交易所,通过钱包连接到 Uniswap 就可以进行交易了,交易完成后,相应的数字资产也会自动转入到用户的 ETH 钱包中,而且在兑换时还可以选择转到其他地址中。如果要使用 Uniswap 进行交易,可以到多链钱包 TokenPocket 中体验和使用。源自公众号:库尔班区块链发布于 2020-12-15 18:58Uniswap去中心化交易所(DEX)赞同 8332 条评论分享喜欢收藏申请转载文章被以下专栏收录数字货币在这里,读懂
Uniswap深度科普 - 知乎首发于区块随笔切换模式写文章登录/注册Uniswap深度科普JasonW喜欢思考,博而不专的铲屎官一、Uniswap是什么首先要搞清楚一下相关的名词都是什么意思: Uniswap Labs:负责开发Uniswap协议、网络接口的公司。 The Uniswap Protocol:一个实现自动化做市商的智能合约全家桶,促进点对点做市和以太坊上ERC-20 token的交易的协议(即Uniswap核心技术,后续工作原理介绍也都是针对协议内容的解释)。 The Uniswap Interface:为了方便使用Uniswap protocol而开发的网络接口,是与Uniswap protocol交互的众多方式之一(也可以直接与智能合约交互)。 Uniswap Governance:一个Uniswap Protocol的民主治理系统(社区式治理方式,论坛模式)。 按官网上的介绍,Uniswap协议是一个用来在以太坊区块链上交易加密货币(ERC-20代币)的点对合约系统。这个协议通过一个持久化、不可更改的智能合约集合来实现,旨在优先考虑抗审查性、安全性、自我监管,以及在没有任何可能有选择地限制访问的可信中介的情况下运行。简单点说就是通过智能合约实现了一个去中心化的ERC-20代币的自动交易系统。 二、Uniswap的发展历程Uniswap诞生至今也不过两年多的时间,但是却创造了很多令人惊叹的记录: 2018年11月2日,Uniswap公开宣布上线并部署到以太坊主网,推出第一个版本Uniswap v1,但这个v1版本只能算是一个新型去中心化交易方式的概念验证,可实用性并不强。 2020年1月31日,经过1年多的沉淀,Uniswap锁仓金额突破5000万美元,成为DeFi龙头。 2020年5月19日,Uniswap v2版本上线,增加了自由组合交易对、价格预言机、闪贷、最优化交易路径等功能,对v1版本进行了全面的技术升级。 2020年7月27日,Uniswap 24小时交易额突破1亿美元,DeFi在2020年迎来爆发式增长。 2020年8月7日,Uniswap官方宣布已完成1100万美元的A轮融资,由Andreessen Horowitz领投。 2020年8月31日,Uniswap锁仓金额突破10亿美元。 2020年9月1日,Uniswap总交易量超过100亿美元。 2020年9月3日,Uniswap锁仓金额突破20亿美元,距离10亿美元仅仅过了3天,可见市场之火爆。 2020年9月17日,Uniswap宣布其协议治理代币UNI已在以太坊主网上发布,针对每一个之前使用过Uniswap protocol的区块链地址空投400个UNI,UNI的持有者有对平台新的发展及改变的提议的投票权。 2021年5月5日,Uniswap v3版本上线,提供了集中流动性、多重收费层次、高级价格预言机、流动性预言机等技术升级,核心是提升资本效率,具体实现可关注另一篇文章Uniswap v3 设计详解。有一点需要注意的是v1和v2版本都遵循的是GPL开源协议,但是v3使用的是Business Source License 1.1(有效时限GPL-2.0或更高版本的许可证)。该许可证将v3源代码在商业环境或生产环境中的使用期限限制为两年,届时它将永久转换为GPL许可证。 三、Uniswap中的自动化做市商(Automated Market Maker,AMM)在开始介绍Uniswap之前,先来说说中心化的交易所是怎么交易的在传统中心化交易所中,你以一个价格发出买单,系统会在order book寻找合适的卖单进行撮合成交,如果当前没有合适的对手单,则将新的订单暂存到order book中等待合适的对手单出现。这个order book以中心系统的形式保存了所有买单、买单的信息,如下图所示:Order Book在这种中心化交易平台上,每笔交易的撮合并不需要通过区块链,而是在中心化系统中实现,保证了交易的高并发和低时延,但如果平台上的买卖双方不够活跃,用户发出的买单或者卖单无法快速找到交易对手方进行撮合,就会出现长时间的挂单,交易效率低下,这时就出现了做市商。 做市商是指在传统证券市场上,由具备一定实力和信誉的独立证券经营法人作为特许交易商,不断向公众投资者报出某些特定证券的买卖价格(即双向报价),并在该价位上接受公众投资者的买卖要求,以其自有资金和证券与投资者进行证券交易。买卖双方不需等待交易对手出现,只要有做市商出面承担交易对手方既可达成交易。 做市商通过做市制度来维持市场的流动性,满足公众投资者的投资需求。做市商通过买卖报价的适当差额来补偿所提供服务的成本费用,并实现一定的利润,但是在中心化平台中,买方/卖方并不确定做市商是否真的在区块链上有实际的资产(账户中的余额只是中心化数据库中的一个数字),而且用户的资产都保存在中心化交易所的钱包里,自己没有绝对的控制权,而中心化交易所也没接受任何监管机构的监管,很容易发生监守自盗的事件。 基于以上种种弊端,Uniswap提出了一种通过智能合约实现自动化做市商(Automated Market Maker,AMM)来与用户进行交易的去中心化交易协议,用户资产完全由自己控制,而智能合约中锁定的做市资产也是公开可查,是一种更安全透明的交易方式。 四、Uniswap技术原理由于v1版本主要是概念验证,因此不做过多介绍,主要就v2版本来深度解析一下Uniswap的技术原理,关于v3版本的更新,会再单独解析。 AMM要实现能自动跟买方/卖方完成交易,需要满足几个特性: AMM要持有资产,由于要做双向报价,所以要持有两种资产; AMM资产池要能充值/提现; AMM可以根据市场情况自动调整价格; AMM要能通过交易赚取利润; 接下我们通过核心的几个智能合约来看看Uniswap是怎么实现AMM的这些特性的: UniswapV2ERC20: 由于Uniswap是部署在以太坊上的,而且支持的是同质化代币之间的交易,因此可交易的资产是符合ERC-20标准的Token.我们在开发去中心化应用时,通常是通过智能合约来执行交易,当我们需要从一个用户的地址中转移一部分token到另外一个地址时,需要地址拥有者授权,就像是你用微信发红包,直接关联到银行卡的话,就需要你先授权微信可以从你的银行账户里划款一样,用户要先给银行一个指令,告诉银行可以给微信授权一个额度,然后微信才能去用户在银行的账户中划款,如下图所示: 如果在区块链上实现一个去中心化的微信应用,分别用智能合约来实现微信(DApp)和银行(ERC-20)的功能,那么用户就要发起至少两次链上交易,如下图中红色部分所示,第1步owner授权DApp可以从他的地址提取100个token,第3步DApp智能合约执行交易从ERC-20合约中owner的地址余额提取不多于100个的token,也就是要消耗两次gas手续费,极大地提升了链上交易的成本。 为了降低成本,减少链上交易次数,可以通过链下签名授权的方式来实现第1步的授权,首先owner在链下进行对某个DApp授权操作的签名,一起发给DApp的智能合约,在DApp智能合约中发起的ERC-20的执行交易中,先验证授权签名(permit),然后再调用提取函数(withdraw)进行owner账户下的token提取,这样整个交易流程就只有一个链上交易,只需要消耗1次gas。 作为Uniswap核心合约之一,UniswapV2ERC20合约定义了Uniswap中所有交易资产的标准。 UniswapV2Pair: 有了资产之后就到了最核心的交易部分了,Uniswap提供了一个UniswapV2Pair的智能合约来交易任意两种ERC-20代币,pairs交易对主要提供三个功能: 流动性追踪,追踪交易池中的代币余额,并且提供流动性代币;自动做市,根据特定算法自动计算出来的价格来撮合交易;去中心化预言机,暴露相关数据给外部使用;接下来分别详细介绍一下这几个功能:流动性追踪首先我们也是要先了解几个重要概念: 流动性:指的是pair合约里的两种ERC-20代币的总和,如果同时质押两种代币,则称为增加(提供)流动性 流动性池(Pool):所有流动性汇集成的池子,即AMM的资产池,Uniswap协议通过流动性池提供个人对合约的交易撮合 流动性提供者(Liquidity Provider/LP):向流动性池中提供流动性的人 流动性代币(Pool Token也叫做Liquidity Token):UniswapV2Pair本身也是一种ERC-20合约,它的代币用来代表流动性供给,即为流动性代币,在LP提供流动性时自动增发(mint)代币给LP,提取流动性时燃烧(burn)LP的代币 流动性池份额(Liquidity Pool Share/LPS):计算出来代表所占有的流通的流动型代币的份额值,用来记录每个LP的流动性贡献比例 在初始化一个pair合约之后,其中两种代币的初始值都是0,为了使流动性池可以开始促成交易,必须有流动性提供者(LP)质押一定量的两种代币来启动流动性池,第一个LP就是设定这个流动性池初始价格的人,并且获得流动性池份额(LPS)。流动性池中两种代币的相对价格是通过池子中两种代币的数量比来决定的,直观的理解就是两种代币的总价值是相同的,每次交易完之后由于两种代币的数量会发生变化,相对价格也会变化,价格的调整遵循如下公式:x和y代表两种代币的数量,具体在交易中这个公式发挥的作用会在后文详细介绍。如果第一个LP初始化质押的两种代币量分别为x_0和y_0,则获得的流动性池份额(Liquidity Pool Share/LPS)为s_0: 使用几何平均数计算的好处是可以使LPS在任何时候都不受质押的两种代币的比例影响,因为两种代币在流动性池中的比例可能与市场价格不符。如下图所示,假设初始质押量为x_0 = 100,000,y_0 = 1,000,则s_0 = 10,000,在LP质押完X和Y代币之后会收到10,000LPS,此时s_current也同样是10,000,相当于第一个LP持有100%的LPS(除去锁定到零地址的LPS),Liquidity Pool中当前Y相对于X的价格为 1 Y = 100000 / 1000 X = 100 X,例如X是USDT,Y是ETH的话,那么 1 ETH = 100 USDT。*:Output数据在第一次质押中实际会做一些调整,这部分的介绍在Uniswap白皮书中比较简略,但其实蕴含的内容和机制还是较多较复杂,接下来深入挖掘一下。 按照LPS初始值的计算公式,一个LPS的价值不会低于Pair中两种质押代币的几何平均数,而且随着交易手续费的积累或者“捐赠”会使LPS的价值升高,因为交易手续费在流动性池中积累,针对这部分手续费并不会产生新的LPS,效果就是池子变大了,但是LPS总量没变,两者的比值即LPS的价值就升高了。 Pair智能合约对应的LPS是有18位小数的(以太坊中最大的小数位数),理论上有一种情况是LPS的最小量(即1e-18 LPS)价值非常大,导致后续小流动性提供者很难再提供流动性了,因为提供流动性的成本太高了,例如1e-18 LPS = $100的话,因为这个是最小单位了,所以要增加流动性就至少质押$100美金才能获得LPS,而且随着LPS增值,流动性成本越来越高,不利于维持交易的流动性。在Uniswap白皮书中把这种极端情况认为是一种可能的人为攻击,为了提高这种攻击的成本,在新创建流动性池的时候,设置了一个最小流动性值MINIMUM_LIQUIDITY=1e-15,即LPS最小单位的1000倍,任何流动性池在启用之初都要在零地址中锁定1e-15的LPS,所以上面流动性池初始化的图修订后为: 在这种机制之下,如果人为把LPS价值提升到1e-18 = $100的话,就需要在零地址中锁定价值 $100 * 1e3 = $100000 的LPS,这样就极大地提升了攻击成本,而且在通常情况下,1e-15的LPS的价值是很小的,甚至可以忽略,所以修订图中第一次质押后获得的LPS虽然要减少1e-15LPS,但约等于10000不变。当然也会有极端情况,例如Pair中质押的两种代币都没有小数,而且单价很高,那么1e-15LPS的价值还是可以感知到的,不过这种类型的代币也不太适合用Uniswap协议来交易。接下来如果有LP继续添加流动性,则按新增的流动性等比例增发LPS,假设当前Pool中X的量为x_current,Y的量为y_current,存量LPS为s_current,新增加的流动性中的X为x_add,Y为y_add(通常情况下x_current/y_current = x_add/y_add,即等比例增加流动性),则新增发的LPS为s_add:如下图所示,增加2000 X和20 Y之后,获取200 LPS,此时LPS都在各个LP自己的地址里,他们可以自由转账,流动性池里只是记录了目前LPS总量的值。通常情况下,LP会按照目前流动性池里的X和Y的比例来增加流动性,获取LPS,Uniswap也提供了周边辅助性智能合约来完成增加流动性的操作,如果新质押的X和Y比例与流动性池中不一样,会按照少的代币量等比例质押,另一种多出来的不会去质押,避免损失,如果是直接去操作Pair合约,需要自己校验,否则还是按少的代币量计算LPS,但另一种多出来的就不会返还了,当是捐赠了。 如果是减少流动性,例如减少LPS为s_remove,存量X为x_current,Y为y_current,LPS为s_current,则LP可以提出去的两种代币量分别为x_withdraw和y_withdraw: 整个流动性相关还会涉及到协议手续费的问题,默认是不收取的,此处暂不讨论。 自动做市Uniswap的流动性池是通过一个恒定乘积公式来计算价格的,以x和y来代表流动性池中两种ERC-20代币(假设为X和Y)的数量,则: 如果我们想要用X从流动性池中交换Y,假设输入X的量为deltaX,交易换回的Y为deltaY,在交易池中的资产足够的前期下,满足: 也就是说交易前后,流动性池中两种代币的乘积是恒定不变的,基于此,如果交易的量相对于流动池中的量很小的话,那么交易价格就近似为当前两种代币的比: 在实际交易过程中,还会有0.3%的交易手续费,扣除方式是先扣掉手续费,再利用乘积公式进行计算,由于最终兑换出来的交易数量是跟交易量有关的,因此实际交易价格并不等于当前两种代币的比例,而且同一个区块里可能会有多笔交易,同一区块里前面的交易对后续的交易也都会有一定的影响,我们来看一下单笔交易的过程: 如上图所示,原流动性池中两种代币余额为100 X和1 Y,可认为Y相对X的价格为1 Y = 100 X,此时要通过流动性池交易20个X,如果按照当前价格全量交易的话,应该换回 20 / 100 = 0.2 个Y,再减去0.3%的手续费,最后返回0.1994个Y,但实际返回了0.1658个Y,我们来逐步分析一下: 输入20个X,先扣除0.3%的手续费,即实际交易量为19.94个X; 按照x*y=k(k=1*100=100)的公式进行计算: 3. Uniswap pair会给交易者地址返回0.1658个Y,此交易平均交易价格为 1 Y = 20 / 0.1658 X = 120.6273 X,比交易开始时的100要高20%多,主要是因为交易量20个X相对于流动性池的比例较大(20%),相当于大额交易,对价格会产生较大影响,直观的感觉就是市场上有人大量买入Y,从而导致Y的价格上涨,此笔交易之后,交易池中Y相对于X的价格变为了143.8504; 4. 更新流动性池中的余额,虽然交易的时候扣掉了0.3%的手续费,但实际上这个手续费依然会放到流动性池中,作为流动性提供者的收益,因此X更新后的余额还是100 + 20 = 120,Y的余额是1 - 0.1658 = 0.8342,Liquidity Shares的值不变。随着交易手续费的积累,整个流动性池的总价值在上涨,LPS的总量不变,则LPS的单位价值上涨。 以上基本介绍了Uniswap协议中的最核心设计原理,涉及到了流动性池和AMM机制等,除了基础核心部分,Uniswap还提供了一些高级功能,同时也带来了一些很有挑战性的问题,包括上文提到的手续费的收取、滑点损失、无偿损失等LP收益相关问题等等,都是很值得深入挖掘和探讨的。编辑于 2022-01-20 10:22去中心化金融(DeFi)Uniswap赞同 16216 条评论分享喜欢收藏申请转载文章被以下专栏收录区块随笔区块链技术领域的一些知
Uniswap深度科普 - 知乎首发于区块随笔切换模式写文章登录/注册Uniswap深度科普JasonW喜欢思考,博而不专的铲屎官一、Uniswap是什么首先要搞清楚一下相关的名词都是什么意思: Uniswap Labs:负责开发Uniswap协议、网络接口的公司。 The Uniswap Protocol:一个实现自动化做市商的智能合约全家桶,促进点对点做市和以太坊上ERC-20 token的交易的协议(即Uniswap核心技术,后续工作原理介绍也都是针对协议内容的解释)。 The Uniswap Interface:为了方便使用Uniswap protocol而开发的网络接口,是与Uniswap protocol交互的众多方式之一(也可以直接与智能合约交互)。 Uniswap Governance:一个Uniswap Protocol的民主治理系统(社区式治理方式,论坛模式)。 按官网上的介绍,Uniswap协议是一个用来在以太坊区块链上交易加密货币(ERC-20代币)的点对合约系统。这个协议通过一个持久化、不可更改的智能合约集合来实现,旨在优先考虑抗审查性、安全性、自我监管,以及在没有任何可能有选择地限制访问的可信中介的情况下运行。简单点说就是通过智能合约实现了一个去中心化的ERC-20代币的自动交易系统。 二、Uniswap的发展历程Uniswap诞生至今也不过两年多的时间,但是却创造了很多令人惊叹的记录: 2018年11月2日,Uniswap公开宣布上线并部署到以太坊主网,推出第一个版本Uniswap v1,但这个v1版本只能算是一个新型去中心化交易方式的概念验证,可实用性并不强。 2020年1月31日,经过1年多的沉淀,Uniswap锁仓金额突破5000万美元,成为DeFi龙头。 2020年5月19日,Uniswap v2版本上线,增加了自由组合交易对、价格预言机、闪贷、最优化交易路径等功能,对v1版本进行了全面的技术升级。 2020年7月27日,Uniswap 24小时交易额突破1亿美元,DeFi在2020年迎来爆发式增长。 2020年8月7日,Uniswap官方宣布已完成1100万美元的A轮融资,由Andreessen Horowitz领投。 2020年8月31日,Uniswap锁仓金额突破10亿美元。 2020年9月1日,Uniswap总交易量超过100亿美元。 2020年9月3日,Uniswap锁仓金额突破20亿美元,距离10亿美元仅仅过了3天,可见市场之火爆。 2020年9月17日,Uniswap宣布其协议治理代币UNI已在以太坊主网上发布,针对每一个之前使用过Uniswap protocol的区块链地址空投400个UNI,UNI的持有者有对平台新的发展及改变的提议的投票权。 2021年5月5日,Uniswap v3版本上线,提供了集中流动性、多重收费层次、高级价格预言机、流动性预言机等技术升级,核心是提升资本效率,具体实现可关注另一篇文章Uniswap v3 设计详解。有一点需要注意的是v1和v2版本都遵循的是GPL开源协议,但是v3使用的是Business Source License 1.1(有效时限GPL-2.0或更高版本的许可证)。该许可证将v3源代码在商业环境或生产环境中的使用期限限制为两年,届时它将永久转换为GPL许可证。 三、Uniswap中的自动化做市商(Automated Market Maker,AMM)在开始介绍Uniswap之前,先来说说中心化的交易所是怎么交易的在传统中心化交易所中,你以一个价格发出买单,系统会在order book寻找合适的卖单进行撮合成交,如果当前没有合适的对手单,则将新的订单暂存到order book中等待合适的对手单出现。这个order book以中心系统的形式保存了所有买单、买单的信息,如下图所示:Order Book在这种中心化交易平台上,每笔交易的撮合并不需要通过区块链,而是在中心化系统中实现,保证了交易的高并发和低时延,但如果平台上的买卖双方不够活跃,用户发出的买单或者卖单无法快速找到交易对手方进行撮合,就会出现长时间的挂单,交易效率低下,这时就出现了做市商。 做市商是指在传统证券市场上,由具备一定实力和信誉的独立证券经营法人作为特许交易商,不断向公众投资者报出某些特定证券的买卖价格(即双向报价),并在该价位上接受公众投资者的买卖要求,以其自有资金和证券与投资者进行证券交易。买卖双方不需等待交易对手出现,只要有做市商出面承担交易对手方既可达成交易。 做市商通过做市制度来维持市场的流动性,满足公众投资者的投资需求。做市商通过买卖报价的适当差额来补偿所提供服务的成本费用,并实现一定的利润,但是在中心化平台中,买方/卖方并不确定做市商是否真的在区块链上有实际的资产(账户中的余额只是中心化数据库中的一个数字),而且用户的资产都保存在中心化交易所的钱包里,自己没有绝对的控制权,而中心化交易所也没接受任何监管机构的监管,很容易发生监守自盗的事件。 基于以上种种弊端,Uniswap提出了一种通过智能合约实现自动化做市商(Automated Market Maker,AMM)来与用户进行交易的去中心化交易协议,用户资产完全由自己控制,而智能合约中锁定的做市资产也是公开可查,是一种更安全透明的交易方式。 四、Uniswap技术原理由于v1版本主要是概念验证,因此不做过多介绍,主要就v2版本来深度解析一下Uniswap的技术原理,关于v3版本的更新,会再单独解析。 AMM要实现能自动跟买方/卖方完成交易,需要满足几个特性: AMM要持有资产,由于要做双向报价,所以要持有两种资产; AMM资产池要能充值/提现; AMM可以根据市场情况自动调整价格; AMM要能通过交易赚取利润; 接下我们通过核心的几个智能合约来看看Uniswap是怎么实现AMM的这些特性的: UniswapV2ERC20: 由于Uniswap是部署在以太坊上的,而且支持的是同质化代币之间的交易,因此可交易的资产是符合ERC-20标准的Token.我们在开发去中心化应用时,通常是通过智能合约来执行交易,当我们需要从一个用户的地址中转移一部分token到另外一个地址时,需要地址拥有者授权,就像是你用微信发红包,直接关联到银行卡的话,就需要你先授权微信可以从你的银行账户里划款一样,用户要先给银行一个指令,告诉银行可以给微信授权一个额度,然后微信才能去用户在银行的账户中划款,如下图所示: 如果在区块链上实现一个去中心化的微信应用,分别用智能合约来实现微信(DApp)和银行(ERC-20)的功能,那么用户就要发起至少两次链上交易,如下图中红色部分所示,第1步owner授权DApp可以从他的地址提取100个token,第3步DApp智能合约执行交易从ERC-20合约中owner的地址余额提取不多于100个的token,也就是要消耗两次gas手续费,极大地提升了链上交易的成本。 为了降低成本,减少链上交易次数,可以通过链下签名授权的方式来实现第1步的授权,首先owner在链下进行对某个DApp授权操作的签名,一起发给DApp的智能合约,在DApp智能合约中发起的ERC-20的执行交易中,先验证授权签名(permit),然后再调用提取函数(withdraw)进行owner账户下的token提取,这样整个交易流程就只有一个链上交易,只需要消耗1次gas。 作为Uniswap核心合约之一,UniswapV2ERC20合约定义了Uniswap中所有交易资产的标准。 UniswapV2Pair: 有了资产之后就到了最核心的交易部分了,Uniswap提供了一个UniswapV2Pair的智能合约来交易任意两种ERC-20代币,pairs交易对主要提供三个功能: 流动性追踪,追踪交易池中的代币余额,并且提供流动性代币;自动做市,根据特定算法自动计算出来的价格来撮合交易;去中心化预言机,暴露相关数据给外部使用;接下来分别详细介绍一下这几个功能:流动性追踪首先我们也是要先了解几个重要概念: 流动性:指的是pair合约里的两种ERC-20代币的总和,如果同时质押两种代币,则称为增加(提供)流动性 流动性池(Pool):所有流动性汇集成的池子,即AMM的资产池,Uniswap协议通过流动性池提供个人对合约的交易撮合 流动性提供者(Liquidity Provider/LP):向流动性池中提供流动性的人 流动性代币(Pool Token也叫做Liquidity Token):UniswapV2Pair本身也是一种ERC-20合约,它的代币用来代表流动性供给,即为流动性代币,在LP提供流动性时自动增发(mint)代币给LP,提取流动性时燃烧(burn)LP的代币 流动性池份额(Liquidity Pool Share/LPS):计算出来代表所占有的流通的流动型代币的份额值,用来记录每个LP的流动性贡献比例 在初始化一个pair合约之后,其中两种代币的初始值都是0,为了使流动性池可以开始促成交易,必须有流动性提供者(LP)质押一定量的两种代币来启动流动性池,第一个LP就是设定这个流动性池初始价格的人,并且获得流动性池份额(LPS)。流动性池中两种代币的相对价格是通过池子中两种代币的数量比来决定的,直观的理解就是两种代币的总价值是相同的,每次交易完之后由于两种代币的数量会发生变化,相对价格也会变化,价格的调整遵循如下公式:x和y代表两种代币的数量,具体在交易中这个公式发挥的作用会在后文详细介绍。如果第一个LP初始化质押的两种代币量分别为x_0和y_0,则获得的流动性池份额(Liquidity Pool Share/LPS)为s_0: 使用几何平均数计算的好处是可以使LPS在任何时候都不受质押的两种代币的比例影响,因为两种代币在流动性池中的比例可能与市场价格不符。如下图所示,假设初始质押量为x_0 = 100,000,y_0 = 1,000,则s_0 = 10,000,在LP质押完X和Y代币之后会收到10,000LPS,此时s_current也同样是10,000,相当于第一个LP持有100%的LPS(除去锁定到零地址的LPS),Liquidity Pool中当前Y相对于X的价格为 1 Y = 100000 / 1000 X = 100 X,例如X是USDT,Y是ETH的话,那么 1 ETH = 100 USDT。*:Output数据在第一次质押中实际会做一些调整,这部分的介绍在Uniswap白皮书中比较简略,但其实蕴含的内容和机制还是较多较复杂,接下来深入挖掘一下。 按照LPS初始值的计算公式,一个LPS的价值不会低于Pair中两种质押代币的几何平均数,而且随着交易手续费的积累或者“捐赠”会使LPS的价值升高,因为交易手续费在流动性池中积累,针对这部分手续费并不会产生新的LPS,效果就是池子变大了,但是LPS总量没变,两者的比值即LPS的价值就升高了。 Pair智能合约对应的LPS是有18位小数的(以太坊中最大的小数位数),理论上有一种情况是LPS的最小量(即1e-18 LPS)价值非常大,导致后续小流动性提供者很难再提供流动性了,因为提供流动性的成本太高了,例如1e-18 LPS = $100的话,因为这个是最小单位了,所以要增加流动性就至少质押$100美金才能获得LPS,而且随着LPS增值,流动性成本越来越高,不利于维持交易的流动性。在Uniswap白皮书中把这种极端情况认为是一种可能的人为攻击,为了提高这种攻击的成本,在新创建流动性池的时候,设置了一个最小流动性值MINIMUM_LIQUIDITY=1e-15,即LPS最小单位的1000倍,任何流动性池在启用之初都要在零地址中锁定1e-15的LPS,所以上面流动性池初始化的图修订后为: 在这种机制之下,如果人为把LPS价值提升到1e-18 = $100的话,就需要在零地址中锁定价值 $100 * 1e3 = $100000 的LPS,这样就极大地提升了攻击成本,而且在通常情况下,1e-15的LPS的价值是很小的,甚至可以忽略,所以修订图中第一次质押后获得的LPS虽然要减少1e-15LPS,但约等于10000不变。当然也会有极端情况,例如Pair中质押的两种代币都没有小数,而且单价很高,那么1e-15LPS的价值还是可以感知到的,不过这种类型的代币也不太适合用Uniswap协议来交易。接下来如果有LP继续添加流动性,则按新增的流动性等比例增发LPS,假设当前Pool中X的量为x_current,Y的量为y_current,存量LPS为s_current,新增加的流动性中的X为x_add,Y为y_add(通常情况下x_current/y_current = x_add/y_add,即等比例增加流动性),则新增发的LPS为s_add:如下图所示,增加2000 X和20 Y之后,获取200 LPS,此时LPS都在各个LP自己的地址里,他们可以自由转账,流动性池里只是记录了目前LPS总量的值。通常情况下,LP会按照目前流动性池里的X和Y的比例来增加流动性,获取LPS,Uniswap也提供了周边辅助性智能合约来完成增加流动性的操作,如果新质押的X和Y比例与流动性池中不一样,会按照少的代币量等比例质押,另一种多出来的不会去质押,避免损失,如果是直接去操作Pair合约,需要自己校验,否则还是按少的代币量计算LPS,但另一种多出来的就不会返还了,当是捐赠了。 如果是减少流动性,例如减少LPS为s_remove,存量X为x_current,Y为y_current,LPS为s_current,则LP可以提出去的两种代币量分别为x_withdraw和y_withdraw: 整个流动性相关还会涉及到协议手续费的问题,默认是不收取的,此处暂不讨论。 自动做市Uniswap的流动性池是通过一个恒定乘积公式来计算价格的,以x和y来代表流动性池中两种ERC-20代币(假设为X和Y)的数量,则: 如果我们想要用X从流动性池中交换Y,假设输入X的量为deltaX,交易换回的Y为deltaY,在交易池中的资产足够的前期下,满足: 也就是说交易前后,流动性池中两种代币的乘积是恒定不变的,基于此,如果交易的量相对于流动池中的量很小的话,那么交易价格就近似为当前两种代币的比: 在实际交易过程中,还会有0.3%的交易手续费,扣除方式是先扣掉手续费,再利用乘积公式进行计算,由于最终兑换出来的交易数量是跟交易量有关的,因此实际交易价格并不等于当前两种代币的比例,而且同一个区块里可能会有多笔交易,同一区块里前面的交易对后续的交易也都会有一定的影响,我们来看一下单笔交易的过程: 如上图所示,原流动性池中两种代币余额为100 X和1 Y,可认为Y相对X的价格为1 Y = 100 X,此时要通过流动性池交易20个X,如果按照当前价格全量交易的话,应该换回 20 / 100 = 0.2 个Y,再减去0.3%的手续费,最后返回0.1994个Y,但实际返回了0.1658个Y,我们来逐步分析一下: 输入20个X,先扣除0.3%的手续费,即实际交易量为19.94个X; 按照x*y=k(k=1*100=100)的公式进行计算: 3. Uniswap pair会给交易者地址返回0.1658个Y,此交易平均交易价格为 1 Y = 20 / 0.1658 X = 120.6273 X,比交易开始时的100要高20%多,主要是因为交易量20个X相对于流动性池的比例较大(20%),相当于大额交易,对价格会产生较大影响,直观的感觉就是市场上有人大量买入Y,从而导致Y的价格上涨,此笔交易之后,交易池中Y相对于X的价格变为了143.8504; 4. 更新流动性池中的余额,虽然交易的时候扣掉了0.3%的手续费,但实际上这个手续费依然会放到流动性池中,作为流动性提供者的收益,因此X更新后的余额还是100 + 20 = 120,Y的余额是1 - 0.1658 = 0.8342,Liquidity Shares的值不变。随着交易手续费的积累,整个流动性池的总价值在上涨,LPS的总量不变,则LPS的单位价值上涨。 以上基本介绍了Uniswap协议中的最核心设计原理,涉及到了流动性池和AMM机制等,除了基础核心部分,Uniswap还提供了一些高级功能,同时也带来了一些很有挑战性的问题,包括上文提到的手续费的收取、滑点损失、无偿损失等LP收益相关问题等等,都是很值得深入挖掘和探讨的。编辑于 2022-01-20 10:22去中心化金融(DeFi)Uniswap赞同 16216 条评论分享喜欢收藏申请转载文章被以下专栏收录区块随笔区块链技术领域的一些知