想知道什么是清算和预言机?告诉你DeFi是什么(一)

  • maxdeath
  • 更新于 2021-05-28 11:29
  • 阅读 5150

聊聊DeFi是怎么在人们想要“赚钱”的需求中产生的,也就是DeFi赚钱背后的逻辑。

DeFi是去中心化金融(Decentralized Finance)的简称,当然,这点不用我说,大多数人会点进来看这篇文章的人都已经知道了。

当然,其实无论是问“DeFi是什么”也好,问“区块链是什么”也好,一大半都只是想知道该怎么赚钱?很可惜,除了好好学习努力工作之外,我也没有什么赚钱的门路。所以在过去的文章中,我只谈技术和理论,很少谈和钱有关的事情。

但是这回我准备破个例——因为我确实最近看了看关于DeFi的东西,而大部分多少都有点不接地气——要不然从金融的角度讲,要不然从区块链的角度讲,要不然干脆就是从DeFi的角度讲。

但对于吾等俗人来说,我们单纯地只想知道DeFi怎么挣钱,而金融这个东西,说白了目的无非就是赚钱,而说白了也就是因为人们有“赚钱”的需求所以才应运而生的。所以这次我们主要就来讲讲赚钱这回事——聊聊DeFi是怎么在人们想要“赚钱”的需求中产生的,也就是DeFi赚钱背后的逻辑。

赚钱的逻辑

首先,我们知道赚钱的逻辑,或者说投资的逻辑很简单,无非就是把你的钱放到钱能生钱的地方去——你的钱放着没啥用,而外面别人消费要钱、买房要钱、企业扩大生产要钱、国家或者大企业发展要钱、保险赔偿要钱……于是,你把钱给他们,你的钱就能生钱了。但是有的时候你不知道给谁更靠谱,也不知道给谁回报高,于是你就把钱给银行,或者给保险公司、基金经理、私募基金等等等等……

然后,这个时候旁边还有个叫比特币的东西——你发现把钱换成比特币也能生钱。为啥呢,因为比特币作为当下最有名的数字货币和区块链项目,它的价格一定程度上会反映数字货币市场和区块链领域的繁荣程度,从这种角度,买比特币,有点像是在买区块链产业的股票。

但当你长期持有比特币或者进入这个圈子之后,你对于比特币的看法就会出现变化——原本,它似乎是个和股票、基金、理财式的投资品。但当你手上持有了几个比特币而且并不打算卖掉的时候,它就成了你在数字世界中的某种资产——你放在比特币账户里的比特币,或者是你放在交易所里的比特币的数量就固定了。这个时候你就会开始想——我的钱放在银行里还会变多呢,可是变成了比特币怎么就不变了呢?在数字世界里就没人缺钱,就没有什么可以生钱的地方了吗?

当然有——炒币嘛……

对于炒过币的人来说这简直就是个理所当然的问题,甚至,他们都不会有上面这种疑问——

“炒币还分什么币么?难道不都是找个交易所,然后哪个币涨得快买哪个么?”

也就是说,如果嫌比特币涨得慢,那么就在中心化交易所里把比特币换成别的涨得快的币,然后当涨得快的币不涨了再换回比特币。

当然这个逻辑在实操中问题很大——因为加密货币价格太不稳定了,而且通常一跌大家一起跌,于是你无论换成哪个币都是跌的。可是要是换成法币的话,一般得收一笔不菲的手续费,这个时候就需要一种“在虚拟世界,但是价格锚定法定货币”的货币来支持大家想要“赚钱”的这个逻辑,于是,稳定币应运而生

稳定币

于是就出现了USDT。USDT是个叫泰达(Tether)的公司“号称”存了等量的美元,然后发行在以太坊上的一比一锚定美元的虚拟货币。USDT因此被称作“稳定币”。

当然,其实人人都知道USDT不靠谱,因为谁都不信泰达公司有这么多美元存着。但有了稳定币之后,虚拟世界钱生钱的游戏才能玩起来——今天比特币涨得好,买比特币;明天xx币要ICO了,肯定暴涨,买xx币;后天都不好,赶紧换成稳定币避险。所以不是USDT需要交易所的认可,而是所有的交易所都需要这么一个相对来说可以被认可的稳定币。没了稳定币,他们怎么让所有人心甘情愿地将币存进交易所,支付交易费,然后只不过是将交易所内的一个帐号里的数字换到另一个账号里呢?既然交易所能够不需要任何许可和牌照,没有任何监督地处理上百亿的资产,那么哪来的立场去计较泰达的问题。

因此,只要虚拟货币币价没崩,没人会去找泰达公司的茬看看它真的有没有存那么多美元,各大交易所也就都假装不知道泰达公司的那些破事,认可1USDT=1美元。至于以后,反正渐渐会有新的更好的稳定币取代USDT的地位,到时候USDT的事再说。

但在虚拟世界,尤其是在DeFi的版图里,USDT却不是一个好选项。因为DeFi的基本结构是建立在一个个的智能合约基础上的,而如果其中某一环绑在USDT这样的定时炸弹身上,这样无异于是让泰达公司掌控了DeFi。而且,其实我们需要DeFi最重要的一个理由,其实也就是替代现在这些我们明知道不靠谱但是却不得不用的虚拟货币的中心化金融机构,比如稳定币USDT,比如中心化交易所。

所以,我们需要一个去中心化的稳定币,也就是说,一个不锚定链下资产而是锚定链上资产的稳定币。

于是,DAI出现了。

DAI是由MakerDAO项目发行的,一比一锚定美元的稳定币。但是它锚定的方式对于深信区块链“去信任”的思想的人来说,似乎要比USDT那种“我叫泰达公司,我说我在银行里存了等量的美元”更靠谱一些。它的发行是通过一个借贷的智能合约(智能合约的概念在这就不赘述了,简单说就是一个以太坊系统中的程序)来实现的:每个人都可以通过抵押一定数量的ETH(以太币)来换取和美元1:1锚定的DAI。这里,DAI采用的是超额抵押的形式,也就是如果你抵押价值150美元的以太坊,那么只能换来价值100美元的DAI。然后,这个智能合约中写定了,如果你在某个时间内归还这100美元的DAI并且付一部分利息,那么你就可以拿回自己抵押的以太坊。

换句话说,我们可以这么理解:有个叫做M的人对所有人说“你抵押以太坊给我,我就借给你DAI,这个DAI和美元是1:1兑换的。只要你能够在期限内还掉这笔DAI(再加一点利息),我就把ETH还给你。”接着,由于所有人都看到这个逻辑是智能合约保证的,也就是相对于泰达公司那样“你相信我不会做手脚”,我们能够通过这个智能合约的逻辑看到M在其中确实做不了手脚,于是有交易需求的人就去换这个稳定币DAI来做交易。而接着由于这个智能合约是透明的,大家也都能看到M那里确实抵押着超过他发行的DAI的资产,所以,也就都认可DAI和美元1:1兑换。

这看起来好像很不错,但是这里面有个问题——以太坊的价格是会变动的。而且,虚拟货币的价格变动可是相当剧烈的,如果遇上以太坊暴跌了怎么办?那么原本值150美元的以太坊可能瞬间就不到100美元了,这个时候抵押的资产不如我贷出来的资产多,DAI的价格就不可能再锚定美元,因为大家都能看到:DAI不值那么多钱了。

怎么解决这个问题呢?超额抵押的作用就显出来了——即便以太坊价格波动幅度再大,但是从150美元跌到100美元总归还需要些时间。而这就给资产清算的空间:首先,我们规定抵押物不得少于150%的贷款,也就是如果以太坊涨了没关系,但是一旦跌了,你得立刻补仓到150%,否则你的抵押物会进入清算的智能合约。换句话说,也就是你和M的借贷合同失效了,M现在有权处理你的抵押物。于是,M向大家拍卖“我这里有以太坊打折甩卖了,大家快来买啊。”这个时候,如果有人认为以太坊不会继续跌了,或者有信心在它跌到100美元以下之前把它再卖掉,他就可以在这个时候成为“清算人”,用DAI来买进这些超过100元价值的以太坊:比如花100美元买到了120个以太坊。这其中的差价会退回给借款人,“你看,这是你抵押的以太坊,由于你不还100DAI也不补齐保证金,我就把你的以太坊贱卖了(值120美元的以太坊卖了100),这是剩下的10美元的以太坊,你拿走吧。”

640 (图来自Tom Schmidt 在medium上的这篇精彩的关于清算人的文章:https://medium.com/dragonfly-research/liquidators-the-secret-whales-helping-defi-function-acf132fbea5e

预言机

这里还有最后一个会让追求“去信任”的人不那么舒服的地方——我们要怎么知道以太坊价格跌了呢?

很多人会觉得这不是很简单吗?随便打开哪个交易所,或者去coinmarketcap上一搜不就知道了吗?

但对于区块链而言,这里问题很大:我们等于还是需要做一个信任假设——信任喂价的这个机构给出的价格1,靠谱;2,不会恶意制造不一致。后者的后果很严重,如果从一个不可靠的信息源读取信息,那么如果这个信息源对不同的矿工给出了不一致的信息,又或者在不同时间给出了不一致的信息,都可能导致整条链分叉。但这种情况相对好说,因为这里毕竟有个“理性原则”在——比如说如果DAI采用了MakerDAO项目选出的一个委员会给出的价格信息,那么至少,这个委员会由于MakerDAO本身的利益,没道理会去主动提出不一致的信息来误导区块链分叉。当然,他们自己的程序出了bug或者被黑客入侵的情况除外。

但前者,也就是靠谱这回事就很难说了。实际上,我们总是免不了需要从链外读取信息,但从链上的视角看过去,我知道链上的信息都是靠谱的,因为所有这些都通过了区块链的共识节点的验证;但我们没法保证链外的信息是靠谱的,除非它们也得到了所有区块链共识节点的验证(那么它们其实就变成了“链上信息”),否则的话,它们永远是“别人告诉我”的信息,我总得纠结一下“这个人是不是信得过”。

为了避免这种纠结,大家沿用了密码学领域的一个“预言机(Oracle)”的概念。

(图:不是那个oracle公司,而是这个“先知”)

也就是我们假设有这么一个“先知”,它对于链外信息的观察总是准确的,并且总是一致和诚实的。然后,在实现我们的应用的时候,比如做稳定币DAI,我们假设有个预言机存在。但实际上,这个对于币价的预言机真的存在么,至少在目前,我们还不能说它是可靠的。但在当下,对于任何DeFi项目实际上是个类似于USDT的“我们知道可能不靠谱,但是我们目前不得不用”的东西。

有了这个清算机制,再加上足够高的超额抵押,一个去中心化的稳定币就造出来了——于是,我们可以放心地拿这个稳定币去炒币了。

但关键工具到位了,还差钱。

资产跨链——以太坊上也有比特币?

区块链和加密货币的世界里,无论从体量、交易量还是用户人数来讲,比特币都还是当仁不让的龙头老大。而中心化交易所中,比特币的交易量还是遥遥领先,超过以太坊一个量级。

于是,如果去中心化金融仅仅能够在以太坊上用ETH交易DAI,那么它仍旧只能是小众的玩具,因为BTC才是虚拟资产的大头——如果DeFi不能让大家炒比特币这么个最值钱的玩意,那还好意思叫自己去中心化金融?说是去中心化交易,结果不是以太币就是以太坊上发的其他ERC代币,今天这个涨明天那个跌自己交易来交易去的,就跟你去银行买基金结果只能买银行自己的基金一样……这听着不跟闹着玩似的么?

于是DeFi起飞前的关键一步,是怎么把比特币这个最重要的去中心化资产引进DeFi。

这里,就用到了资产跨链的技术——

资产跨链的原理其实和稳定币并没有什么差别——稳定币是我们需要将一个现实中的货币搬到以太坊上来,而资产跨链则是将比特币搬到以太坊上来。但这里其实我们用不到发DAI的时候那么麻烦,还记得泰达公司是怎么发USDT的吗?它先存一堆美元,然后发等量的USDT,然后说对应每个我们发的USDT都有一个现实存在的美元被存起来了。但问题是,没有人知道泰达公司是不是真的存了那么多美元。

但比特币不是泰达公司,比特币的账本是公开的。

于是,比特币跨链就很简单了——某些公司,我们姑且成为公司W,宣称他们自己非常非常可靠,然后让大家把比特币打到他们的账户里,然后这笔钱就在比特币里被锁住而不会动用,甚至,他们可以宣称因为某些密码学的原理,他们无法轻易动用这笔钱。

然后,你每把一个比特币交给W公司锁定,那么W公司就在以太坊上给你发一个wBTC代币,并且宣称如果你把这个wBTC代币发还给W公司,W公司会还你一个比特币(这点在未来也可以通过智能合约实现,但是目前由于比特币的功能所限也没法做到)。于是,我们就有了一个叫做wBTC的,价格和比特币绑定的代币。又或者说,我们把比特币跨到了以太坊上。同样的原理可以用在任何区块链上进行资产跨链,尤其是对于和以太坊一样图灵完备的区块链而言,无论是资产锁定、跨链还是解锁,都可以通过部署智能合约来实现——这样就是一个理想状态下的资产跨链了。

但wBTC并不是这种理想化的资产跨链。从逻辑上讲,其实wBTC和USDT差不多,都需要对于某个中心的信任。但W公司至少比泰达公司强的地方在于,至少锁定的那些比特币大家是看得到的。所以,在W公司作恶之前,我们都还可以相信wBTC和BTC的价格相等。

去中心化交易所(DEX)的第一形态——订单簿

现在,有了wBTC,我们就激活了DeFi的重要一环——现在,在以太坊上,我们就有了比特币,以太币和稳定币这三种炒币必须的资产,再加上其他发在ETH上的代币,以及其他链上跨过来的资产,DeFi的世界已经初具规模,于是,我们怎么炒币呢?

很显然,我们总不能拿着这些币去中心化交易所交易,那样还叫什么DeFi。

于是我们需要去中心化交易所,而去中心化交易所实现起来却有一个严重的问题——定价。

根据初中的经济知识,我们知道一个东西的价格是供求关系决定的——一个东西需要的多了,或者供给的少了,那么价格就会涨。假设有A和B两种货币,如果大家都想要卖了B买A,那么A就会涨价B就会跌,很简单的道理。

那么我们来想象中心化交易所是怎么定价的,假设你是交易所,有A和B各10000个,你来到市场准备让人来你这进行交易,那么,今天你该如何决定两者交换的汇率呢?

很显然,如果你不是这世界上唯一的A和B的提供者,那么你就该看看别人的汇率是多少。如果别人的都是一个A换一个B,你说我一个A可以换两个B,那么别人肯定疯狂从别人那里买A到你这换B然后再到别人那去买,直到把你的B币都买完为止,所以你的汇率肯定得跟别人保持一致。当然,其实这事也容易,各个交易所肯定也都是这么想的,所以每个交易所肯定都会随时观察其他大交易所的汇率,以此为参考来决定自己的汇率。

因此,如果你只是个小交易所,那么你的定价策略很简单——跟着大交易所走就完了。也就是说,你在自己的交易所里,直接读取大交易所的汇率。这个时候有人说“我要换B币,给你10个A”,你就看看大交易所那边看来的最新汇率,然后说“好,根据最新汇率,给你15个B。”

但这个事对于去中心化交易所是行不通的——因为去中心化交易所的背后是个智能合约,而按照以上的逻辑,这个智能合约会这么写:

IF 某甲给我x个A要换B    
THEN    
    从某p处读取C交易所的A/B的当前汇率r
    计算y=x*r
   给某甲y个B

这里就出现了问题——你需要在某个固定的地方p来读取这个汇率。但在区块链上写这种代码非常危险,因为这个地方p可能是不安全或者是不可信的。于是,如果用这种方法做去中心化交易所,还是得用到前文提过的预言机。但前面也说了,预言机这东西目前还不靠谱——借贷用预言机虽然也有风险,但是相对而言,它对于实时性和准确性要求没有那么高,如果稍微和市价出现了偏差,也不过可能早触发一些合约的清算而已。但交易就不一样了,价格稍有偏差很可能就是不可估计的损失。

于是,DEX只好先用笨办法——订单簿。

订单簿是啥呢?其实就是最简单的方法——比如你要用10个A换15个B,那么我记下来。然后一会又来了一个人说我要用15个B换10个A,我说太好了,正好配对上了。于是,我就在链上生成一笔交易,把你们俩的币互换。这个时候汇率其实就是给交易的双方做参考用的——建议你用这个汇率容易找到配对。这样一来,去中心化交易所只是把交易双方的需求匹配了一下放上链,就不存在智能合约读取链外汇率信息的问题了。

(图:订单簿实际上是传统金融中,尤其是证券市场中的经典交易形式)

不用说大家也能看出来,这方法有很多缺陷。无论这个DEX做得多么用户友好,它对比中心化交易所效率一定是很差的——可以想象,首先币价波动的时候很难找到匹配,其次小币种肯定也很难找到匹配,然后交易延迟应该也不小。

但相对于中心交易所,它还是有唯一的优势——靠谱。毕竟,中心化交易所里交易的币只是人家服务器里的数字,DEX里换到的币才是真的币。但代价除了效率之外,以太坊的交易费是免不了的。而且,由于订单簿的配对还是由中心服务器生成的,只不过双方的交易最终被上链了,所以仍旧有中心服务器拔网线的风险。

好的,DeFi的几个核心组建已经集齐,下篇我们再来聊聊DeFi是如何一步步发展壮大的,关注点赞,咱们下期见!

点赞 6
收藏 8
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
maxdeath
maxdeath
代尔夫特理工大学 (TU Delft) · 区块链博士后 & 代尔夫特理工大学 (TU Delft) · 信息论博士