木星链 木星链
Ctrl+D收藏木星链
首页 > DYDX > 正文

ZER:Zerogoki攻击事件分析

作者:

时间:1900/1/1 0:00:00

北京时间2021年8月8日13点(区块高度12982491),Zerogoki项目下的合约遭到攻击,总计损失约67万美元。

Zerogoki是Duet Protocol的一个下属项目,用以在以太坊区块链平台上引入衍生品。在实现上,Zerogoki沿用了Duet Protocol的Lite Minting算法。

简而言之,用户首先购买平台币REI,然后将平台币Burn掉以兑换其他衍生资产(Synthetic Assets),如zUSD(对标美元的平台币)、zBTC 3L(BTC 3X Leveraged Long,即比特币三倍杠杆看多期货)。

Sui生态项目Mobius将基于LayerZero转型为全链(Omnichain)协议:6月29日消息,Sui生态NFT交易市场Mobius Protocol发推称,将基于LayerZero转型为全链(Omnichain)协议。Mobius Protocol还提到,此前在Sui生态系统的旅程是一次有学习意义的经历,项目获得了宝贵经验,但也意识到了一些促使该项目寻求变革的潜在风险。

此前消息,Sui团队故意谎报释放量,并且正通过币安抛售通过“锁定”和“非流通”的质押SUI获得的奖励。[2023/6/29 22:06:57]

作为一个衍生品合约,Zerogoki需要将衍生资产的价格(如比特币的价格)导入以太坊区块链。和以太坊上大多数平台一样,Zerogoki依赖价格预言机(Oracle)来获得价格。此次攻击正是利用了Oracle相关函数。

Zerion:空投相关的内容为恶意链接,系Twitter帐户被盗用:6月15日消息,Web3钱包Zerion发推表示此前Twitter帐户被盗用,目前已成功重新获得访问权限并删除了恶意帖子,正在调查是如何发生的,请用户保持安全并始终验证Twitter上看到的链接。[2023/6/15 21:38:12]

下面我们首先对被攻击合约0x80ecdb90的代码进行分析。

以上是被攻击合约的Swap函数。首先调用两次decode_op,从入参oracle中获得价格预言机相关的信息。OP结构体包含四个成员:数据类型(datatype)、Token地址(token)、预言机价格(price)和时间戳(timestamp)。

LayerZero:目前没有代币空投或上市计划:5月23日消息,LayerZero 官方 Discord 管理员 0xLamps 表示,“目前没有代币空投或上市计划,请查看我们的官方 Twitter 页面以获取正确信息。 我们一直专注于构建和创造良好的开发体验。”[2023/5/23 15:20:59]

在进行一系列验证后,合约调用tax内部函数计算此次swap所收取的费用。接下来有三个Token操作:首先根据入参ns将平台币REI Burn掉;然后Mint衍生资产(在y.token中指定),数量为ns;最后Mint部分平台币给GOV合约作为此次swap的费用。

Moonbeam已集成跨链互操作性协议LayerZero:8月29日消息,波卡生态智能合约平台Moonbeam宣布集成跨链互操作性协议LayerZero,Moonbeam母公司Purestake的首席执行官Derek Yoo表示此举旨在促进Moonbeam与以太坊、BNB Chain、Polygon等的跨链互操作性并鼓励开发者在Moonbeam上开发应用。(CoinDesk)[2022/8/29 12:55:58]

以上是swap开头的decode_op函数的实现。从这里可以看出,入参oracle除了包含OP结构体外,还包含了SIGNATURENUM个(在攻击时这个值为3)签名用于验证OP的值。我们推测Zerogoki设置了一系列验证者,价格预言机中包含的信息必须经过签名验证才有效。在代码中检查了用于签名的地址是否在数组authorization里,该数组是只能由owner进行设置的验证者数组。同时,代码还限定了必须由三个不同的authorized签名者进行验证。

总的来说,swap传入的参数,第一个参数ns用于指定swap两种Token的数量,没有经过任何校验;第二个参数包含了价格预言机的信息,需要authorized私钥进行签名验证。

在代码中我们注意到两点:

入参oracle中,与swap直接相关的只有x.token和y.token,即swap的两种token的类型(其中根据协议设计,x.token大部分为平台币REI)。

虽然入参oracle需要相对复杂的签名机制进行验证,但其对应的信息只用于进行验证及swap费用(即tax)的计算。

真正决定swap两种Token数量的是入参ns。

我们无从得知项目方为何要进行这样的设计。当然,由于swap函数开头要调用decode_op对入参oracle的签名进行验证。因此,这段代码出现问题的唯一原因,是至少有三个authorized签名者被compromised。

不幸的是,这种黑天鹅事件真的发生了。在攻击交易0x81e5f715中,攻击者想办法利用三个authorized签名者的公钥,向入参oracle提供了三个正确的签名;同时向入参ns提供了一个非常不合理的参数,导致攻击者用少量的REI Token就Mint了大量zUSD。

如上图所示,攻击者用300个REI Token,Mint出了70w+个zUSD代币(zUSD代币对标美元)。

深入分析后我们发现,攻击者提供给入参oracle的签名都是正确的,这三个签名对应三个authorized地址:

0x0d93A21b4A971dF713CfC057e43F5D230E76261C

0x3054e19707447800f0666ba274a249fc9a67aa4a

0x4448993f493b1d8d9ed51f22f1d30b9b4377dfd2

我们无从得知攻击者是怎样得到这三个地址对应的私钥的。最直观的原因有两种可能:三个地址的私钥同时泄露,或者同时出现了三名“卧底”。无论哪一种,看起来都像是一种概率极低的黑天鹅事件。但可以肯定的是,正是这种黑天鹅事件导致了这次奇怪攻击的产生。

标签:ZEREROZEROKENZERI价格GeroWalletAZERO价格XPLUS Token

DYDX热门资讯
OPEN:OpenChat:未来的去中心化社交应用

北京时间 5 月 8 日凌晨 1 时,万众瞩目的“天王级”项目 DFINITY 正式上线 Mercury Beta 主网,这意味着 DFINITY 初步实现了互联网计算机的去中心化.

1900/1/1 0:00:00
UNI:Unicly:NFT的碎片化解决方案

Unicly是NFT碎片化交易协议,用于组合、分割和交易NFT。该协议由NFT收集者、DeFi爱好者共同创建,可以激发NFT的流动性,并为NFT资产提供无缝的交易体验.

1900/1/1 0:00:00
ICK:金色说明书 | Loserchick开启抓蛋大师的财富之旅

Hi~小伙伴们!看完了昨天介绍的这款有趣有料的抓蛋大师游戏:《Loserchick抓蛋大师:有趣好玩的Polygon生态第一链游》,相信大家都跃跃欲试了.

1900/1/1 0:00:00
NEO:Neo创始人达鸿飞:深度剖析NEO N3全生态 如何布局公链新玩法?

从性能到生态竞争,公链赛道可谓是百家争鸣。而无论是从以往的DApp,还是如今的DeFi和NFT,以太坊都承载着大部分资金和资源,占据着绝对的主导地位.

1900/1/1 0:00:00
TER:Terra:进入主流应用的DeFi巨人

原文:Messari Research以下为全文翻译:自今年年初以来,Terra原生代币LUNA呈爆炸式增长,从3亿美元的市值飙升至60亿美元.

1900/1/1 0:00:00
AAVE:Aavegotchi:一个兼具DeFi趣味化和NFT金融化的游戏

Aavegotchi是游戏宇宙中的NFT加密收藏品,玩家可以在游戏中收集、竞赛或组合所持有的Aavegotchi,以此获得终极的游戏化DeFi体验.

1900/1/1 0:00:00