Uniswap
Noun
Uniswap基于以太坊区块链为人们提供去中心化的代币兑换服务。Uniswap提供了ETH以及ERC20代币兑换的流动性池,它具有当前DeFi项目中最引人注目的去中心化、无须许可、不可停止等特性。Uniswap实现了一种不需要考虑以上特点的去中心化交易所。
Uniswap
Uniswap 实现了一种不需要考虑以上特点的去中心化交易所。它不需要用户进行挂单(没有订单),不需要存在需求重叠,可以随买随卖。得益于 ERC20 代币的特性,它也不需要用户将资产存入特定的账户。Uniswap 模型的优点在于根据公式自动定价,通过供需关系实现自动调价。
Uniswap的设计最早可以追溯到Vitalik在2016年10月在Reddit发的
Hayden Adams从2017年末开始根据这个提案着手开发Uniswap,
在2018年8月获得以太坊基金会资助$100k,
在2018年11月被布署上链,
由于Uniswap在许多方面都有良好的设计,
在上线之后交易量便一路攀升,
在2019年7月的现在,
已经稳居以太坊上交易所交易量的前三名。
Uniswap 的运行机制的关键在于建立了供给池,这个供给池中存储了 A 和 B 两种货币资产。用户在用 A 兑换 B 的过程中,用户的 A 会发送到供给池,使供给池中的 A 增多,同时,供给池的 B 会发送给用户。这里的关键的问题在于如何给 A 和 B 的兑换提供一个汇率(定价)。
Uniswap 定价模型非常简洁,它的核心思想是一个简单的公式 x * y = k 。其中 x 和 y 分别代表两种资产的数量,k 是两种资产数量的乘积。
假设乘积 k 是一个固定不变的常量,可以确定当变量 x 的值越大,那么 y 的值就越小;相反 x 的值越小,y 的值就越大。据此可以得出当 x 被增大 p 时,需要将 y 减少 q 才能保持等式的恒定。
为了做一些更实用的工作,将 x 和 y 替换为货币储备金的储备量,这些储备金将被存储在智能合约中。
Uniswap 有什么特色?
如白皮书所述,Uniswap在以下方面有着良好的设计:
1. ease-of-use(易用性)
在Uniswap交易所上买卖币时,你只要决定好卖出的币种、买入什么币、买或卖的数量是多少,按下Swap送出交易,在交易上链后就能立即取得你应得的币。
而且就算是Token A换Token B,在Uniswap也只要发出一笔交易就能完成兑换,在其它交易所中可能需要发两笔交易(第一笔交易将Token A换成某种中介货币(如ETH, DAI)再发第二笔交易换成Token B)才能完成。
注:实际上在Uniswap也是将Token A换成ETH再换成Token B,只是它让这两个动作发生在同一笔交易里。
2. gas efficiency(gas 使用效率)
根据白皮书中的资料,Uniswap交易消耗的gas量是以太坊上的几家主流交易所之中最低的,也就代表在Uniswap交易要付的矿工费最少。
这主要得益于他相对简单的做市机制:
Uniswap不是采用挂单搓合机制来完成交易,而是根据合约中储备的资金量算出当下的交易价格,并在交易发生时立刻从合约的储备金中取出使用者应得的量传给使用者。
3. censorship resistance(抗审查性)
抗审查性体现在Uniswap上架新币的门槛:
就是没有门槛,任何使用者都能在Uniswap上架任何Token。
这点即使在众多去中心化交易所之中也是少见的,大多数的去中心化交易所虽然不会像中心化交易所那样向你收取上币费,但还是要申请上币、通过审查后,运营团队才会让你的Token可以在他们的交易所上交易。
(可参考上币规则of IDEX , KyberSwap , Bancor , EtherDelta)但在Uniswap,任何使用者只要发起一个createExchange的交易,就能让一个Token上架到Uniswap的交易对中,上架后也没有人能迫使它下架。
4. zero rent extraction(零抽租)
在Uniswap的合约设计中,没有人有任何特权,开发团队也不从交易中抽取费用。但这不代表在Uniswap 上交易是没有手续费的。
第一,要让交易被打包进以太坊区块链就要付gas fee,这笔钱跟交易的金额大小无关,以近期的币价和网路拥挤程度估计,大约付$0.05 ~ $0.5的费用就能让交易在一分钟内上链,
第二,Uniswap会对每一笔ETH ⇄ Token的交易抽取0.3%的费用,(Token ⇄ Token的交易则会抽两次,共0.5991%)这笔费用称为liquidity provider fee(流动性提供者费用) ,会付给流动性提供者们。
什么是流动性提供者(liquidity provider)?
「流动性提供者」是一个金融术语,指的是帮助一个金融市场提高流动性的个体。
一个拥有越高流动性(市场深度越大)的交易所,其使用者就越能在短时间内以稳定的价格完成大额资产的交换,使用者的交易体验当然就越好。
反之,在一个流动性不足的交易所,就有可能因为一笔大额的交易导致币价剧烈波动。
在大部分的交易所中都有流动性提供者或做市商(market maker)这样的角色存在,做市商会在买、卖两个方向上挂单,让想要交易的使用者只需要跟做市商的订单搓合就能完成交易,而不需要等待拥有相反需求的交易对手出现,市场流动性就能提高。
在Uniswap,流动性提供者要做的事情是:替一个ETH - Token交易对增加ETH与Token的储备资金,储备金越多,ETH ⇄ Token的交易价格就越稳定,该Token的流动性就越高。
但如果「替一个交易对增加流动性」这件事不能带来利益,应该很少人会自愿这么做,所以Uniswap的做法是从每一笔ETH ⇄ Token交易中抽取「流动性提供者费用」0.3 %分给流动性提供者们,逐利的人们就会自愿为Uniswap增加流动性以赚取被动收入,交易者们也能享受到更好的交易体验,达成双赢。
Uniswap是一个在以太坊区块链上运行的交易所,它支援ETH(以太币)与Token之间、Token与Token之间的快速兑换。(本文的「Token」皆指「ERC20 Token」)
Uniswap 有什么缺点?
前面说了这么多Uniswap的好话,这里说说它的缺点:
1. 不能自行决定买卖价格你只能被动接受Uniswap给你的价格,不能挂单在你想要的价格。
2. 交易费用不低0.3%的费用跟其它中心化、去中心化交易所比起来都算是偏高,如果你的目标是尽量以漂亮的价格完成交易,不建议使用Uniswap。
3. Front Running(超前交易)Front Running 在许多去中心化交易所、应用中都是一个问题。简单地说,从你发出交易到交易上链之前,其他人有机会赶在你的交易完成之前执行另一笔交易,使得你的成交价格偏离预期,你因此吃亏,对方因此得益。
什么情况下适合使用Uniswap?
1. 你需要支付某种你没持有的Token 给其他人比如你持有ETH而不持有DAI,但突然需要付一笔DAI给别人,那你就非常适合用Uniswap的Send功能,让兑币、转帐一次完成。
2. 你同时持有ETH 和一种Token
如果你本来就HODL ETH和一种Token,而且相信这两者的相对价格短时间内不会有太大的变化,那你可以考虑将部分的ETH和Token放进Uniswap赚取被动收入,放进去的币随时都可以领回。
但是如果你觉得这个Token相对于ETH的价格可能在近期上涨或下跌很多,你放入Uniswap一段时间后再领回,领回的币的总价值可能比HODL的结果还低,原因我们在后续的文章会讲解。
3. 你发行了一种Token,想增加他的流动性那就帮你的Token创建一个Uniswap交易对,然后帮它Add Liquidity。
4. 你是智能合约开发者,想要在合约里取得币价或转换一种币为其它币例如你想要根据ETH当下的价格决定收发多少ETH,或直接把ETH换成稳定币,那你可以去接链上的Uniswap exchange contract,合约介面在此。