闪兑 / 自动化做市场的进化和分类(代码demo)
从英文翻译而来-Uniswap是一个去中心化的加密货币交易所,它通过使用智能合约促进以太坊区块链上的加密货币令牌之间的自动化交易。截至2020年10月,按每日交易量计算,Uniswap估计是最大的分散交易所和第四大加密货币交易所
DeFi (Decentralized Finance)
基于智能合约构建的
- 加密资产
- 金融类智能合约
- 金融类协议
目前主要都在以太坊网络实现
2020年,区块链技术在金融领域取得巨大进展,DeFi大爆发。
- 借贷
- 衍生品
- 保险
- 支付平台
DeFi 的意义
传统金融是中心化托管。
但是信息核实成本越来越大,导致效率越来越低。
借助智能合约,未来可以实现更多的金融形式
DeFi 的赛道
基于在金融活动中承担的角色不同,DeFi 有很多赛道
三个主要赛道为:
- 去中心化借贷
通过中心化的协议, 提供借入借出服务。
- 预言机
为(1)中心化借贷提供基准价格,参与借贷用户可以基于预言机价格借入借出,避免借贷价格偏离市场正常价格
- 去中心化交易所 (DEX)
不需要注册既可以交易的交易所,比中心化交易所匿名性更强,但是流动性更弱。
Uniswap
Uniswap 是一个在以太坊区块链上运行的交易所,它支援 ETH与 Token 之间、Token 与 Token 之间的快速兑换。
开发团队没做 ICO、不抽手续费、也不收上币费。
历史
Uniswap 的设计最早可以追溯到 Vitalik 在 2016 年 10 月在 Reddit 发的
Let’s run on-chain decentralized exchanges the way we run prediction markets
这篇文章描述了一个在区块链上运作的去中心化交易所的雏形,
白皮书写的特色
- ease-of-use(易用性)
在 Uniswap 交易所上买卖币时,你只要决定好卖出的币种、买入什么币、买或卖的数量是多少,按下 Swap 送出交易,在交易上链后就能立即取得你应得的币。
而且就算是 Token A 换 Token B,在 Uniswap 也只要发出一笔交易就能完成兑换,在其它交易所中可能需要发两笔交易(第一笔将 Token A 换成某种中介货币(如 ETH, DAI)再发第二笔交易换成 Token B)才能完成。
注:实际上在 Uniswap 也是将 Token A 换成 ETH 再换成 Token B,只是它让这两个动作发生在同一笔交易里。
- gas efficiency(gas 使用效率)
根据白皮书中的资料,Uniswap 交易消耗的 gas 量是以太坊上的几家主流交易所之中最低的,也就代表在 Uniswap 交易要付的矿工费最少。
这主要得益于它相对简单的做市机制:
Uniswap 不是采用挂单搓合机制来完成交易,而是根据合约中储备的资金量算出当下的交易价格,并立刻从资金池中取出对应的金额传给使用者,整体的运算量相对较少。
- censorship resistance(抗审查性)
抗审查性体现在 Uniswap 上架新币的门槛,就是没有门槛,任何使用者都能在 Uniswap 上架任何 Token。
这点即使在众多去中心化交易所之中也是少见的,大多数的去中心化交易所虽然不会像中心化交易所那样向你收取上币费 ,但还是要申请上币、通过审查后,运营团队才会让你的 Token 可以在他们的交易所上交易。(可参考上币规则 of IDEX, KyberSwap, Bancor, EtherDelta)
但在 Uniswap,任何使用者只要发起一个 createExchange 的交易,就能让一个 Token 上架到 Uniswap 的交易对中,上架后也没有人能迫使它下架。
- zero rent extraction(零抽租)
在 Uniswap 的合约设计中,没有人有任何特权,开发团队也不从交易中抽取费用。但这不代表在 Uniswap 上交易是没有手续费的。
要让交易被打包进以太坊区块链就要付 gas fee,这笔钱跟交易的金额大小无关,以近期的币价和网路拥挤程度估计。
什么是流动性提供者(liquidity provider)?
「流动性提供者」是一个金融术语,指的是帮助一个金融市场提高流动性的个体。一个拥有越高流动性(市场深度越大)的交易所,其使用者就越能在短时间内以稳定的价格完成大额资产的交换,使用者的交易体验当然就越好。
反之,在一个流动性不足的交易所,就有可能因为一笔大额的交易导致币价剧烈波动。
在大部分的交易所中都有流动性提供者或做市商(market maker)这样的角色存在,做市商会在买、卖两个方向上挂单,让想要交易的使用者只需要跟做市商的订单搓合就能完成交易,而不需要等待拥有相反需求的交易对手出现,市场流动性就能提高。
在 Uniswap,流动性提供者要做的事情是:替一个 ETH - Token 交易对增加 ETH 与 Token 的储备资金,储备金越多,ETH <=> Token 的交易价格就越稳定,该 Token 的流动性就越高。
但如果「替一个交易对增加流动性」这件事不能带来利益,应该很少人会自愿这么做,所以 Uniswap 的做法是从每一笔 ETH <=> Token 交易中抽取「流动性提供者费用」0.3% 分给流动性提供者们,逐利的人们就会自愿为 Uniswap 增加流动性以赚取被动收入,交易者们也能享受到更好的交易体验,达成双赢。
Uniswap 有什么缺点?
- 不能自行决定买卖价格
你只能被动接受 Uniswap 给你的价格,不能挂单在你想要的价格。
- 交易费用不低
0.3% 的费用跟其它中心化、去中心化交易所比起来都算是偏高,如果你的目标是尽量以漂亮的价格完成交易,不建议使用 Uniswap。
- Front Running(超前交易)
Front Running 在许多去中心化交易所、应用中都是一个问题。
简单地说,从你发出交易到交易上链之前,其他人有机会赶在你的交易完成之前执行另一笔交易,使得你的成交价格偏离预期,你因此吃亏,对方因此得益。