$37 000 000 USD
DESCRIPTION OF EVENTS
"Synthetix is the backbone for derivatives trading in DeFi, allowing anyone, anywhere to gain on-chain exposure to a vast range of assets."
"[S]ynthetic assets are collateralized by the Synthetix Network Token (SNX) which when locked in the contract enables the issuance of synthetic assets (Synths). This pooled collateral model enables users to perform conversions between Synths directly with the smart contract, avoiding the need for counterparties. This mechanism solves the liquidity and slippage issues experienced by DEX’s. Synthetix currently supports synthetic fiat currencies, cryptocurrencies (long and short) and commodities. SNX holders are incentivised to stake their tokens as they are paid a pro-rata portion of the fees generated through activity on Synthetix.Exchange, based on their contribution to the network. It is the right to participate in the network and capture fees generated from Synth exchanges, from which the value of the SNX token is derived. Trading on Synthetix.Exchange does not require the trader to hold SNX."
"Synthetix, a synthetic asset issuance platform built on Ethereum, experienced an oracle attack which netted the attacker over 37 million sETH, according to Etherscan. However, the true dollar value is difficult to calculate at this time given the relative illiquidity of sETH on secondary markets."
At "3am Sydney time[,] an error occurred in [their] FX price feeds affecting the KRW price. [They] use a number of commercial API’s for price feeds across forex, commodities and cryptocurrencies. This morning one of these API’s began to intermittently report a price 1000x higher than the current rate for Korean Won. [Their] price oracle has a mechanism for discarding outliers and should have absorbed this discrepancy gracefully, unfortunately the price feed for KRW was only being served by two API’s at that time due to an earlier unrelated outage which had not been caught by our exception reporting. This meant the Oracle took an average of the only two remaining prices which caused it to misreport the price of KRW to our exchange rates contract."
"When Ethereum-based synthetic asset issuance platform Synthetix, which allows users to mint and trade synthetic currencies in a peer-to-peer fashion, lost track of more than 37 million synthetic Ether (sETH) on June 24, the company stopped all trading on its platform."
In a statement made in the Synthetix Discord channel, CEO and Co-Founder Kain Warwick noted, "There has been an incident with the price feed of sKRW, we are currently investigating the root cause, but during the time when the price feed was returning the wrong value we believe an automated arb bot converted into sKRW and then into sETH."
"[They] added additional redundancy to the price feeds and have added more robust exception handling to ensure that an error like this does not recur." They "also kicked off a bug bounty program to encourage white hat hackers to report bugs found on the platform."
"In the wake of the attack, the company has terminated all transfers within the network since possesses complete control over the smart contracts on the platform." "We were alerted by our community and our CTO stopped the Oracle service from sending rates to the contracts, this had the effect of halting all transfers and trading within the system." "Synthetix has openly asked the owner of the bot to contact the company, Warwick added and assured that he would receive a bug bounty as a reward. As per reports, the company has total control over the smart contracts and has suspended all transfers within the system until further notice." "We have since been in contact with the owner of the bot, who has agreed to reverse the trades in exchange for a bug bounty."
"The irony of this situation is that the currently suboptimal design of the Synthetix platform makes it actually very difficult to realize gains from this kind of attack," said Leibowitz.
"Thank you to our community of SNX stakers and Synth traders for their patience during this incident. We will continue to improve Synthetix.Exchange and build the best trading experience possible."
Synthetix relied on a limited number of price feeds for their automated synthetic assets system, which allowed an attacker to manipulate the price of Korean Won in order to steal $37m worth of assets.
Since the system is centralized, they were able to shut it down in time, and the attacker was left with the option of graciously accepting a bug bounty in exchange of agreeing to return the funds.
HOW COULD THIS HAVE BEEN PREVENTED?
In this case, the assets were recovered so there was no long-term effect to users.
The importance of the human operator came to light here, as necessary to confirm the problem and negotiate the return of the funds. Having an offline multi-sig required for the largest transactions would have similarly prevented such fraud.
List of Ethereum Smart Contracts Post-Mortems - Security - OpenZeppelin Community (Jun 22)
Synthetix Response to Oracle Incident (Jun 22)
SlowMist Hacked - SlowMist Zone (Jun 25)
Synthetix (Jul 28)
No Title (Jul 28)
Sophisticated Trading Bot Exploits Synthetix Oracle, Funds Recovered (Jul 30)
Synthetix Lost 37M sETH in an Oracle Attack (Jul 30)
Oracle: Synthetix Loses 37 Million after Oracle Attack (Jul 30)
The 23 exchange hacks of 2019 (Aug 7)