本文发布于NEST爱好者,作者:Yuheng&Yuyi。
与单纯基于可信任第三方的中心化预言机不同,NEST分布式预言机希望能够让尽可能多的链上用户参与到价格转换关系确定的过程中来,从而进一步提升预言机输出数据结果的可靠性以及整个预言机系统的安全性。
而正是因为这种特性,分布式预言机往往会遇到数据无法得到有效验证的问题,比如有恶意矿工提供恶意报价来影响价格。为了解决这种问题,NEST设计了报价—吃单的提交验证机制,即允许验证者根据报价的价格进行交易得到报价者所抵押的资产,并重新提出一个报价进行修正。通过这种方式,NEST分布式预言机能够在一定程度上有效地对恶意报价进行限制,同时也能够及时地对恶意报价进行修正。
安全团队:Defrost Finance被攻击事件简析:金色财经报道,据区块链安全审计公司Beosin旗下Beosin EagleEye安全风险监控、预警与阻断平台监测显示,Defrost Finance预言机被恶意修改,并且添加了假的抵押token清算当前用户,损失超1300万美元。攻击者通过setOracleAddress函数修改了预言机的地址,随后使用joinAndMint函数铸造了100,000,000个H20代币给0x6f31地址,最后调用liquidate函数通过虚假的价格预言机获取了大量的USDT。后续攻击者通过跨链的方式将被盗资金转移到了以太坊的0x4e22上,目前有490万美元的DAI在0x4e22地址上,有500万美元的DAI在0xfe71地址上,剩余300万美元的ETH被转移到了0x3517地址上。[2022/12/25 22:06:35]
然而,这种针对于价格修正方式的顺利运行基于的是吃单交易以及新的报价交易能够在验证期内及时地出现在链上的新区块当中。众所周知,目前整个区块链网络中的矿工群体早已不是像最开始那样单独工作了,为了保证收益的稳定性,矿工们会组织在一起形成矿池来达到算力的整合,因为在工作量证明的共识下,更大的算力也就代表着获得收益的概率越高。
慢雾:Inverse Finance遭遇闪电贷攻击简析:据慢雾安全团队链上情报,Inverse Finance遭遇闪电贷攻击,损失53.2445WBTC和99,976.29USDT。慢雾安全团队以简讯的形式将攻击原理分享如下:
1.攻击者先从AAVE闪电贷借出27,000WBTC,然后存225WBTC到CurveUSDT-WETH-WBTC的池子获得5,375.5个crv3crypto和4,906.7yvCurve-3Crypto,随后攻击者把获得的2个凭证存入Inverse Finance获得245,337.73个存款凭证anYvCrv3Crypto。
2.接下来攻击者在CurveUSDT-WETH-WBTC的池子进行了一次swap,用26,775个WBTC兑换出了75,403,376.18USDT,由于anYvCrv3Crypto的存款凭证使用的价格计算合约除了采用Chainlink的喂价之外还会根据CurveUSDT-WETH-WBTC的池子的WBTC,WETH,USDT的实时余额变化进行计算所以在攻击者进行swap之后anYvCrv3Crypto的价格被拉高从而导致攻击者可以从合约中借出超额的10,133,949.1个DOLA。
3.借贷完DOLA之后攻击者在把第二步获取的75,403,376.18USDT再次swap成26,626.4个WBTC,攻击者在把10,133,949.1DOLAswap成9,881,355个3crv,之后攻击者通过移除3crv的流动性获得10,099,976.2个USDT。
4.最后攻击者把去除流动性的10,000,000个USDTswap成451.0个WBT,归还闪电贷获利离场。
针对该事件,慢雾给出以下防范建议:本次攻击的原因主要在于使用了不安全的预言机来计算LP价格,慢雾安全团队建议可以参考Alpha Finance关于获取公平LP价格的方法。[2022/6/16 4:32:58]
矿池的出现所引发的本质问题是其对交易打包权的垄断。因为在公有链中只有挖到区块的矿工或者矿池能够决定下一个区块中应该包含哪些交易,而矿池相较于单一的个体矿工又往往具有压倒性的算力优势,在这种情况下那些具有算力规模更大的矿池会选择打包一些对自己有利的或者交易费较高的交易,即使这些交易可能并不是最先被公布到链上的。
慢雾:DEUS Finance 二次被黑简析:据慢雾区情报,DEUS Finance DAO在4月28日遭受闪电贷攻击,慢雾安全团队以简讯的形式将攻击原理分享如下:
1.攻击者在攻击之前先往DeiLenderSolidex抵押了SolidexsAMM-USDC/DEI的LP。
2.在几个小时后攻击者先从多个池子闪电贷借出143200000USDC。
3.随后攻击者使用借来的USDC在BaseV1Pair进行了swap操作,兑换出了9547716.9个的DEI,由于DeiLenderSolidex中的getOnChainPrice函数是直接获取DEI-USDC交易对的代币余额进行LP价格计算。因此在此次Swap操作中将拉高getOnChainPrice函数获取的LP价格。
4.在进行Swap操作后,攻击者在DeiLenderSolidex合约中通过borrow函数进行借贷,由于borrow函数中用isSolvent进行借贷检查,而在isSolvent是使用了getOnChainPrice函数参与检查。但在步骤3中getOnChainPrice的结果已经被拉高了。导致攻击者超额借出更多的DEI。
5.最后着攻击者在把用借贷出来DEI兑换成USDC归还从几个池子借出来的USDC,获利离场。
针对该事件,慢雾安全团队给出以下防范建议:本次攻击的原因主要在于使用了不安全的预言机来计算LP价格,慢雾安全团队建议可以参考Alpha Finance关于获取公平LP价格的方法。[2022/4/28 2:37:18]
而当这种情况出现在NEST分布式预言机中时,则会导致提交的新报价无法在验证期内得到及时地验证,最终会导致NEST输出错误的价格数据,从而使得部分矿池捕捉到套利机会,进而威胁到整个DeFi生态的环境安全。本文接下来会具体介绍这种针对NEST分布式预言机的矿池拒绝打包攻击的详细内容。
慢雾:Polkatrain 薅羊毛事故简析:据慢雾区消息,波卡生态IDO平台Polkatrain于今早发生事故,慢雾安全团队第一时间介入分析,并定位到了具体问题。本次出现问题的合约为Polkatrain项目的POLT_LBP合约,该合约有一个swap函数,并存在一个返佣机制,当用户通过swap函数购买PLOT代币的时候获得一定量的返佣,该笔返佣会通过合约里的_update函数调用transferFrom的形式转发送给用户。由于_update函数没有设置一个池子的最多的返佣数量,也未在返佣的时候判断总返佣金是否用完了,导致恶意的套利者可通过不断调用swap函数进行代币兑换来薅取合约的返佣奖励。慢雾安全团队提醒DApp项目方在设计AMM兑换机制的时候需充分考虑项目的业务场景及其经济模型,防止意外情况发生。[2021/4/5 19:46:39]
攻击流程及分析
为了方便讲解这种攻击方式,我们首先假设所有参与挖矿的成员都是矿池,各个矿池具有不同大小的算力占比,且彼此之间都知道各自的算力占比。
首先在发动攻击之前,恶意矿池可以通过闪电贷等方式预先囤积好之后用于套利的加密货币。例如,恶意矿池会预先囤积大量的ETH,紧接着操纵ETH和USDT之间的价格比例来实现套利。
接下来,恶意矿池会向NEST提出一个报价,该报价会和当前的实际市场价格存在着巨大的差别。由于该报价和实际市场价格之间存在着巨大的差别,也就代表着存在着巨大的套利空间。因此在持续时间为S个区块的验证期内,根据NEST本身的吃单验证的协议,必然会有验证者提出吃单的交易并对该报价进行最合理的修正以获得最大的收益。
而此时,在组装每一个验证期的区块时,所有的挖矿矿池面对着两个相同抉择,将该交易打包进自己组装的下一个正在组装区块当中或者不将该报价打包进下一个正在组装的区块中。由于各个矿池都知道彼此之间的算力占比以及彼此之间所能够采取的策略选择,因此在验证期内,每个矿池是否选择对该报价进行修正实际上可以看成所有矿池所一起进行的多次相互独立的完全信息静态博弈。而能够决定整博弈最终结果的,也就是所谓的纳什均衡点,则是每个参与者在各种决策组合情况下的收益,因为每个参与者都会选择在各种情况下自己收益都最大化的决策。囚徒困境就是一种典型的完全信息静态博弈。
如果一个矿池选择对于该报价进行修正,那么很明显该矿池能够立即得到收益,我们假设修正报价对应的收益为a。而如果一个矿池不选择对于一个报价进行修正,看似该矿池无法立刻得到收益,但是该矿池也可以根据该恶意报价所涉及到的加密货币进行囤积,最终在报价成立之后进行套利,我们可以设这个最终的收益为b并且通常有b>a。
但是我们需要注意到,在区块链中只有挖到新区块的矿池能够获得记账权,也就是说即使一个矿池选择立刻修正该恶意报价,它也只能在一定概率下获得a的收益,并且这个概率是和该矿池的算力成正比的,因此我们可以将一个矿池选择修正报价的收益表示为Pia。同样的如果不修正报价,在报价成立之后,一个矿池所能够得到的收益也为Pib。但是由于一旦报价被修正,那么之后的博弈也就不再存在,意味着所有的矿池都不会获得b收益,因此实际上在验证期矿池决定每个区块的交易内容时,其所考虑的两种收益实际如下:
其中T代表矿池的决策,Y代表修改该报价,N代表不修改该报价;Pn代表接下来所有验证期区块都不会出现修改报价的概率。
在组装验证期内对应的每一个区块时,所有的矿池都会比较这两种收益来选择自己的决策。最后根据自己的算力占比,以及两种收益a、b之间的比例关系选择是否对于该报价进行修正,从而最终达到纳什均衡状态。
分析总结
正如上述所说,矿池有可能会凭借着自身算力的优势对于报价的修正更新进行延迟和阻碍,从而利用NEST预言机进行套利。但是这也不仅仅是NEST预言机所面临的问题,实际上整个区块链的去中心化理念都在受到矿池这一现象的冲击,因此如何解决好矿池所带来的问题,是我们在走向真正的去中心化道路中不可避免的一个挑战。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。