北京时间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,即比特币三倍杠杆看多期货)。
Max Keizer:萨尔瓦多的比特币革命将使法定货币灭绝:1月3日消息,比特币倡导者Max Keizer表示, 去年中国的采矿禁令只是暂时的小问题,萨尔瓦多的比特币革命将在那里扩大并使法定货币灭绝。另外,比特币有望在 2022年达到220,000美元,比特币的所有基本面都在“尖叫”更高。(Express)[2022/1/3 8:21:00]
作为一个衍生品合约,Zerogoki需要将衍生资产的价格(如比特币的价格)导入以太坊区块链。和以太坊上大多数平台一样,Zerogoki依赖价格预言机(Oracle)来获得价格。此次攻击正是利用了Oracle相关函数。
下面我们首先对被攻击合约0x80ecdb90的代码进行分析。
声音 | Max Keizer:比特币仍可实现100万美元目标:据CCN报道,尽管比特币昨天遭受了残酷的回调,但华尔街资深人士、比特币支持者Max Keizer认为,比特币仍然可以实现100万美元的目标。此外,Keizer还增加了其他更直接的预测。他表示28000美元是他的短期目标价格,而10万美元是在“在视线范围内”的。[2019/6/27]
以上是被攻击合约的Swap函数。首先调用两次decode_op,从入参oracle中获得价格预言机相关的信息。OP结构体包含四个成员:数据类型(datatype)、Token地址(token)、预言机价格(price)和时间戳(timestamp)。
动态 | Overstock子公司tZERO允许投资者获得去年8月购买的代币:据coindesk报道,tZERO在去年8月发行了价值1.34亿美元的代币,并在10月完成发行,然后代币被锁定在一个钱包中,直到昨天,三个月的锁定期结束,tZERO已允许投资者获得去年8月购买的代币。[2019/1/11]
在进行一系列验证后,合约调用tax内部函数计算此次swap所收取的费用。接下来有三个Token操作:首先根据入参ns将平台币REI Burn掉;然后Mint衍生资产(在y.token中指定),数量为ns;最后Mint部分平台币给GOV合约作为此次swap的费用。
EtherZero将于1月20号分叉:EtherZero之前发布公告称将于区块高度4936270、预计1月20日凌晨3-4点硬分叉以太坊,不过后发推更改硬分叉时间为北京时间1月20日18-19点,届时将产生ETZ币。ETZ预售从1月23日凌晨4点开始,预计23日结束。[2018/1/19]
以上是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
我们无从得知攻击者是怎样得到这三个地址对应的私钥的。最直观的原因有两种可能:三个地址的私钥同时泄露,或者同时出现了三名“卧底”。无论哪一种,看起来都像是一种概率极低的黑天鹅事件。但可以肯定的是,正是这种黑天鹅事件导致了这次奇怪攻击的产生。
标签:OTCAVEZERTOKENhotcoinglobal交易所下载2022LumosMetaverseNetZeroYield Token for BXTB
大家或许对于 ID0 并不陌生,甚至或多或少参与过以太坊上 Uniswap、SushiSwap、Balancer 等协议上举行的 ID0.
我们使用Ergo AppKit开发了安卓版Ergo钱包(Ergo Wallet for Android).
大家好,欢迎来到白泽研究院。上期视频,我们简单讨论了一下区块链的概念、种类,以及今年下半年的公链之争,那么从本期视频开始,我们逐一对每一条新兴公链进行解读.
我们从Aavegotchi这款游戏出发,探讨链上游戏迈向元宇宙需要具备什么属性:1. 什么是Aavegotchi 内在价值 稀有度值 2. Aavegotchi的游戏可玩性&.
一、什么是Monsta Infinite蒙斯塔无限? 为什么我们开始 Monsta Infinite?Monsta Infinite 是一个去中心化的游戏世界.
自 2020 DeFi Summer 以来,加密行业对于去中心化金融的协议已经有了全新的探索,包括多链涌现、各式架构的金融协议、NFT 的 DeFi 化和 GameFi 化.