社会养老保险新政策

Zerogoki攻击事宜剖析

来源:头条报道 发布时间:2021-08-11 浏览次数:

Allbet Gmaing下载

欢迎进入AllbetGmaing下载(www.aLLbetgame.us),欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

,

12982491

靠山先容

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

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

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

代码剖析

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

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

在举行一系列验证后,合约挪用tax内部函数盘算此次swap所收取的用度。接下来有三个Token操作:首先凭证入参ns[0]将平台币REI Burn掉;然后Mint衍生资产(在y.token中指定),数目为ns[1];最后Mint部门平台币给GOV合约作为此次swap的用度。

中国世界杯预选赛2022赛程时间www.9cx.net)实时更新比分中国世界杯预选赛2022赛程时间数据,中国世界杯预选赛2022赛程时间全程高清免费不卡顿,100%原生直播,中国世界杯预选赛2022赛程时间这里都有。给你一个完美的观赛体验。

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

总的来说,swap传入的参数,第一个参数ns用于指定swap两种Token的数目,没有经由任何校验;第二个参数包罗了价钱预言机的信息,需要authorized私钥举行署名验证。

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

  1. 虽然入参oracle需要相对庞大的署名机制举行验证,但其对应的信息只用于举行验证及swap用度(即tax)的盘算。

  2. 真正决议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

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片