本文发布于NEST爱好者,作者:Yuheng&Yuyi。
与单纯基于可信任第三方的中心化预言机不同,NEST分布式预言机希望能够让尽可能多的链上用户参与到价格转换关系确定的过程中来,从而进一步提升预言机输出数据结果的可靠性以及整个预言机系统的安全性。
而正是因为这种特性,分布式预言机往往会遇到数据无法得到有效验证的问题,比如有恶意矿工提供恶意报价来影响价格。为了解决这种问题,NEST设计了报价—吃单的提交验证机制,即允许验证者根据报价的价格进行交易得到报价者所抵押的资产,并重新提出一个报价进行修正。通过这种方式,NEST分布式预言机能够在一定程度上有效地对恶意报价进行限制,同时也能够及时地对恶意报价进行修正。
安全公司:AurumNodePool合约遭受漏洞攻击简析:金色财经报道,据区块链安全审计公司Beosin EagleEye监测显示,2022年11月23日,AurumNodePool合约遭受漏洞攻击。
Beosin分析发现由于漏洞合约的changeRewardPerNode函数未进行验证,导致攻击者可以调用该函数进行任意值设置。
攻击者首先调用changeRewardPerNode函数将每日奖励值设置成一个极大数,接下来调用claimNodeReward函数提取节点奖励,而节点奖励的计算取决于攻击者设置的rewardPerDay值,导致计算的节点奖励非常高。而在这一笔交易之前,攻击者便通过一笔交易(0xb3bc6ca257387eae1cea3b997eb489c1a9c208d09ec4d117198029277468e25d)向合约存入了1000AUR,创建了攻击者的节点记录,从而使得攻击者能够提取出该节点奖励。最终攻击者通过该漏洞获得约50个BNB($14,538.04)。[2022/11/23 8:01:04]
然而,这种针对于价格修正方式的顺利运行基于的是吃单交易以及新的报价交易能够在验证期内及时地出现在链上的新区块当中。众所周知,目前整个区块链网络中的矿工群体早已不是像最开始那样单独工作了,为了保证收益的稳定性,矿工们会组织在一起形成矿池来达到算力的整合,因为在工作量证明的共识下,更大的算力也就代表着获得收益的概率越高。
安全团队:Audius项目恶意提案攻击简析,攻击者总共获利约108W美元:7月24日消息,据成都链安“链必应-区块链安全态势感知平台”安全舆情监控数据显示,Audius项目遭受恶意提案攻击。成都链安安全团队简析如下:攻击者先部署恶意合约并在Audius: Community Treasury 合约中调用initialize将自己设置为治理合约的监护地址,随后攻击者调用ProposalSubmitted 提交恶意85号提案并被通过,该提案允许向攻击合约转账1,856w个AudiusToken,随后攻击者将获得的AudiusToken兑换为ETH,总共获利约108W美元,目前获利资金仍然存放于攻击者地址上(0xa0c7BD318D69424603CBf91e9969870F21B8ab4c)。[2022/7/24 2:34:31]
矿池的出现所引发的本质问题是其对交易打包权的垄断。因为在公有链中只有挖到区块的矿工或者矿池能够决定下一个区块中应该包含哪些交易,而矿池相较于单一的个体矿工又往往具有压倒性的算力优势,在这种情况下那些具有算力规模更大的矿池会选择打包一些对自己有利的或者交易费较高的交易,即使这些交易可能并不是最先被公布到链上的。
慢雾:Harmony Horizon bridge遭攻击简析:据慢雾安全团队消息,Harmony Horizon bridge 遭到黑客攻击。经慢雾 MistTrack 分析,攻击者(0x0d0...D00)获利超 1 亿美元,包括 11 种 ERC20 代币、13,100 ETH、5,000 BNB 以及 640,000 BUSD,在以太坊链攻击者将大部分代币转移到两个新钱包地址,并将代币兑换为 ETH,接着将 ETH 均转回初始地址(0x0d0...D00),目前地址(0x0d0...D00)约 85,837 ETH 暂无转移,同时,攻击者在 BNB 链暂无资金转移操作。慢雾 MistTrack 将持续监控被盗资金的转移。[2022/6/24 1:28:30]
而当这种情况出现在NEST分布式预言机中时,则会导致提交的新报价无法在验证期内得到及时地验证,最终会导致NEST输出错误的价格数据,从而使得部分矿池捕捉到套利机会,进而威胁到整个DeFi生态的环境安全。本文接下来会具体介绍这种针对NEST分布式预言机的矿池拒绝打包攻击的详细内容。
慢雾: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]
攻击流程及分析
为了方便讲解这种攻击方式,我们首先假设所有参与挖矿的成员都是矿池,各个矿池具有不同大小的算力占比,且彼此之间都知道各自的算力占比。
首先在发动攻击之前,恶意矿池可以通过闪电贷等方式预先囤积好之后用于套利的加密货币。例如,恶意矿池会预先囤积大量的ETH,紧接着操纵ETH和USDT之间的价格比例来实现套利。
接下来,恶意矿池会向NEST提出一个报价,该报价会和当前的实际市场价格存在着巨大的差别。由于该报价和实际市场价格之间存在着巨大的差别,也就代表着存在着巨大的套利空间。因此在持续时间为S个区块的验证期内,根据NEST本身的吃单验证的协议,必然会有验证者提出吃单的交易并对该报价进行最合理的修正以获得最大的收益。
而此时,在组装每一个验证期的区块时,所有的挖矿矿池面对着两个相同抉择,将该交易打包进自己组装的下一个正在组装区块当中或者不将该报价打包进下一个正在组装的区块中。由于各个矿池都知道彼此之间的算力占比以及彼此之间所能够采取的策略选择,因此在验证期内,每个矿池是否选择对该报价进行修正实际上可以看成所有矿池所一起进行的多次相互独立的完全信息静态博弈。而能够决定整博弈最终结果的,也就是所谓的纳什均衡点,则是每个参与者在各种决策组合情况下的收益,因为每个参与者都会选择在各种情况下自己收益都最大化的决策。囚徒困境就是一种典型的完全信息静态博弈。
如果一个矿池选择对于该报价进行修正,那么很明显该矿池能够立即得到收益,我们假设修正报价对应的收益为a。而如果一个矿池不选择对于一个报价进行修正,看似该矿池无法立刻得到收益,但是该矿池也可以根据该恶意报价所涉及到的加密货币进行囤积,最终在报价成立之后进行套利,我们可以设这个最终的收益为b并且通常有b>a。
但是我们需要注意到,在区块链中只有挖到新区块的矿池能够获得记账权,也就是说即使一个矿池选择立刻修正该恶意报价,它也只能在一定概率下获得a的收益,并且这个概率是和该矿池的算力成正比的,因此我们可以将一个矿池选择修正报价的收益表示为Pia。同样的如果不修正报价,在报价成立之后,一个矿池所能够得到的收益也为Pib。但是由于一旦报价被修正,那么之后的博弈也就不再存在,意味着所有的矿池都不会获得b收益,因此实际上在验证期矿池决定每个区块的交易内容时,其所考虑的两种收益实际如下:
其中T代表矿池的决策,Y代表修改该报价,N代表不修改该报价;Pn代表接下来所有验证期区块都不会出现修改报价的概率。
在组装验证期内对应的每一个区块时,所有的矿池都会比较这两种收益来选择自己的决策。最后根据自己的算力占比,以及两种收益a、b之间的比例关系选择是否对于该报价进行修正,从而最终达到纳什均衡状态。
分析总结
正如上述所说,矿池有可能会凭借着自身算力的优势对于报价的修正更新进行延迟和阻碍,从而利用NEST预言机进行套利。但是这也不仅仅是NEST预言机所面临的问题,实际上整个区块链的去中心化理念都在受到矿池这一现象的冲击,因此如何解决好矿池所带来的问题,是我们在走向真正的去中心化道路中不可避免的一个挑战。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。