xSNXにおけるExploitについて

8月29日04:43(UTC)に、当社のxSNX契約の脆弱性が悪用されました。ホルダーの皆様の損失額は450万ドルと推定されます。私たちは自分自身に非常に失望しており、コミュニティに深くお詫び申し上げます。

現時点では、xSNX製品の提供を終了することが最善であると考えています。現在のxSNXの実装は、複雑な依存関係と脆弱性を持つ、当社で最も複雑な製品となっています。ポジションを解消する方法については、後ほど詳しくご説明いたします。

エクスプロイトの概要

トランザクションリンク

攻撃手順は以下の通りです。

1. dydxから25,000 ETHのフラッシュローン
2. Aave V1とV2の組み合わせで約100万SNXの借り入れ
3. Bancor で 6800 ETH を 519000 SNX にスワップ

この時点でハッカーは約150万枚のSNXを保有しています。

4. Kyberで150万のSNXを650万のUSDCと交換し、SNXの価格を大幅に下げる。
5. Curveで650万USDCを650万sUSDに交換。
6. 200万 sUSDをxSNXAdmin contract(xSNXが管理する資産を保有する契約)に移し、SNXのロックを解除するために同契約のsUSDの債務を返済する。
7. xSNXAdmin contractのcallFunction関数を呼び出し、未払いのsUSD債務をバーンさせ、人為的に下落した価格で、~614000 SNXを~811000 sUSD債務と交換する。

攻撃者が callFunction 関数を呼び出すことができたことが、脆弱性の原因でした。この関数は、リバランス時のファンドのパフォーマンスを向上させるために統合したdydxのSoloMarginフラッシュローン契約からのみ呼び出し可能なはずでした。誤ったrequire文により、この関数が一般に呼び出し可能になっていました。

require(msg.sender==soloMarginAddress)を使用すべきところを、誤ってrequire(sender==address(this))を使用していました。

その後、攻撃者はすべての行動を反転させ、ETHにスワップバックし、ローンを返済します。価値抽出の源は、攻撃者がxSNXの資産を使ってSNX価格に圧力をかけ、収益性の高い外部アービトラージの機会を作ったことにありました。

xSNXの巻き戻し

今後、xSNX契約によるSNXのステークは行われません。今週初めに契約のアップグレードを行い、契約内のすべての資産をETHに交換し、償還時に最大の価値を得られるようにする予定です。現在、基準価額にカウントされていない大量のUSDCが契約に含まれていますので、このアップグレードが完了するまで換金をお待ちいただくことをお勧めします。この更新が完了したら、Discordの #announcements チャンネルに投稿します。

USDCをETHに交換すると、xSNXの唯一の保有物はETHになります。お客様は、いつでもxSNXをETHに交換することができます。ただし、10月からSynthetixのステーク報酬からのSNXが私たちの契約に帰属するようになることに注意してください。このSNXが権利確定すると、私たちはそれをより多くのETHに交換します。私たちはSNXのステーキング報酬に早期にアクセスすることはできませんので、簡単に言えば、交換するのに時間がかかればかかるほど、より多くのETHを受け取ることができます。

補償について

今週は、投資家の損失を適切に計算するために、正確なスナップショットのスクリプトを書く作業を行っています。エクスプロイト後に換金した場合でも、報酬を受け取ることができます。このスクリプトの詳細を詰め、正確性を確保するために数日必要となります。

私たちは小さなチームで小さな資金しか持っていませんが、450万ドルはかなりの額です。今週は、投資家が損失を取り戻す可能性を考慮して、XTKベースの補償プログラムを構築する作業を行います。これがすべての人にとって最適な解決策ではないことは理解しています。私たちは、手持ちのリソースでできる限りのことをしています。

今後の展開

Synthetixコミュニティに根ざし、重なり合ってきた私たちにとって、xSNXを終了するという決断は非常に難しいものでした。しかし、現時点ではコミュニティにとって最良の決断であると判断しました。先に述べたように、xSNXは当社で最も複雑な製品であり、当社は投資家に提供する製品に最大限の自信を持ちたいと考えています。当社の他の製品や契約には大きな自信を持っていますが、現在のxSNX契約の実装については、もはや同じことを言うことはできません。

将来的には、L2で新しいxSNXのコンセプトを模索するかもしれません。しかし、現時点では、xSNXを縮小することは正しい判断です。

最後に、私たちはコミュニティに感謝の気持ちを伝えたいと思います。もちろん、緊張感は高まっていますが、私たちはDiscordでの前向きで支援的なエネルギーに感謝しています。私たちは本当に感謝しており、皆様の信頼を取り戻すことを楽しみにしています。

いいなと思ったら応援しよう!