读懂价格预言机的一切,学会如何安全地使用它们。
撰文:SamSun,知名白帽,加密风投机构Paradigm研究合伙人编译:PerryWangParadigm授权链闻翻译并发表该文章中文版本。
2019年末,我发表了一篇题为《从抵押不足贷款取乐并牟利》的帖子。我在文中描述了依赖于一个或多个代币的准确价格数据,对以太坊去中心化应用DApp的一次经济攻击。当前是2020年末,不幸的是,许多项目已经出现了非常相似的错误,最近的例子是HarvestFinance遭黑客攻击事件,导致协议用户集体损失3300万美元。
虽然开发者熟悉重入reentrancy等漏洞,但他们显然没有经常考虑价格预言机遭操纵的问题。相反,多年来基于reentrancy的漏洞已经下降,而基于价格预言机操纵的漏洞现在呈上升趋势。因此,我决定是时候得有人对有关这类操纵给出明确资源以提高安全意识。
本文分为三个部分。对于不熟悉这个主题的读者,这是一篇关于预言机和预言机操纵介绍的科普文章。那些想要测试知识水平的读者可以直接跳到案例研究,我们回顾一下过去一些与预言机相关的漏洞和攻击事件。最后我们总结一些开发者可以应用的技术,以保护他们的项目免受价格预言机操纵途径的攻击。
什么是预言机操纵事件?打个真实案例比方
2015年12月1日,星期三。你的名字叫DavidSpargo,当时正在澳大利亚悉尼观看澳洲「电音黑马」PekingDuk的音乐会。你可能想亲眼见到这支乐队,但两名安保人员挡住了你前往后台的去路,他们完全不可能让一个普通路人大摇大摆走进后台。
你可能想,如果你表现得像是后台人员,保安人员会有什么反应。家庭成员肯定会被允许参观乐队后台,所以你只需要的是说服保安你是乐队成员的一个亲戚。你考虑了一下,想出了一个计划,可能被称为天才计划,也许是极为拙劣。
准备妥当后,你自信地走向保安。你介绍自己叫DavidSpargo,PekingDuk的家人。当保安要求看证据时,你向他们展示无可辩驳的证据——维基百科。
埃米纳姆和Snoop Dogg将在Otherside中表演知名单曲“From the D to the LBC”:8月26日消息,据MTV官方社交媒体披露,在周日的本届MTV音乐录影带大奖中,Snoop Dogg和埃米纳姆将会把知名单曲“From the D to the LBC”带入到 Yuga Labs 推出的元宇宙平台Otherside是,“From the D to the LBC”音乐视频在两个月前发布,其中包含 Bored Ape NFT 的 2D 动画,但没有元宇宙镜头。数据显示,过去24小时Otherside元宇宙虚拟土地 Otherdeed 成交量已接近150万美元,涨幅达到224.86%。[2022/8/26 12:49:23]
DavidSpargo修改了PekingDuk的维基百科词条,在「家庭成员」加上了自己的名字,名场面:https://en.wikipedia.org/w/index.php?title=Peking_Duk&oldid=693419023
保安挥手让你通过,并让你等待。一分钟,两分钟。五分钟后,你想知道在警察露面之前是否该赶紧跑掉。当你正要离开时,乐队成员之一的ReubenStyles走过来做了自我介绍。你和他一起走到后台休息室,乐队对你的聪明才智印象深刻,最后和你一起喝了几杯啤酒。稍后他们还在Facebook页面上分享了所发生的事情。
什么是价格预言机?
价格预言机,笼统地说,是你咨询价格信息的东西。拿美剧《Office》中的剧情打个比方,当Pam向Dwight询问SchruteBuck的现金价值时,Dwight则充当了价格预言机的角色。
STEPN与知名品牌ASICS(亚瑟士)在Binance IGO联名发售虚拟球鞋NFT:4月12日消息,“Move to Earn”应用STEPN将与全球知名品牌 ASICS(亚瑟士) 在 Binance IGO 联名发售虚拟球鞋NFT,本次 IGO 共计将发布1000枚限量版STEPN NFT,单枚NFT售价0.5 BNB。准备阶段将于北京时间4月13日8点开启,申购将于4月16日10点开启。拥有两双运动鞋(Sneaker)的用户可以铸造一个包含新运动鞋的鞋盒。
据悉,该NFT系列可以在即将发布的基于BNB Chain的STEPN应用程序中使用。[2022/4/12 14:19:08]
在以太坊区块链中,一切都是智能合约,所以也是价格预言机。因此区分价格预言机如何获取其价格信息更有用。一种方法是只需从价格API或交易所中收集现有的链下价格数据,即可将这些数据引进到链上。另一种方法可以通过咨询链上去中心化交易所来计算瞬时价格。
两种选择各有优缺点。链下数据对波动性的反应通常较慢,根据你尝试使用它的用途,这可能是好事,也可能是坏事。不过通常需要少数特权用户将数据推送到链上,因此你必须相信他们不会变得邪恶,也不会被迫推送不良信息。链上数据不需要任何特权即可访问,并且始终是最新的,但这意味着攻击者很容易操纵它,可能导致灾难性故障。
可能会出什么问题?
简单看看一些整合不良的价格预言机对DeFi项目造成严重财务损害的案例。
SynthetixsKRW预言机误报
Synthetix是一个允许用户接触到其他货币资产的衍生品平台。为了撮合此类交易,Synthetix依赖于一个自定义的链下价格馈送实现机制,其中按照一组秘密价格馈送来计算汇总价格,按固定的时间间隔在链上发布。然后允许用户以这些价格对其支持的资产做多或做空头寸。
2019年6月25日,Synthetix所依赖的价格源之一误报了韩元的价格,比真实汇率高出1000倍。而由于价格预言系统其他地方的其他错误,这个价格被系统接受并发布在链上,其中一个交易机器人在SKRW市场快速进行买卖交易。
火币大学校长于佳宁与火币校友应邀参观金色财经、金色算力云等区块链知名企业:金色财经报道,12月16日,火币大学校长于佳宁与火币校友应邀参观了链上ChainUP。链上ChainUP创始人兼CEO钟庚发向校友们讲解了链上的生态业务和金色算力云的发展。随后参观了金色财经,金色财经CEO安鑫鑫向大家讲解了金色财经的发展。
据悉,金色算力云是由金色财经推出的算力销售平台,致力于为用户提供便捷安全的挖矿服务。基于团队的专业性,公司先后获得节点资本、ChainUP Capital百万美元的投资。[2020/12/16 15:23:01]
这个自动交易机器人最终赚取超过10亿美元的利润,虽然Synthetix团队能与交易者谈判返还了资金,取而代之给予其纠错赏金。
Synthetix正确执行了预言机合同,从多个数据来源引入报价,以防止交易者在链上发布之前预测到价格变化。然而一个上游价格馈送故障的孤立案例,导致了毁灭性的攻击。这说明了使用链下数据价格预言机的风险:你不知道价格是如何计算的,因此必须仔细设计系统,以便能正确处理所有潜在的故障模式。
担保不足贷款
如前所述,我在2019年9月发表了一篇帖子,概述了使用链上数据的价格预言机的相关风险。虽然我强烈推荐阅读原贴,不过其中有相当多且复杂的技术细节,可能使其难以消化。因此我在这里提供一个简化的解释。
假设你希望将去中心化贷款引入区块链。用户可以将资产作为抵押品存入,并借入由其存入的资产价值决定的、一定金额的其他资产。假设用户希望以ETH作为抵押品借入美元,ETH的当前价格为400美元,抵押比率为150%。
如果用户存入375ETH,相当于存入15万美元的抵押品。他们可以按每抵押1.5美元借走1美元,所以他们可以从系统中借到不超过10万美元。
知名钟表品牌百达翡丽已与Vidy达成合作在Vogue新加坡使用VidyCoin购买广告业务:全球首家发明视频隐形嵌入层的Vidy于12月15日宣布,其生态代币VidyCoin体系现已在Vogue杂志新加坡官网及手机端应用端支持世界知名钟表品牌百达翡丽(Patek Philippe)品牌广告的浏览即挖矿奖励。用户在Vogue新加坡网站文章内浏览百达翡丽广告视频,即可获得VidyCoin奖励,挖矿奖励活动将持续一周。
此前,11月24日,VidyCoin代币生态和钱包功能正式接入Vogue新加坡官方网站及手机端应用,将广告观看量提升了260%。Vidy目前已与全球超100家媒体公司、新闻出版机构和广告商达成合作协议,将会持续扩大区块链应用范围,为行业引入大规模用户。[2020/12/15 15:16:47]
当然在区块链中,不像简单地声明1ETH价值400美元那么简单,因为恶意用户可以简单地声明1ETH价值1000美元,然后从系统偷走所有的钱。因此对于开发者来说,非常需要最近的价格预言机的界面,如Uniswap、Kyber,或其他去中心化交易所中的当前现货价格。
乍一看,这似乎是正确的做法。毕竟,每当你想购买或卖出ETH时,Uniswap的价格总是大致正确的,因为任何偏差都会被套利者迅速纠正。但是事实证明,去中心化交易所的现货价格在交易期间可能非常错误,如下例所示。
考虑一下Uniswap留存资产的函数公式。其内部报价是根据储备持有的资产量计算,但随着用户在ETH和USD之间交易,储备资产不断变化。如果恶意用户在从你的平台获得贷款之前和之后执行交易,会怎么样?
用户在你的平台贷款之前,他们以200万美元买入5000ETH。Uniswap交易所现在计算价格为1ETH=2600美元。现在,他们的375ETH可以作为抵押品,可以贷走高达65万美元的资产,然后他们用原来的5000ETH换回200万美元,重置Uniswap内的价格。你的贷款平台则损失了55万美元。
知名基金经理对加密货币提出质疑:据华尔街日报消息,因正确押注次级抵押贷款而获得名人地位的基金经理Steve Eisman最近公开对加密货币的存在提出了质疑。他认为加密货币受欢迎程度有所上升,原因只有两个:投机和。他还称看不出加密货币的价值。Eisman因对2008年金融危机的预言而成名,让他赚了数百万美元,《大空头》以他为原型。[2018/5/14]
这一案例研究说明了使用去中心化交易所作为价格预言机时最常见的错误:攻击者在交易期间几乎完全控制了价格,要想准确读取该价格,就像在物品稳定之前读取重量计的读数一样。你可能会得到错误的数字,在一定情况下,可能会让你损失惨重。
SynthetixMKR操纵
2019年12月,Synthetix再次遭受价格预言机操纵式攻击。值得注意的是,此次攻击突破了链上价格数据与链下价格数据之间的障碍。
Reddit用户u/MusatheRedGuard观察到,攻击者正在针对sMKR和iMKR进行一些非常可疑的交易。攻击者首先通过买入sMKR而间接购买了MKR的多头头寸,然后从UniswapETH/MKR交易对购买了大量MKR。等待了一段时间后,攻击者售出其sMKR换成iMKR,然后将MKR卖回给Uniswap。然后他们重复了这个过程。
在幕后,攻击者通过Uniswap进行交易,使其可以在Synthetix协议中移动MKR的价格。这可能是因为Synthetix所依赖的链下价格馈送实际上依赖于MKR的链上价格,而且没有足够的流动性使套利者推动市场回归最佳价格配置。
该事件说明了这样一个事实,即尽管你认为你使用的是链下价格数据,实际上可能仍在使用链上价格数据,并且仍然可能面临使用这些数据所涉及的复杂情况。
bZx黑客攻击事件
2020年2月,bZx协议在几天内遭到两次黑客攻击,被黑客掠走约100万美元。在这里你可以看到一篇有关两次黑客攻击事件的优秀技术分析,但我们本文将只讨论第二次黑客攻击。
在第二次黑客攻击中,攻击者首先使用ETH购买了Kyber协议中几乎所有的SUSD。然后攻击者从Synthetix本身购买了第二批SUSD,并存放在bZx上。攻击者使用sUSD作为抵押品,贷取了所能允许的最大金额ETH。然后他们把sUSD卖回给了Kyber。
如果你一直在关注,你会认识到这基本上是相同的抵押不足贷款攻击套路,只是使用了不同的抵押品和不同的去中心化交易所。
yVault漏洞
2020年7月25日,我向yEarn报告了他们新推出的yVault合同中的一个协议漏洞。你可以阅读关于这一错误的官方材料,但我会在下面简要地总结一下。
yVault系统允许用户存入代币并赚取收益,而无需自己管理代币。在yVault内部,金库跟踪yVault代币铸造的总量以及存入的底层代币的总金额。单个yVault代币的价值取决于铸造的代币与存入代币的比率。金库赚取的所有收益都由所有铸造的yVault代币平分。
第一个yVault允许用户利用USDC向Balancer协议中的MUSD/USDC流动性池提供流动性来赚取收益。当用户向Balancer池提供流动性时,将获得BPT作为回报,该BPT可以兑换流动性池中的一部分资产。因此,yVault根据可使用BPT赎回的MUSD/USDC金额计算其持有的价值
这一实施似乎正确无误,但不幸的是,我们前文提到的危险原则同样适用:交易期间Balancer流动性池的状态不稳定,其价格无法信任。在这种情况下,由于Balancer选择的联合曲线,用户从USDC交换到MUSD不会得到1:1的汇率,但实际上会在流动性池中留下一些MUSD。这意味着BPT的价值可以暂时膨胀,这给了攻击者恶意操纵价格的漏洞,然后以此抽干金库。
这一事件表明,价格预言机并不总是很方便,开发者需要警惕它们正在摄入的数据类型,并考虑这些数据是否可以被非特权用户轻松操纵。
HarvestFinance黑客事件
2020年10月26日,一名未知用户采用一种你可能已经可以猜到的技术入侵了HarvestFinance的流动性池:攻击者通过执行交易来打压Curve协议流动性池中的USDC价格,以降低后的价格进入Harvest流动性池,再通过逆向操作先前的交易来恢复价格,然后以更高的价格退出Harvest流动性池。这给Harvest流动性池造成超过3300万美元的损失。
HarvestFinance官方事后剖析报告:https://medium.com/harvest-finance/harvest-flashloan-economic-attack-post-mortem-3cf900d65217
我该如何保护自己?
截至目前,我希望你已经学会了识别其共性:它并不总是很明显,你使用价格预言机,如果你不遵循适当的预防措施,攻击者可以过你的协议,卷走很多钱。虽然没有一劳永逸的解决方案,但下面是过去一些项目行之有效的解决方案。也许其中一个也适合你。
浅水市场不要冒进
就像跳水落到泳池的浅端一样,跳入浅水市场也是痛苦的,可能导致大量的开支,并永远改变你的生活。在考虑计划使用的特定价格预言机的复杂性之前,请考虑代币是否足够具有流动性,足以保证与平台集成。
一鸟在手,胜过两鸟在林
Uniswap上的潜在汇率可能乱花渐欲迷人眼,但在落袋为安之前,那些不过是镜中花,水中月。同样,确定两种资产之间汇率的最佳方法就是直接交换资产。这种方法很棒,因为没有回收,也没有不确定因素。但是这种做法对于需要持有原始资产的贷款平台可能不起作用。
近乎去中心化的预言机
依赖链上数据的预言机总结起来一个问题就是它们有点太新。如果是这样的话,为什么不人为引进一些延迟呢?编写一份智能合约,采用Uniswap等去中心化交易所的最新价格进行更新,但仅在少数特权用户请求时更新。现在即使攻击者可以操纵价格,他们也无法让你的协议来实际使用它。
这种方法简单易用,而且能快速奏效,但还是有一些缺点:在区块链拥堵的时候,你可能无法按期望的速度更新价格,仍然容易受到三明治攻击。此外你的用户需要相信,你会实际保持价格更新。
减速带
操纵价格预言机是一个时间极为敏感的操作,因为套利者时刻在关注,并希望有机会优化任何次优市场。如果攻击者想要将风险降至最低,需要执行在单笔交易中执行操纵价格预言机所需的两笔交易,这样套利者就不可能在中间横插上一脚。作为协议开发者,如果你的系统能支持,则只需在用户进入和退出系统之间部署短至1个区块的延迟就足以阻挡。
当然这可能会影响协议的可组合性,而矿工与交易者联手作恶也在不断增多。将来坏因子有可能在多个交易中执行价格预言机操纵,因为他们知道,他们合作的矿工将保证没有人可以在中间插入,从其盈利中分一杯羹。
时间加权平均价格TWAP
UniswapV2引入了一个TWAP预言机,供链上开发者使用。该文档详细介绍了这一预言机提供的确切安全保证,一般而言,对于长时间没有区块链拥堵的大型流动性池,TWAP预言机具有高度的抗预言机操纵攻击的能力。但是,由于其实施的本质,可能对市场波动性巨大的时刻反应不够迅速,且只适用于链上已有流动代币的资产。
M-of-N报价
有时他们说,如果你想做正确的事,最好自己干。如果你召集N个信任的朋友,并请他们提交他们认为正确的链上价格,而最好的M答案作为当前价格,那会如何呢?
这种方法现在被当前许多大型项目采用:Maker运行一组由受信任实体操作的价格源,Compound创建OpenOracle及?Coinbase这类特约报价者,Chainlink聚合来自Chainlink运营者的价格数据,并在链上公开它。请记住,如果选择使用这些解决方案之一,你现在已将信任委派给第三方,你的用户也只能这样做。要求报价者手动发布链上更新也意味着在市场波动性大和区块链拥堵期间,价格更新可能无法准时到达。
总结
价格预言机对于DeFi安全性至关重要,但经常被忽视。安全地使用价格预言机是一道难题,有很多方法同时兼顾你自己和你的用户。在这篇文章中,我们介绍了曾经发生的价格预言机操纵攻击案例,并证实在交易过程中读取价格信息可能是不安全的,可能导致灾难性的财务损失。我们还讨论了其他项目用于打击价格预言机操纵的一些技术。归根结底,每一种情况都是独一无二的,你可能会发现自己不确定目前对价格预言机的使用是否正确。如果是这样的话,请随时与我们联系寻求建议。
标签:THEUSDETHANCDog Landing On The Moonusda币官网etha币能买不Yolk Finance
来源:经济日报“十四五”规划建议提出,“稳妥推进数字货币研发”。数字经济是全球经济增长日益重要的驱动力。2014年央行启动对法定数字货币研究,如今数字货币试点测试正一步步走进人们的生活.
1900/1/1 0:00:00随着锁定的总价值上升到新的历史高位,DeFi协议开始回归。现在,Aave,Uniswap和yEarnFinance在光环输给比特币此前的大涨之后又重新回到了聚光灯下.
1900/1/1 0:00:00谷歌趋势显示“比特币”关键字的搜索兴趣相对较低,而链上数据显示,精明投资者正在囤积比特币。 比特币(BTC)在上涨后继续显示强劲涨势。关键数据显示,近几个月来的上涨趋势很可能是精明投资者推动的.
1900/1/1 0:00:00链作双11区块链探物节,链圈双11,狂欢还在继续!简单粗暴的5折豪气的满赠还有专区满111元可抽288元的链作1周年大奖以及击穿底价的硬件钱包活动时间:11.9-11.15直接去链作抢购:htt.
1900/1/1 0:00:0011月23-24日,由猎云网、猎云财经主办的“BEYOND·2020区块链产业大会暨年度颁奖盛典”在深圳隆重召开.
1900/1/1 0:00:00美国大选纷争还未落下帷幕,拜登已经开始任命顾问审视政府各个机构的运作,特朗普则忙着诉讼多个关键州的选票有违规行为......无论是否让几个州重新计票,应该都不会出现大的反转.
1900/1/1 0:00:00