ブロックチェーン、DeFiの最前線から重要トレンドを解説するニュースレターDIVE INTO CRYPTOへようこそ!1,200を超える投資家や開発者、クリエイターのコミュニティに飛び込んでみてください🧑💻🚀
Gitcoin Grants #19が開催中です!このニュースレターの継続を支援していただける方は、寄付をお願いします🎉 オンチェーン活動での資金調達を持続的にできる方法を模索していくため、有料会員限定プランの開始は延期しています。
🤖 Crypto Research of the Day 🧬
KyberSwapで起きたハッキング(インシデント)の概要
インシデントの原因を理解する:集中流動性マーケット・モデルの仕組み
KyberSwapインシデントの原因
KyberSwapインシデントの影響
KyberSwapで起きたハッキング(インシデント)の概要
必要な情報のみピックしてまとめる。
KyberSwapのインシデントの概要
11 月 22 日午後 10:54 UTC に、攻撃者は一連のアクションを使用して KyberSwap Elastic スマート コントラクトを悪用し、搾取的なスワップを実行
これにより、ユーザーの資金を攻撃者のウォレットに引き出すことができました。ユーザーの資金のうち約 5,470 万ドルが攻撃者によって奪われてしまった
悪用された資金を返還するためのインセンティブとして 10% の報奨金を提供するなど、ユーザーが可能な限り回収できるよう支援するために、入金を一時停止した。
以上が概要であり、現状までの情報です。
KyberSwapが採用しているプールは、Uniswap V3によって普及された集中流動性マーケットメーカー・モデルです。
この集中流動性マーケットの仕組みを理解することが、今回のハッキング事例を理解することに繋がります。
そのため、要点のみ解説し原因が理解できるように順を追って説明します。
インシデントの原因を理解するために:集中流動性マーケット・モデルの仕組み
集中流動性の仕組みは、あらかじめ決めた「ある価格の範囲に対して流動性が供給されマーケットメイクが行われるAMM」になります。
LP(流動性プロバイダー)は、「資産の価格がこの範囲内にある場合にのみ、流動性を取引の実行に使用すること」と指定します。
各LPは独自の価格範囲と価格を指定できるため、どの時点でも流動性は異なる流動性範囲のパッチワークを構成するようになります。以下のようなイメージです。
この設計の結果、プール内の流動性がNFTになったため、各LPポジションを一意に追跡する必要がでました。価格の範囲は、「ティック(Tick)」呼ばれ分割されています。
流動性プールは、ティックの範囲に流動性を追加または削除するたびに、もしくはこれらのティックを通過するときに、どれだけの流動性がアクティブにされるか、もしくは非アクティブにされるか、および範囲内の流動性をアクティブにするために使用されるトークンの数を把握する必要があります。
具体例を挙げてみます。
ボブが1500~1700ドルに10ETH、アリスが1000~1600ドルに8ETHの範囲で流動性を提供する場合、ETHの価格が1400ドルのときはアリスの8ETHのみが利用可能です。価格が1500ドルに達すると、ボブの10 ETHも加わり、合計流動性は18 ETHになります。
価格があるティックを越えると、そのティック範囲内で流動性を提供しているLPの流動性がプールに追加されます。逆に価格がその範囲を下回ると、流動性は削除されます。
しかし、この計算にバグがあると、価格がティックを横切る度に流動性が誤って「追加」されても「削除」されない場合があります。これにより、実際には存在しない流動性が計算され、価格が実際よりも低く見積もられる可能性があります。
攻撃者はこのバグを利用して行われた。どのような原因であったか見ていきましょう。
KyberSwapハッキングの原因
KyberSwapのハッキングの原因は、スマートコントラクト内のcomputeSwapStep()
関数の計算ロジックにある脆弱性でした。
この脆弱性により、攻撃者は流動性プールの価格計算を操り、実際には存在しない流動性を利用して大量の資産を不正に引き出すことができました。この攻撃は、フラッシュローンと価格操作を組み合わせることで実行されました。
CertiKブログの記述によれば、ティックを超えるかどうかを判断する関数が、実際にはティックを超えたにも関わらず、超えていないと誤って判断したとのこと。
この誤った計算により、攻撃者は存在しない流動性を利用して、プールから資産を不正に引き出すことができました。
詳細な関数ロジックと攻撃の流れを把握したい方は、Certikのブログを参照することをおすすめします。
KyberSwap Elastic(Certik)
https://www.certik.com/resources/blog/3f9rJpDr4kzqZsM2VwgiSA-kyberswap-elastic
攻撃トランザクションの一つ
https://etherscan.io/tx/0x396a83df7361519416a6dc960d394e689dd0f158095cbc6a6c387640716f5475
KyberSwapハッキングの影響
このエクスプロイトは Kyber の集中流動性の実装に固有である、とのこと。
Uniswapなど、他の集中流動性DEXがこのエクスプロイトの危険にさらされていることは無いそうです。
ただし、KyberSwapのフォークは同じ脆弱性を含んでいる可能性があります。
参考
ここまでのまとめを行うために参考にしたコンテンツのリンクです。
本日は以上です。
最後まで読んでいただきありがとうございます。もしこの記事を気に入っていただけたら「いいね・Xでのシェア」を頂けたらとても嬉しいです。質問や感想はコメントでお願いします。
🐦コミュニティ
Xでいただいたリプライや感想を紹介しています。読者の声が、ニュースレター継続の最大の原動力です。
免責事項
このニュースレターは、教育目的の情報提供を主旨としており、投資や金融、税に関するアドバイスではありません。ご自身での調査やデューデリジェンスが必要です。