最近在Mixin特别火的一个词是Pando,目前已经发布的项目有Pando Lake、Pando Leaf、Pando Rings和一个目前(2021.09.20)还没有公布的神秘项目Pando Root。
要想玩好一个东西,得先了解它。
于是,在写了Mixin安全性探索文章后,开始了对Pando的了解,并边了解边记录,写下了此文。
文章依然免费,依然有点长……还全是文字,真是又臭,又长,又硬。
这是Pando系列探索的第1篇,Pando系列探索:
-
理解swap的工作机制,什么时候,选择什么特性的币做市
-
了解拍卖规则,才有机会稳赚不赔
-
Pando Rings是一家银行,看图理解Pando Rings以及它和Pando Leaf的同异之处。
依然…
如果你觉得这篇文章对你有帮助,点赞、转发和打赏都是对我莫大的认可和鼓励。
如果你能帮我修正、完善此文,那将是最大的认可和鼓励。
Pando Lake
下面,正式开始,当然要先从官网入手了,Pando的官网是:
通过Pando Lake的介绍,我们可以知道,Pando Lake是4swap的一个Broker,但是不同的是,Pando Lake上的交易对儿是精选版。
所以,理解Pando Lake就得去理解4swap了。于是,大家可能想,这个我懂啊,没什么好看的了,请先看到下面的部分“问题来了”。
打开Pando Lake和4swap的机器人,还有另一个同类产品ExinSwap,可以看到他们的功能都是类似的,结构也不复杂,我们可以快速的在大脑中,建立一个模型。
大致上,可以理解为,他们都是币的交易市场,我们可以在他们里面买卖币,需要交一点手续费,这些币是由其他人存进去的,存币的人为市场提供了资金流动性,可以分得手续费。
问题来了
可在实际使用的时候,问题就来了:
- 对于交易的人,页面上那个价格影响是什么意思?价格滑点又是什么意思?我交易的价格合适吗?
- 对于提供资金流动性的人,风险提示中说币价波动会对我有风险,我出币分手续费,我为的是赚手续费啊,我出的币我又没买卖,这不应该是稳赚不赔的买卖吗?怎么还有风险呢?
看来,要想在里面买卖币和提供币赚手续费,不是表面的模型这么简单,得进一步了解。
于是,注意力自然就放到了规则的制定者,交易市场上,这个市场是怎么工作的呢?
交易对儿
在4swap的官方说明中https://4swap.org/docs ,我们可以了解到,4swap通过算法,可以创建一个由2个币组成的交易对儿。
这里,我特意使用了交易对儿,而不是交易对,因为交易对儿听上去更像个名词。
以pUSD和BTC为例,通过定义,可以知道,当我们创建一个由pUSD和BTC组成的交易对儿时,这里面有三个元素:
- pUSD
- BTC
- pUSD-BTC交易对儿
这时,就可以有一个市场,并产生如下的市场关系:
- 有人同时提供pUSD和BTC给市场
- 市场可以吸收这些pUSD和BTC,并用4swap协议将pUSD和BTC创建交易对儿给提供币的人,以此为据和比例分手续费
- 市场有了pUSD和BTC,人们就可以来这个市场买卖BTC
4swap、Exinswap就是这样的市场,Pando Lake是4swap的营业网点之一,提供了部分的精选交易对儿。后面解释到了,什么是精选的交易对儿。
市场创建交易对儿用的算法是x*y=k并做市,称为恒定乘积做市商模型。
看来,要想理解整个市场的工作机制,就得理解x*y=k这个算法,以及交易因为这个算法对市场中币产生的什么影响。
x*y=k恒定乘积,无常损失
以pUSD和BTC为例,这个市场总会有第一笔钱进来。
比如,最初1BTC=1000pUSD时,用10BTC和等值的10000pUSD创建了BTC-pUSD交易对儿。
因为恒定乘积公式中的x和y分别是组成交易对儿的两种币的数量。
所以,对于上面的例子,x就等于10,y就等于10000,k就等于他们的乘积100000。
在这个公式的约束下,如果别的市场BTC涨价了,需要用1200pUSD来换1个BTC时,就会有人来我们这用1000pUSD来换BTC,因为我们市场的BTC更便宜。
怎么算的呢?
恒定乘积的意思就是要维持k不变,所以这个交易等于:(10000pUSD+市场增加的pUSD量)*(10BTC+市场减少的BTC量)=100000
即(10000+1000)*(10+市场减少的BTC)=100000,所以市场减少的BTC就等于100000/11000 - 10 = - 0.909BTC,即有人用1000pUSD在我们这得到了0.909个BTC,相当于用1100pUSD买到了1BTC,比外面用1200pUSD买BTC便宜。
市场中的两种币也就变成了11000pUSD和9.091个BTC。
可见,这个公式就好比一个跷跷板,为了维持平衡,跷跷板一头涨价了,相应数量就减少了,而另一头数量就增多,来维持平衡。
如果这时候,你想把交易对儿换成币,就能得到11000pUSD和9.091个BTC,全换成pUSD等于11000pUSD+9.091BTC*1200pUSD=21909pUSD,假如你的10个BTC和10000个pUSD没有拿来提供流动性,他们现在值:10000pUSD+1BTC*1200pUSD=22000pUSD。
看,你的资产缩水了22000-21909=91个pUSD。
这就是因为币价波动给你提供流动性带来的损失。
假如,别的市场中,BTC价格由1200pUSD又降回到了1000pUSD,因为我们这里1BTC等于1100pUSD,所以,就会吸引别人来我们这用BTC换pUSD。
刚巧,有人来用0.909BTC换pUSD,根据(11000pUSD+市场减少的pUSD)(9.091BTC+市场增加的BTC)= 100000,即(11000+市场减少的pUSD)(9.091+0.909)=100000,所以市场减少的pUSD = -1000pUSD,即有人用0.909BTC得到了1000pUSD。
市场中的的BTC和pUSD数量又回到了10和10000。
如果是这时候,你想把交易对儿换成币,就能得到10BTC和10000pUSD,跟最开始提供流动性币的数量一样,价值也还等于20000pUSD,即本金没变,白赚了手续费。
这时,就没有了损失,所以,如果币价变动后,没有用交易对儿兑换成币,我们的亏损就只是账面浮动亏损,只有兑现交易对儿,才回会变成实质盈亏。
这就是无常损失。
自己也可以算一下,BTC价格下跌,一样会产生无常损失。
总的来讲,就是BTC涨价了,低价了,我们都会产生无常损失;
BTC涨的越多,我们兑换回来的BTC就越少。
滑点
前面的例子流动性没有发生变化,也没人跟你抢着买。
我们新增一个变量,交易时产生竞争。
当有人用1000pUSD换走0.909BTC后,我们市场中的1BTC变成了1100pUSD,也就是说,我们市场的BTC也涨价了,当再有人用1000pUSD换BTC时,等式变成了,(11000+1000)*(9.091+(-0.76))= 100000,即现在,用1000pUSD换走了0.76BTC,市场中1BTC变成了1315pUSD,可见,购买导致BTC价格上升,而且,超过一定量之后,可能以高于其他市场的价格买到BTC,所以,当购买时,有竞争存在时,会发生你无法以当时比例关系的pUSD换到BTC,为了能成交,只能以更多的pUSD买到本来想买的BTC,这就是滑点。
很显然,如果市场中,货特别充足,就不要出高价才能买到相应数量的BTC,也就是说,滑点,跟资金池的大小,交易深度越深,滑点越低。
产生滑点,还意味着,pUSD会相对过剩,因为本来按交易时的价格,应该1200pUSD就能换到1个BTC,但是为了竞争,我可能出了1300个pUSD,但还是换到了1个BTC,也就是pUSD相对BTC贬值,这就意味着,有人可以在这用BTC换到更多的pUSD,这样,资金池中的BTC会增加,pUSD会减少,这种套利,就会使价格趋向于真实市价。
最终结果,就是通过套利,使我们市场中的价格与外部市场价格保持一致。
再看流动性,因为市场通过手续费激励流动性提供者,所以市场中的资金就会越来越多,资金越多,兑换量对于整体流通量而言就没那么大,就不会有那么大的滑点,甚至只是可以忽略不计的滑点。
这样,通过套利使价格保持一致,通过手续费刺激提供流动性,流动性越大滑点越低,交易越能合理、顺畅的完成,以此形成了一个良性的循环,交易的人越多,频次越多,产生的交易费越多,提供流动性的人就越多。
好的交易市场,最终目标,应该是流动性足够充足的交易市场,面对大波动也足够充足顺畅,不会发生一爆雷,就很难以设置的价格成交,甚至被停止交易,出不来,跑不掉,涨上天又怎样,基于x*y=k恒定乘积自动做市的去中心化市场,就会成为一个好的交易市场。
总结
至此,总结一下,上面BTC相对于pUSD价格的涨跌变化,可以抽象为任意两种币的相对价格,对儿中的币就像坐在跷跷板的两端,因相对价格变化,此消彼长。
如果在一段时间里,这两种币相对价格维持不变,就没有无常损失,流动性提供者就在这个过程中赚到了波动过程中交易的手续费。
这特别适合两种交替领先的币,比如BTC和BOX,如果把BOX当成一种币来看,因为,BTC领涨,BTC的涨速就高于BOX,BOX中其他成分领涨,BOX涨速就高于BTC,但是BOX最大比例的成分是BTC,且BTC市值巨大,因此两者价格就不会偏离那么大,除非再很久之后,BTC的市值占比大大降低。
如果对于稳定币和其他币而言,比如BTC和pUSD,从特别长久的角度看,BTC会相对越来越贵,交易对儿中,BTC的数量就会持续下降,所以,对于早期参与做市的资金,BTC就会贬没,长久看,如果在特别长久之后兑换交易对儿,无常损失就必然会兑现成为实际的损失,这就需要考虑,手续费年化收益率跟两种币相对价格偏离速度的关系,才能以手续费弥补币价损失。
通过定投交易对儿,也能一定程度弥补无常损失,因为简单讲x*y=k公式,相当于BTC贵了,对儿里面BTC就少了,BTC便宜了,对儿里面BTC就多了,定投对儿,就额外放大了定投的因数,相比固定金额买BTC,这样能让BTC贵的时候买的更少,便宜的时候买的更多。
如果不从特别长久的角度看,稳定币和其他币组成交易对儿,适合在一个小周期内的震荡期内做市。因为一个长周期分为一个个小周期,小周期内会交替呈现为单边上涨,单边下跌和横盘震荡,无论单边上涨还是单边下跌,都会有较大的无常损失,而横盘震荡,市场里的人会被反复割来割去,换手频繁,产生大量的交易费。
对于币的选择,因为交易费意味着交易频次得够多,那这币要么群众基础好,要么特别热投机性特别强,但是投机性特别强容易出现单边行情,无常损失超过手续费得不偿失。因此,就要选择群众基础特别好的币做交易对儿,我想这就是Pando Lake的定位吧。
回到一开始的问题,上面我的理解,就告诉我:
- 作为买者,资金池大了,交易深度够了,滑点小了再交易,资金池不够大,风险很大;
- 自动做市是一个什么机制,让买者有套利机会,为什么能套利;
- 作为流动性提供者,如何降低无常损失,赚到手续费,什么情况的时候,什么特性的对儿,可以避免无常损失。
分析到这,就还看出一个问题,因为我们的市场其实在一定阶段还需要靠利差吸引场外的人套利来壮大市场,也能吸引更多的资金流入Mixin网络,因此想在这个市场上来套利的人,最好就能在Mixin里看到一个足够公开透明的行情系统,以此参考作为反复交易的价格参考依据,甚至能依此进行自动化量化交易套利,Pando Root会是一个行情系统吗?
由于本人的认知局限性,可能上面的理解有很多不足,遗漏甚至错误的地方,希望得到你的答案。
【坎宁汉姆定律(Cunningham’s Law)】
在互联网上获得正确答案的最好方法并不是去问一个问题,而是发布一个错误的答案。