拆解Uniswap会推出怎样的未来?DeFi将吞噬CeFi
当DeFi可以交易几乎任意资产,可以支撑大额交易且滑点很小,DeFi将比CeFi更有吸引力!
Uniswap 如今是 DeFi 项目中巨无霸的存在。
根据 DeFi Pulse 的统计数据,当前锁仓量约为 1.6 亿美元。而根据 DeBank 的数据统计显示,过去 24 小时,成交额高达 2.15 亿美元。Uniswap 的交易量,已经超过了大多数的中心化交易所。可以说是 Uniswap 彻底改变了 DeFi,为这个行业带来了数十亿美元的交易量,并引发了 AMM (自动做市商)设计的复兴。
(DeFi Pulse: Uniswap 锁仓量约为 1.69亿美元)
什么是 Uniswap?
Uniswap 是以太坊区块链上的明星 DeFi 项目,你可以通过 Uniswap 进行代币交换,无需对手方,交易在链上进行,可以立即撮合成交。无论你是加密货币的爱好者,智能合约开发者,还是对于金融科技、金融趋势感兴趣的爱好者,Uniswap 都是不可错过的关注对象。
Uniswap 是当前 DeFi 热潮中的佼佼者之一,通过去中心化的设计,让许多 ERC20 代币的持有者可以直接通过自己的钱包完成代币交易,无需再借助中心化交易所。
除此之外 Uniswap 让用户能够成为做市商提供流动性,并获得收益。特别要提及的是 Uniswap 是以太坊上为数不多未发行治理代币的 DeFi 项目。
Uniswap 不仅仅是一个单独的代币兑换的服务,还可以跟其他的 DeFi 应用结合,许多智能合约会将 Uniswap 作为构建自己服务的基石,这也体现了 DeFi 的一个特点:如同乐高玩具一样的可拼接性。
这篇文章里,我们重点关注 Uniswap 从 V1 到 V2 版本的进化过程,重点介绍 Uniswap V2 新增的特点。除此之外,我们非常关心一个话题:从 Uniswap 的设计出发,我们可以推断出什么样的未来?而未来 DeFi 进化,又会如何与 CeFi 共存?
我们先从 Uniswap 的两个版本聊起: V1、V2,看看 Uniswap 是如何进化的。
Uniswap 的两个版本
Uniswap 让许多用户困惑的地方在于, Uniswap V1 和 Uniswap V2 两个版本仍然共存。通常软件升级之后,会默认使用最新的版本,不过 Uniswap 有些不同,在 Uniswap V2 发布之后,Uniswap V1 仍然继续运行。不过随着时间推移,Uniswap V1 的用户量越来越少。
2020 年 5 月 19 日,在 Rinkeby 测试网络上经过充分测试之后,Uniswap V2 版本上线。如今已经运行了三个月,Uniswap 的智能合约运行并未遇到什么重大的问题。
Uniswap V1:证实了自动做市商的可能性
Uniswap V1 的贡献是:为链上代币兑换和去中心化代币流通池协议奠定了基础,Uniswap V1 就设计了代币兑换时收取小额手续费的方式,并以此部分手续费激励用户提供流动性。毕竟对于一个即时兑换的设计而言,流动性的深度至关重要。
与常见的交易所订单簿模式不同,Uniswap 采用了算法定价的方式,根据当前代币流通池的信息以及用户兑换量,为用户交易对自动定价。不同的代币交易对(比如 DAI-ETH 交易对,或 DAI-USDC 交易对)会有各自的流通池。用户每次交易,都需要支付小额的交易手续费;除此之外,用户还可以按照 1:1 的代币价值,存入相应的代币提供流动性,从而分得手续费收益。
Uniswap 这类的设计模式,也通常被称为 AMM -- 自动做市商机制。除了 Uniswap 之外,还有类似 Balancer、Curve 等多个项目,也是采用了类似的设计方式。今年下半年,随着 Balancer 引入挖矿机制 (yield farming),为流动性提供者分发治理代币,AMM 的市场越发火热,而不发币的 Uniswap,则反而成为了特例。
Uniswap V2:让 Uniswap 更完善
Uniswap V2 在 V1 版本的基础上,对 Uniswap 协议做了大量的升级和完善。概言之,包含如下内容:
ERC20 代币之间的直接交易成为可能。在此之前,ERC20 代币之间的交易需要借助于 ETH 作为中间媒介,而升级之后,大幅降低了交易量和手续费 (gas) 。这也让更多的 DApp 有了更有效率的方式,可以创建不同代币之间的兑换方式。
加入了价格预言机 (Oracle) 功能。通过增加加权平均价格,Uniswap V2 可以为外部的合约提供了时间加权平均价格的数值,从而让合约可以跟踪任何时间间隔内的时间加权平均价格,这样做增加了攻击的难度。
增加了闪兑功能。在一笔交易之中完成:借币、套利交易、归还原先代币的操作。如果事务在任何阶段失败,那么整个交易都不会完成。这样一来,用户可以利用 Uniswap 的代币流通池来执行套利交易。除此之外还有其他的用处,比如完成关闭做市商金库这类特定 DeFi 操作时,可以降低 gas 费用。
对于非标准 ERC20 代币的支持。通过修改了智能合约对于交易的处理方式,让 USDT 和 BNB 这类非标准的 ERC20 代币也能通过 Uniswap 交易。这样做可以扩大使用范围,更进一步增加了 Uniswap 的领先地位。
Uniswap 从 V1 到 V2 的升级
从Uniswap V1到 V2, 用 Solidity 重写了智能合约,克服了 V1 中使用 Vyper 带来的限制。Uniswap 开发人员可以利用最新的 solidity 特性,进一步优化了合约执行中使用的资源,也降低了 gas 消耗量。Uniswap V2 依赖于多个智能合约,对于开发者而言,可能对于 Uniswap V2 的合约架构感兴趣,可以参见下图:
(图片来源: Medium)
在 Uniswap V2 带来的新特性中,最值得关注的一点,可能是允许 ERC20 直接兑换了。
Uniswap V2 的代币兑换方式
如上所述,在 Uniswap V1 中,每次兑换代币,都要用到 ETH 作为中间媒介。首先要将代币 A 转换 为 ETH,然后 ETH 再转换为 B 代币。Uniswap 团队将这种方式称之为他们实现去中心化自动兑换设计的“原型”,因为在 V2 版本中,他们创造了更有效的交易执行方式:不再需要借助于 ETH,就能够完成代币交易了。
如图所示,用户想要在 Dai 和 LINK 代币之间兑换,可以直接使用 Uniswap 的 DAI - LINK 代币流通池即可完成,不需要用到 ETH。有个问题来了:如果代币 A 和 代币 B 之间,不存在直接的代币流通池,但是代币 A - ETH 和代币 B - ETH 的流通池存在,是否仍然可以将代币 A 兑换为代币 B?
答案是可以的。Uniswap V2 保留了选择权,让用户可以进行这类兑换。如下图所示:
在这里,实现方式跟 Uniswap V1 版本类似,智能合约先将 DAI 兑换为 ETH,然后将 ETH 再兑换为 LINK 代币,之后转回 LINK 给用户。如此一来的代价是,需要双倍的手续费支出。
不止如此,还有更多的兑换花样,如下图所示:
用户想要在 DAI 和 LINK 之间兑换代币,可以通过多个代币池之间串联起来,通过多次兑换的方式实现。
需要提醒一下,虽然这种交换方法是可能的,但是没有智能合约方法可以自动促进大量的代币兑换。相反前端应用程序必须手动编写功能代码,并对 Uniswap 进行多个事务调用方能实现。这里只是展现了一种可能性,但是实际上要用到这么复杂的兑换路径,既不方便,也不划算,现实中很少有人会这么做,毕竟高昂的 gas 费,会让这类兑换操作失去意义。
拆解 Uniswap 四要素
2020 年 8 月 20 日,来自 DragonFly 团队的 Haseeb Qureshi 发表观点:有证据表明,未来 Uniswap 将会走向拆分,而 DeFi 的发展,将会逐渐吞并 CeFi。想要判断这一观点,不妨先看看,现在 Uniswap 提供了什么功能?
概括来说,Uniswap 提供了如下四种基本的特性:
用去中心化方式供应代币
固定的手续费结构
实时报价
固定乘积算法,用来为资产定价(x*y = k)
我们分别看一下。
代币存量的去中心化供应
在 Uniswap 上,创建一个新的代币流动池,如同创业团队开创一个新市场一样,需要启动资金。如果想创建一个做市商市场,比如 REN/ETH 代币对,需要从各个分散的投资者那里获得资金,注入到这个流动池中。如果产生了利润,为这个资金池注入流动性的人们,也可以从中分享利润。
从密码朋克角度,这看起来很酷,是吧?但是换个角度想想,这又很奇怪:但凡有盈利可言,什么样的做市商会卖掉自己的股权,来增加库存呢?
通常情况下,大多数盈利的做市商通过债务融资,比如如果能够有可靠的方式获得 20% 的市场回报率, 你可能会用 10% 的利率融资,然后把赚到的利润自己独享。但是 Uniswap 并不会为自己保留任何利润。至少目前还是这样的。
假设你要创建一个自动做市商的代币池。你很确信,这个代币流通池会让你有利可图。如果你够土豪,你可以全部用自己的资金来维持这个流通池,然后锁定,不让外人参与。这看起来很合理:如果你能赚到钱,为什么要把股权让给别人?
这样的 AMM 池子已经存在了。例如,DAI/USDC 这个池子就设置了权限,只允许 0x 团队提供流动性。这样的 AMM 池子,并没有改变 Uniswap 的核心价值主张,仍然允许任何人参与交易,仍然使用链上定价算法,也仍然具备所有标准 AMM 的优点。只不过,这个交易池不允许除了 0x 团队之外的人参与流动性,这样一来,全部利润都为该团队所有。
其他项目上,也有类似的例子。比如 Balancer 就允许用户创建私人流通池,只有特定的用户可以提供流动性。
这看起来很直观:如果你知道一个做市机会可以赚钱,为什么要拱手让人呢?即使做市商想扩大规模增加代币库存量,也不会用 1:1 的价格出售股权。只要做市商在这一领域有明显的优势可以赚到钱,他们就会倾向于保留自己的权利。
费用模型
在 Uniswap 之中,代币流动性的提供者(简称为 LP ) 会分享每次交易的手续费。我预计在不同的 AMM 之间,价格竞争将会非常激烈,特别是在稳定货币等资产上。Uniswap 对每个代币池收取 0.3% 的费用,Curve 收取 0.04%,Balancer 的代币池则可以收取任何他们想要的费用(前 10个 Balancer 池子的费用中位数是0.15%)。结果是,对一个固定乘数算法的 AMM 而言,最优费用与流通池波动率的平方成正比。
(来源: Charlie Noyes, Uniswap 中无常损失随费率的变化情况)
也就是说,更专业的做市商在为资产定价时会更聪明,这给了他们降低费用的空间。随着时间的推移,手续费将不可避免地受到压缩,因为 AMM 之间的竞争会越来越激烈。
实时报价和固定乘积算法定价机制
还有一个特性:Uniswap 无论在什么情况下,都会给你提供报价。为了保持这一特性,大多数 AMM 必须使其尾部定价趋于无穷大(注意曲线末端的渐近线)。
Uniswap 的固定乘积算法曲线。来源: Dmitriy Berenzon
只要有代币,AMM 就永远都会提供报价。但是正常的做市商并不会这么做!考虑一下 312 市场暴跌的时候。面临历史性的市场崩溃,做市商撤单逃离,他们不想死在市场上。流动性也随之枯竭。对其他所有人来说,这都是坏事,但对那些能够管理风险的做市商来说却是好事。
想象 Uniswap 有个孪生兄弟,可以读取历史波动率,并在波动率飙升时拒绝执行交易。或者在收到的指令全部为买单或者卖单的时候,拒绝执行交易指令。毕竟单边交易指令通常是新信息推动市场的信号,市场需要消化这些信息,然后做市商才能再次提供有利可图地报价。
或者最简单的做法是,代币池的流动性提供者 (LP) 可以通过治理决定,当他们认为继续报价不再有意义时,将代币池临时关停,不再接受交易。
显然这样的修改将打破 Uniswap 的恒定乘积算法。因为一旦做市商重新启动,价格将需要以某种方式重置。
你应该能明白我想表达的意思了。这些都是 Uniswap 与全智能做市商的不同之处。在一定程度上,你可以模仿一个正常的做市商的行为,你可能会提高你的盈利能力。
这就自然而然地把我们带回到 Uniswap 组合包之中最重要的部分: 定价功能。
拆解 Uniswap 的定价功能
目前几乎每个 AMM 项目中,定价函数都是一条连续曲线,唯一的输入值是资产数量。我们称这些为纯粹的定价函数,因为它们不需要查看合约之中代币库存之外的任何东西。但是有一大堆更复杂的定价功能!
举个例子:假设存在一个价格函数,它会将 Uniswap 和 Curve 提供的价格关联,然后将它们的净价格降低千分之十,作为自己的定价。(注意这种情形下一定要小心设计,因为有可能会被人用闪电贷的方式加以操控价格)。
或者另外一种情形 : 存在一个定价函数,它接受 Coinbase 预言机的签名价格作为输入,然后在 Coinbase 价格之上增加百分之五,作为自己的定价。
这些只是我的一些想法。需要明确的是,这两个建议都是不成熟的,但它们在原则上可行。但这两者都不如一个特定的定价函数,我认为在未来的 DeFi 现货交易中,绝大多数会有可能采用这种定价函数。
我认为最具有破坏性的定价函数,是一个简单的基于签名的定价函数。这一定价方式,将成为 DeFi 和 CeFi 之间的桥梁, 这会把 DeFi 变成影子市场,根据 CeFi 中全部的流动性的变动而产生价格变化。
让 DeFi 和 CeFi 开始融合
你应该对 OTC 场外交易并不陌生。每天有大量的加密资产交易,通过 OTC 场外交易进行。假设 OTC 商人提供报价“用 399 美元兑换 1 个ETH”,并用私钥签了名。他所有的资产都在链上,随时准备执行报价的交易。如果你接受报价,就提交到 OTC 交易商的链上智能合约,合约会验证 OTC 商人的签名,根据特定的价格执行订单,将对应的资产转给你。
这跟 OTC 市场完全一样,只是用了全程序化的方式。你只需要访问网站/API 获取报价,然后在钱包里确认交易指令,将报价发送给智能合约执行交易,就完成了。
这个合约几乎与 Uniswap 完全相同,只是去掉了 x * y = k 的定价函数,代之以签名验证。如果签名验证通过且报价有效,则自动执行交易划拨资产。
这个“ OTC交易柜台”就是 AMM。但与 Uniswap 不同的是,AMM 可以使用它想要的任何定价函数。
它可以查看其他链上的流动性情况,可以看看 Binance 或Coinbase 订单,它可以使用花哨的机器学习算法和 Twitter 情绪分析或跟踪区块链上的交易所信息, 当市场巨变之时,能够停止报价或者中止交易,将损失降到最小。正常的做市商能够做到的所有混沌、复杂的事情,它都可以做到 ! 如果该合约的库存不足,做市商可以自己对其进行资产重组。
这个做市商是中心化的,但对它的客户来说,它无需信任。即使做市商给你一个不好的价格,你不接受就是了 !
事实上,如果做市商愿意的话,它甚至可以从分散的流动性提供者那里融资! 当然一个中心化的做市商可以作恶,比如将流动性资产提供者的资产卷跑。但是你可以使用像 Intel SGX 这样的可信硬件来缓解这一问题,为硬件预先设定好链外定价算法,可以在链上进行验证。这样一来,对于流动性提供者 (LP) 或者用户而言,参与融资时候都无需信赖做市商不会作恶。
不过现在看来,这还没出现,还只是空想而已。我预计这类交易的第一个版本,将由已经拥有链外系统生成报价的做市商自筹资金。这将使目前的做市商或 OTC 市场能够轻松地建立起接受 DeFi 指令的机制。
但是问题也随之而来:如果有人收到了带签名的报价,然后等上 20 秒,只有价格对自己有利才去执行,这种情况难道不会出现么?从某种意义上来说,AMM 不就是在不停的创建免费的期权么?
没错,是会这样!你可以想象这种 AMM 使用来自以太坊地址和 IP 的行为信号,给高信任的买家提供更好的报价,给 spam 制造者更坏的报价。或者您可以设置衰减报价,这样如果用户拿到报价之后耽搁太久,会通过编程方式,让报价变差。
想象一下,每个做市商都可以通过部署标准化的合约和软件模板来创建自己的 API 。每个合约都有一个可配置的 IP 指针,这样用户和聚合器就知道如何检查当前的价格或请求报价,一旦他们的标准化合约部署到主网上,它就会自动被聚合器编入索引。在任何地方、任何做市商都可以创建好自己的服务摆摊开业,在几分钟后开始为 DeFi 用户服务,就像变魔术一样 。
当然出于监管原因,许多做市商无法这么做。但你不需要那么多做市商参与进来,就能获得网络效应。只要世界上有几个资本充足的做市商在 DeFi 上建立业务并相互竞争,他们就可以在中心化交易所和 DeFi 之间,架起价格和流动性的桥梁。
我们知道,最终基于订单簿的方式会是最有效的交易方式和价格发现形式。但现在来说,将订单簿交易模式链上执行的成本高昂。
真正的 DeFi 做市商将成为一座桥梁,让 DeFi 用户连接到中心化订单簿的世界。就像是将订单托管在了链外的中心化交易所一样,DeFi 变成了一个影子经纪公司——成为了一个去信任化的前端,可以获取所有加密货币交易所的流动性。
突然之间,所有使用 DeFi 的用户,都能够使用币安等交易所的价格、资产和流动性。
DeFi 的未来
我对 DeFi 和 DEX 的关注,由来已久。但是最近我获得了一些灵感。有个朋友来找我,说想要投资一个新上市的代币。他说:“我可以找到哪家交易所上架了这个代币,哪些流动性充足,然后将我的 ETH 转过去,兑换该代币。但是这个过程太蛋疼了。最后我通过 1inch 这个聚合交易应用,点击了几下就买好了,价格也挺不错”。
这给我了一些启发。人们会用 DeFi,不是因为 DeFi “真正去中心化”或者因为他们喜欢“无托管的自主交易”,这些理由并没有价值。他们很懒,不想自己去交易所,所以他们会用 DeFi。
一旦 DeFi 成为一种经纪公司性质的存在,可以交易几乎任意的资产,可以支撑大额交易且滑点很小,那么 DeFi 会比中心化交易所更有吸引力。对于只想买入持有一些加密货币的用户来说,他们并不是活跃的交易者,使用 DeFi 就像使用 Coinbase 这样的中心化公司一样方便。
我们不妨思考:一旦到达了那一天,会有什么连锁反应?那些用户在 DeFi 上还会做什么?
像中心化交易所一样,DeFi 可以提供许多交叉销售的服务。
你想买些代币,除此之外,没准还会多逗留一阵,就像逛街时候似的——你没准会开一个储蓄账户,申请一笔贷款,挖一挖矿,玩几场游戏,也许还可以赌上几把。所有的东西,都在一个巨大的购物中心里可以找到。而且你不需要承担任何对手风险,不需要 KYC,不需要担心被人追踪。我希望这是 DeFi 和 CeFi 融合的另一个例子。
最后,DeFi 和 CeFi 上的人们的想法会一致: 良好的用户体验,安全、公平的定价,以及琳琅满目的投资资产可供选择。DeFi 会向用户提供越来越多的服务,这些服务原本是由中心化交易所提供的。
我相信,最终会有一天,DeFi 吞噬 CeFi 的想法,会不再奇怪。我预计那一天,会比大多数人想的晚。但是那一天的到来,也会超过大多数 CeFi 人士的预料。
Scan QR code with WeChat