DeFi想要真正崛起,需要中心化金融做不到的事情。这其中的最大创新,叫做自动做市商(AMM)。
上一篇想知道什么是清算和预言机?告诉你DeFi是什么(一)中,我们提到DeFi的几个核心组件已经集齐,但光是这些,DeFi仍旧只是小众的玩具。因为大众的需求很简单——
1,赚钱。
2,简单地赚钱。
而前面的这些相对于中心化金融,哪一点都做不到。以上的所有功能,无论是DAI,wBTC,还是DEX,实际上都是中心化金融的劣化版。那么,对于安全或者去中心化没有执念的普通用户自然是不会买账的。
DeFi想要真正崛起,需要中心化金融做不到的事情。这其中的最大创新,叫做自动做市商(AMM)。
回到之前的场景:你是一个交易所,带着10000个A和10000个B来到市场。
你面临着同样的定价问题,但是这一次,你手机坏了——你不知道别的交易所定价多少了。这个时候有人过来管你换A,你要怎么定价呢?
这时,你微微一笑:
“你要换多少?”
“换1000个B。”
“那么我给你909个A”
“这么便宜?(外面的汇率是0.667)那我再换1000个。”
“那好,给你757个。”
“也还行,那我再换1000个汇率是多少呢?”
“这回汇率是0.641。”
“怎么这么少了?你是怎么算的?”
“很简单,既然价格是供求关系决定的,那么我就按照自己的供求关系算嘛。我的原则就是我得保证我自己的A和B不被人低价买空,所以我用了个简单的办法——永远保证我的A和B的数量是个定值。这样,就算我可能卖亏了,但是亏损最终是有限的。而且,市场总会把价格调到合适的水平——因为反正如果汇率低了就会有人买,汇率高了就会有人买。”
(图:外面的汇率总在这条线上的某个点,于是即便我们不知道外面的汇率是多少,只要根据这条曲线来算汇率,最终AMM给出的汇率肯定是在外面的汇率附近浮动,图片引自https://medium.com/dragonfly-research/what-explains-the-rise-of-amms-7d008af1c399)
以上,其实就是AMM的原理了,实际上通过这种简单的方法,我们获得了一个不需要从链外获得汇率信息就可以自动根据供求关系调整的市场。当然,这东西的弱点也很明显——如果你一开始的汇率不在市场汇率附近,你就会如同刚才的例子一样,承受大量的“无常损失”(909+757-667*2=332,多给了332个A币)。之所以叫无常损失,就是其实这个损失解释起来有些复杂。比如如果未来A币涨回到和B1:1的汇率了,然后自然会有人管你买B币,第一次用757个A买了1000个B,第二次用909个A买了1000个B。然后你一看自己的钱,还是10000个A,10000个B,和来的时候一模一样。所以没亏啊。
但如果你全部换算成B的话,原来市场汇率是0.667:1的时候你有25000个B,然后经过一番交易后你剩下24500个B,损失了500个B;然后现在市场汇率变成1:1,又经过一系列交易,你只剩下20000个了,你损失了5000个B。
而实际上,以上的事情在现实中是不可避免的——因为加密市场的价格总是在剧烈波动的,而由于你的价格总是偏离市价,所以无论你怎么确定初始的价格,你每笔交易都是在做亏本生意。于是,想要不亏本,你得收交易费,也就是比如本来能换757个A,你少给他100个,这样把损失的B补回来。但这样的话,这交易的手续费显然低不了。
而且,比如以上的那种情况,两笔交易后你的汇率就比市场低了,自然就没人买A了,但换了一笔A之后汇率又比市场高了,又没人会卖A了。于是你的交易量也上不去。
AMM的理想状况是:你有很多钱,一开始汇率是0.665。很多人来做交易,多数人觉得卖A划算,但也有部分人觉得这个汇率买A也能接受。于是汇率慢慢涨到0.668,然后大家再慢慢把汇率压回去。而当汇率在0.667左右的时候,买入和卖出的人数差不多,于是汇率会维持在这个价格左右浮动。这样的交易所才可能吸引用户来,而你承受的无常损失也很小。于是,你收个百分之零点几的交易费就能弥补这个损失了。
也就是说,AMM要是想要有效,需要很多的钱,这个钱被称为“流动性”。流动性越好,给出的汇率就能越接近市场汇率,这个市场就能承载更多的交易量,无常损失更小,所以所需要的交易费就越低。但如果交易所没有这么多钱怎么办?他们需要吸引人来提供流动性。于是,他们发出广告,说“如果你们有多余的A和B币,欢迎存到我的流动性池子里来。然后,作为奖励,我们把交易费扣去无常损失多出来的钱的一部分我发给你们作为分红。”
但这里就出现了一个矛盾——
那么减小的无常损失能赶上分红吗?其实很难。我们换个角度想想就知道,如果按刚才所说的流动性池子里各有10000个币的话,实际上可能只有在做100个币以内的交易时汇率对于用户可以接受。但其实100个币以内的交易,其实在中心化交易所里,只需要100个币的流动性就够了——也就是剩下的9900个币,只是无法从链外获取汇率的情况下,为了获得一个较为合理的汇率而存在的。那么也就是说,相比于中心化交易所,DEX多出了给剩下9900个币的流动性提供分红的成本,于是,要不然你的交易费就得是中心化交易所的很多倍,要不然你的交易量就得比中心化交易所多很多倍,这样整个逻辑才能圆回来。
但无论如何,AMM是一个真正的DEX和真正性质上的DeFi——这个市场只需要通过一个简单的公式和智能合约就能实现(Uniswap的逻辑仅仅不到300行代码),它不像订单簿DEX还需要一个中心来匹配订单,也不像借贷还必须依赖预言机来从链外获取价格,所以从某种角度来说,只要你会写交易,你不需要进行任何中心化身份认证就可以参与交易。更有甚者——记得当你靠白皮书发行的空气币ICO和后来的升级版伙同交易所割韭菜的IEO吗?这有了采用AMM的DEX就更方便了——你甚至不需要任何人背书,只要自己发个币,只要能够让足够多的人相信你的币有价值,你可以不通过任何人,自己在这个DEX里创造一个这个币和ETH的交易对,然后就可以炒自己的币了。一方面,这真的是创造了“完全无门槛”的金融游戏,但另一方面,这东西刚出现的时候,确实也带来了足够多的混乱。
只不过,尽管AMM在象征意义上十分有趣,出现之初它的发展也是相当缓慢的——因为前面也说了,它为了不去引入链外汇率数据,实际上相当于一个信息更闭塞的市场,所以在资金的使用率上是落后的,也就是说,在“赚钱”这件事上,它还是没法压过中心化交易所。但相对于订单簿DEX,AMM的突破在于,它对于一些人来说,在“简单地赚钱”这件事上有了点作用,尤其是那些刚刚上市的小币种,AMM成了一些人暴富和一些人被割韭菜的理想场所。
以上,其实光是买币卖币,对于稍微有点追求的人来说,是不配称为“金融”的。
众所周知,金融的核心,是杠杆
而杠杆的本质,其实就是借贷——拿不属于自己的钱来赚钱。
当然,本身DAI就已经是借贷了,DAI已经允许你拿自己的ETH做抵押贷出DAI。所以比如说你想对ETH进行投资并且加杠杆,你可以买ETH之后再抵押这笔ETH借出DAI再去买ETH,这样当ETH上涨的时候,你就能获得本金167%的收益,杠杆虽然不多,但是在去信任的世界里,已经很难做得更好了。
但问题是,DAI只支持用ETH做抵押,也就是只支持ETH的杠杆,但其他币种就不行了。
于是对于其他币种的借贷就应运而生,用到的方法其实我们都已经讲过了——正是DAI的超额抵押和清算机制,以及AMM的资金池。
AMM的原理前面已经说了,是开两个流动性池,用交易费的分红吸引大家把钱投到流动性池里提供流动性。那么借贷池其实原理一样,但是可以更开放——开好几个借贷的池子,比如A币,B币,C币,欢迎有不用这三种币的有钱人把钱存到这个池子里来供人借贷。然后,任何人都可以通过超额抵押自己的某些资产来借这些代币,只要还的时候额外支付一笔利息就行了。然后,这笔利息当然会以分红的形式来到将钱放在借贷池里供人贷款的人手里。然后,如果发现抵押物低于抵押率*(借款总金额+利息),则进入清算步骤。和DAI一样,任何人都可以“帮”借款人还上这笔款,然后打折“买”走部分抵押物,剩下的抵押物还给借款人。当然,这个步骤终究还是摆脱不了对于预言机喂价的依赖。
以上这一切都通过智能合约来实现,借贷的利率都是写在智能合约中根据算法算出的,这样,无论是对于放款人还是借款人,自己的获益都是透明可计算的。
剩下的难点,其实在具体实施上。Compound项目采用的方法是对于每个对应的代币都创造一个新的c代币来避免直接操作代币带来的风险:比如ETH,就对应一个cETH,比如A币,就创造一个cA币。然后然后,想要进行借贷,就先把自己的代币换成c代币,然后再存入借贷池。对于借款人也同样,你借走和还款的也都是c币而不是真正的币。不过这没关系,正如DAI一样,只要这个机制运营顺畅,那么c币随时都可以换成真正的代币,于是两者会在市场上拥有同样的价值。
于是,对于放款人而言,他比如存进了100个A,会获得100个cA。然后,通过把这100个cA存进借款池,这笔钱就会逐渐增值。增值的原因自然是来自于借贷——某位借款人通过抵押200个B(假设远高于100个A的价格)借走了这100个cA。他可以去拿这笔钱做交易也好,做杠杆也好,但总之,这笔借款每日会产生利息,于是他需要还的钱会增加,比如明天变成101cA,后天变成102cA,直到他把这笔钱还上,或者抵押不够了触发清算为止。
和点对点的借贷不同,这笔钱也不是直接还给放款人,而是还到资金池,而放款人的收益也来自总体借款人所还利息的比例。那自然,实际上放款人的款也不是被某个人借出去了,所以如同银行一样,放款人可以随时把钱取出来。
这时,需要担心的问题是挤兑:如果钱都被借走了,而正好又发生挤兑大家都想把钱取出来怎么办?
于是,Compound设计了一个使用率来调整借款的利率——钱被借走得越多,借钱所需要的利息就越高,于是抑制继续借款;而同时,高利率也会吸引更多的人把钱拿来放款而不是取走。
有了借贷和交易所,那么中心化金融的基本功能,比如做空做多、杠杆,其实都能在DeFi里实现了。而这两者,在不考虑以太坊极度拥堵的情况,其实用起来已经和中心化金融的用户体验相差无几了,于是,“简单地赚钱”里“简单”我们已经搞定了,但问题是——它不赚钱啊……
或者说,它其实不如中心化交易所赚钱。
你看,虽然说好像把钱放在AMM的流动性池里或者借贷池里都能生钱,但你其实能从刚才对于AMM和Compound的机制中看出来,除非交易量上去,否则这里的奖励和风险比起来太微不足道了。
所以说,DeFi需要一些中心化金融没有的东西。
而这个时候,最有创意的DeFi产品就如同它的名字一样横空出世——闪电贷。
你可能会说:“闪电贷中心化金融里也有啊,不就是某种可以很快获得的贷款吗?”
其实DeFi里的闪电贷是另一种东西——它指一种不需抵押就可以大量借款,只要你能马上还上的贷款的贷款。
听到这里你可能一脸懵逼
没错,这从现实的眼光看上去相当不合逻辑——马上还上的贷款叫什么贷款?我从银行贷出一万然后手刚碰到钱,银行马上扣住让你还了,这有什么意义吗?
的确,从传统金融的角度来看这完全没意义,于是也无法定价——我们怎么保证能马上还?如果真的能保证马上还,那么这事没有风险,那么自然也不该有抵押,也不该有利息……但话说回来,这对贷款人又有什么好处呢?如果他真的有一种“碰到钱立刻变出等量的钱”的神奇本领,那是不是也该算作风险所以应该要抵押并且收利息呢?
这种在传统金融中不存在的东西,在区块链上却是可行的。
闪电贷的逻辑是一个这样的智能合约——你可以发起一个交易,从这个合约里拿走一大笔钱,比如10000个ETH;但以上这笔交易被认为合法的条件是:这个区块里必须包含一笔你还上10000ETH的交易。于是,要么你借出10000ETH并且在同一个区块里还上,要不然两笔交易都不合法都不会出现在区块里。
这种逻辑是只有区块链才能实现的,所以从这个角度讲,说闪电贷是DeFi带来的金融创新也不为过。
那么问题来了——这有什么用吗?
答案是:太有用了!——因为有了基于AMM的DEX和借贷,一个区块里我们可以做很多事情了。
假设,我们发现一个DEX给出的A的收购价格比另一个DEX里A的卖价高不少——这在传统金融中,就是一个正常套利的空间,但在DeFi里,有了闪电贷之后,套利者相当于有了无数倍的杠杆。
他可以不用任何本钱,从闪电贷里贷出10000ETH。然后拿这笔钱去DEX上低买高卖来套利之后变成了10100个ETH,然后他把借贷合约的贷款还上,剩下的100个ETH就是他净赚的钱了。
而这一切,都仅仅发生在一瞬间,也就是一个区块的时间内,他就完成了这100个ETH的套利。而如果没有闪电贷,他得真的有这10000个ETH才能完成这样的套利。
但更有甚者,这种套利还可以演化成“攻击”。确切地说,只要一些项目比如DEX和借贷的智能合约中有一些漏洞,原本这些漏洞可能并不足以导致严重的问题。但因为闪电贷的存在,而只要这种漏洞被发现,就可能导致严重的后果。
这其中最常见的漏洞,就是前文中提到的,目前还并不可靠的预言机。
比如,记得之前提过AMM需要一个较为准确的初始汇率来降低无常损失吗?于是一些DEX项目拿另一些大的DEX当前的价格当作喂价的预言机——因为都在链上,所以这个喂价至少能够保证是一致的。至于靠不靠谱,他们认为这个交易所那么大,汇率应该相对准确吧。
然而,有了闪电贷一切都不一样了。很多次闪电贷“攻击”就是利用了这个思路——先找到一个有这种漏洞的交易所X,然后找到被它们当作喂价预言机的交易所Y,找到一个最容易被影响价格的货币对A/B,然后借出闪电贷,先从别的交易所以正常的价格买入某A币和某B币,然后来到交易所Y把大量的B换成A将价格抬上去。然后,再以高价到交易所X把所有的A卖出去。这实际上就是简单地利用AMM价格仅由本地供需关系而不是全局供需关系的特点的套利方式;这里Y交易所并没有受到损失,但X交易所因为使用了不正常的汇率而会承受大量的损失。
但以上这种简单粗暴的方法,实际上如果没有闪电贷,其实很难成立,因为持有足够影响市场的ETH的持币者也许并不愿意做这种事情来获利——它们可能有无数种更稳妥的方式来获利。但因为有了闪电贷,任何人都可以借到这么多钱来发起“攻击”。
而更重要的是,这种攻击是零风险的——因为闪电贷只有在能够还上的前提下才成立。换句话说,攻击者会把这一系列的操作所需要的交易打包起来发给矿工,矿工要么就接受这些交易一并上链,然后攻击者获得收益,要么就都不打包。无论缺少了哪一环导致以上的套利没成功,导致最后闪电贷的还款还不上,那么最初借款以及后面一系列的交易都会失效,于是攻击者也不会有任何损失。所以,只要发现这种机会,攻击者就可以发一系列交易进行攻击。甚至于,他们甚至还可以把赚来的钱换成以太坊然后再用混币的交易也都写在一起,来确保自己赚来的钱可以安全的到手。
于是,当前,闪电贷已经是所有针对DeFi的安全性攻击和套利中攻击者的标配了——对于已有的bug,用闪电贷能放大收益;而对于这些本来可能不会造成太大问题的漏洞,闪电贷可以将其变成足以影响安全性的问题。
乍看上去,闪电贷成了整个区块链安全性的威胁——毕竟,它使得攻击成本更低了,也使得很多原本不会出现的攻击出现了,对于任何DeFi项目和他们的投资者而言,闪电贷算是导致他们遭受损失的罪魁祸首;但从另一个方面,闪电贷似乎也并不能凭空获利,它只是放大了原本就有的漏洞可能造成的损失罢了。从这个角度讲,闪电贷其实起到了督促项目方完善自己的智能合约并认真审视安全问题的作用,相比于一个金融创新,它更像是DeFi安全性的一个零门槛提供的检测基金,来鼓励有技术的白客也好,黑客也罢,用这笔免费的钱来测试DeFi的安全性。
行文至此,DeFi已经慢慢地成长为一个不可小觑的领域。下一篇我们再来聊聊DeFi的大爆发,关注点赞,咱们下期见!
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!