一种安全的 LP 价格的获取方法:以Alpha Finance为例_DEFI:ICE

前言

目前,使用LPToken进行抵押借贷的需求越来越大,但是目前市面上并没有一种完善的用于安全获取LPToken价格的方法。慢雾安全团队在分析LPToken价格的获取方式的过程中关注到了AlphaFinance团队的关于安全获取LP价格的方法。在仔细阅读后,将相关的思考分享给大家。

LPToken价格获取分析

目前,常见的LPToken价格的获取方式如下:

其中,r0,r1分别代表Uniswap交易对中两种代币的存量,price0,price1分别代表r0和r1对应代币的价格。上面的公式简单来说就是算出交易对中两种代币的总价值之和,然后除以LPToken的总数量,得到了单份LP的价值。

这个公式咋一看没什么问题,一般来说,price0和price1都会取Uniswap本身提供的延时价格。但是这里存在一个被闪电贷攻击的风险。虽然price0和price1是不能操控的,但是r0和r1却是可以操控的。通过操控r0和r1的值,即可对整个公式进行操控,具体可参考慢雾文章《采用延时喂价还被黑?WarpFinance被黑详解》

滴滴公开一种“用于仲裁区块链中数据真实性的方法和系统”的专利:3月9日消息,天眼查显示,3月9日,滴滴关联公司北京嘀嘀无限科技发展有限公司公开一项“用于仲裁区块链中数据真实性的方法和系统”的专利,公开号为CN111201751B,申请日期为2018年9月26日。

其中,该专利摘要显示是一种用于仲裁区块链中的数据真实性的方法和网络节点。所述方法包括:通过仲裁网络节点接收用于仲裁数据真实性的请求,其中所述仲裁网络节点是区块链中多个网络节点之一;以及通过所述仲裁网络节点基于所述仲裁事件中包含的信息处理所述仲裁事件,生成仲裁网络节点的仲裁结果,并将所述仲裁结果提供给区块链等。 ?

?[2021/3/9 18:27:40]

那么有没有办法能获取一种安全的LPToken价格,使代币的存量无法被操控呢?AlphaFinance团队提供了一个思路:

江标:DeFi挖矿的形态是一种相对低成本获得价值的一种方式:IPFS100.com现场报道,9月20日,由节点咨询主办,WAVES、金色财经、IPFS100联合主办的“DeFi崛起 引领矿业新思潮”共为创业者大会·鹭岛分论坛在厦门举行。

在圆桌讨论环节中,中国工信部电子商务专家,中国国务院商务部区块链沙盒研究院中心专家江标表示,DeFi挖矿的形态是一种相对低成本获得价值的一种方式,比二级市场价格低。第二催生的行业往前推动,同样给予我们很多思考的方向。比如在未来会有越来越多一些有初心的项目方不再像过往通过模式模型或其他的方式获得他人的认可和支持,也会在DeFi的形态上做应用。毕竟相对比较去中心化,也有足够的想法和能力实施想要做的一件事。

所以阶段性来看,可能很多弊端看到了,但实际上一种金融形态一定会有不足的地方,并且我对DeFi的认识是加密时代第二个伟大阶段,可能在未来人人都可以通过DeFi的特征形式出售我有价值的东西,其实是一个好的方向和好的事情。

阶段性如果非得从金融风口上拉上去放下来,觉得大部分人就没有太大的意义,因为本质上来说是在区块链领域一种新的探索和新的构思,不代表身上一些不太成熟的,还不能够解决特定性问题的条件,比如像在以太坊发DeFi就有两个问题,一个手续费很高,二是扩容性并不强,这就导致并不是一个开放包容性的基础网络,不是一个重要性的金融平台,门槛相对比较高,很多人就不能去挖矿。但是在这来可能有越来越多的公链自己能够在特定的领域和范畴内把自己的事情放到特定的平台上做,让他自己的用户通过这种形态完成链上链下的协同治理,更好的参与到一个项目上。我觉得DeFi不管是现在怎么样,一定会催生出我们越来越多的构想,可能会在很长一段时间内促使着我们创业者用这种方式更好的创业,更好的回馈社会。[2020/9/20]

根据AlphaFinance的分析,整个过程分为3步:

王佳超:DeFi的一个核心就是资产,跨链资产的交易也是一种刚需:9月4日消息,Neo全球生态发展总监王佳超在做客《HyperPay焦点》栏目时提及:首先,目前主要的Defi生态还是主要集中在以太上,上述的种种不便,以太坊我相信也在考虑,同时也值得其他公链在发展自己的DeFi生态时候也值得借鉴,但我觉得也不是代表其他公链没有机会,因为每条公链都有属于自己的资产在上面,Defi的一个核心就是资产,所以跨链资产的交易也是一种刚需。[2020/9/4]

第1步是通过Uniswap的getReserves接口获得交易对中对应代币的数量,算出K

第2步是获取交易对中每个代币对应的价格,然后算出代币的价格的比例P

第3步是通过K和P之间的关系反推真实的代币存量。

完成以上3步后,最终LPToken的价格获取公式会变成下面这个样子:

Reddit联合创始人:加密货币在自己的投资中是一种谨慎的对冲:5月24日消息,Reddit联合创始人Alexis Ohanian表示:“我已经有相当一部分时间拥有自己的一部分加密货币财富,对此我仍然感到非常满意。”“我不想改变太多,因为我确实认为这是一种谨慎的对冲。”此外,Ohanian表示,一些顶级工程师、产品开发人员、设计师在区块链上构建真正的解决方案,我们看到顶级人才正在这个基础设施上建设,对我来说,这是长期价值创造的最佳信号。(Decrypt)[2020/5/24]

这一波操作下来,好像有点整懵了,但是问题不大,我们来逐个分析。

首先,我们知道,Uniswap采用的是恒定乘积算法。简单来说就是x*y=K,也就是说,交易前后的K值是不会变的。在不讨论手续费的情况下,K值理论上是不会改变的。我们先记住这个前提。然后,获取交易对中每个代币各自的价格,比方说对USDT价格。这里以ETH-BTC交易对为例,假设ETH的价格为650USDT,BTC的价格为22,000USDT,那么ETH/BTC的价格比值P为0.03。在得到价格的比值P之后,直接用第1步得到的K计算K/P和K*P就得到了对应交易对的一个正常的数量。下面要对第3步,即获取正常的数量这一步进行相应的说明。

公式思路解释

比特币暴涨引发币圈口水战 究竟哪一种加密货币是真正的比特币:BCH硬分叉之后,关于BTC、BCH谁是真正的比特币的争论从没有停歇。BTC近日再度暴涨屡创新高,韩国交易所Bithumb交易价一度突破2万美元,市场表现上完全压制BCH,引发了币圈又一波谁是真正比特币的口水战。莱比特矿池CEO江卓尔凌晨连发数篇文章批评BTC core已沦为小团体的牟利工具,力挺BCH为真正基于P2P的支付货币。而另一位币圈大V宝二爷则在直播中断言,比特币就是BTC,有人鼓吹BCH是为了出货。[2017/12/9]

现在开始对上面的第3步进行说明,扶稳坐好:D

像前面说的,恒定乘积的公式为:

那么其实可以根据K来分别算出x,y。然后根据上一节的第2步,我们得到了x和y的价格的比值P。由于Uniswap本身是根据池中代币的比例来确定对应的价格,所以比值P本身就是x/y的价格的比值。然后,由于K=x*y,而P是由正确的价格算出的比值,那么,我们其实就可以以这个真实的K和x/y来反推真实的x和y。

推算如下:

首先,我们根据P和r0,r1的比例得出以下公式:

接着,根据P就可以倒推真实的r0,r1,如下:

那么,拿到了正确比例的x和y之后,LP的价格会是下面这个公式:

再转换成如下:

攻击的可能性

在完成公式分析后,我们不难知道,只要有正确的价格的比例P,就能根据这个比例倒推真实的r0和r1,最后得到公式:

那么,这个公式能不能被攻击呢?从公式上可以知道,公式的price0,price1都是可信源获取的正确的价格,这个值是无法被操控的,然后是totalSupply,这个值虽然可以操控,但是在控制LP价格进行攻击的过程中改变totalSupply只能是改变你的抵押数量,这个暂时没有用。那么剩下可以操控的只有r0和r1的值了。如何改变r0,r1的值呢?下面提供两种思路进行分析:

思路一:直接进行代币兑换

我们知道,在代币池中,无论是采用什么算法进行计算,代币池在进行代币兑换的过程中,必然会发生代币数量的改变,那么这种改变最终能不能操控公式呢?其实是不可以的。我们知道,在恒定乘积的模型中,x*y=K总是成立的,那么也就是说无论交易过程中怎么发生代币的兑换,K的值总是不变的(这里不考虑手续费的情况),而公式中采用的是r0和r1进行相乘,所以使用代币兑换来操控公式实际上是不可行的。

思路二:将代币直接打入到代币池中

这种思路比较粗暴,可以直接忽视K值来操控r0和r1相乘的值,但是经过我的运算,这种方法看似可行,其实是不行的。虽然达到了操控的目的,但是因为公式本身在获取最终价格的时候采用的是根号的模式,所以最后获得的收益是根号后的收益,比方说付出10,000的成本,最后只能获得最多100的收益,这样是明显不划算的。所以这种思路也是不可行的。

适用范围

本算法的适用范围仅限于适用AMM模型的代币池的LP价格的获取,因为整个推导过程都基于恒定乘积公式中K的基本特性来进行。获取的LP本身所属的交易对算法不使用AMM模型是不可行的,因为这种情况下,前面所有的假设都已经不成立了,那么对应的公式的推算自然也是不成立的。

总结

LP抵押已经成为了一种迫切的需求,在目前没有更好的方式(如ChainLink提供的LP喂价,Uniswap提供延时LP接口等),AlphaFinance的方式可以说是一种较为安全的实现方法,使针对数量进行控制的攻击变成不可行或成本非常高。当然,随着越来越多场景的出现,这种算法也不一定是万能的,项目方需要结合自身的场景,合理运用该算法,达到良好的效果。此外,特别需要注意的是,虽然公式的终极形式用的是开根号的r0,r1和price0,price1相乘,但是真正实现的时候,需要根据K来推导具体的r0和r1的值,不然会存在一定的误差。

参考链接:

AlphaFinance关于获取公平?LP价格的方法

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

[0:15ms0-0:993ms