CertiK: クラウドに落ちた Yam Finance スマート コントラクトの脆弱性イベントの分析
サツマイモは植えたばかりなので掘り出さないといけないのですか?
今日、DeFi 分野で魔法のような出来事が再び起こりました。非常に人気のある Sweet Potato プロジェクトが開始されるやいなや、流動性マイナーが猛烈な勢いで流入し始めました。わずか 8 時間で、Yam Finance にロックされた総額は 2 億米ドルを超えました。 COMPマイニングはDeFi業界をサークルの外に追い出し、YAMはトップDeFiプロジェクトの集団的な台頭を直接的に推進し、これは「空への飛行」と呼ぶことができます。
しかし、わずか 36 時間の間に、高層ビルが隆起したり倒壊したりしました。小さな抜け穴のせいで、数億ドルが消えてしまいました。無反応だったので 1 億を失ったと思っていましたが、5 ドルを維持できるとは思っていませんでした。
副題
イベントの背景
8月12日、YAM Financeはスマートコントラクトの抜け穴を発見したと正式に発表し、この抜け穴により当初設定された量よりも多くのYAMトークンが生成されると述べた。この場合、多数の予約されたトークンにより、ガバナンス操作に必要な過剰な量のトークンが作成されます。これは、コミュニティが将来ガバナンス操作を実行するのに十分なトークンを持たないことを意味します。
スマートコントラクトの脆弱性はどこで発生するのでしょうか?
画像出典:
画像出典:https://github.com/yam-finance/
上の画像のリベース関数は、安定した価格を維持するためにリベースを実行する必要があります。ただし、totalSupply の計算時に誤った結果を与えるコード行 (青でマーク) が 1 行あり、システムが過剰なトークンを予約してしまいます。
このコード行の正しいコード/式の計算形式は、次のコード/式のようになります。
totalSupply =initSupply.mul(yamsScalingFactor).div(BASE);
それでは、期限までにガバナンス活動を通じてこの脆弱性を修正することは可能でしょうか?
2 回目の調整は 8 月 13 日の午前 4 時 (東部標準時) に行われます。
YAM Finance は、ガバナンス提案を提出するには東部標準時間午前 3 時までに約 160,000 件の YAM 委任リクエストが必要であると公表しました。この提案では、投票期間中に 400,000 を超える YAM が委任された場合、ユーザー自身が YAM をリザーブ プールに転送または預け入れることができるようになります。
副題
YAMの現状
YAM Finance は現在、ガバナンス機能を失い、流動性の 75% が YAM/yCRV の未割り当て資金プールから移されています。ただし、残りの流動性はリザーブプールから削除されます。
副題
それを避けるにはどうすればよいでしょうか?
CertiK セキュリティ チームは、次のことを強く推奨します。
すべてのブロックチェーン プロジェクトは、正式リリース前にプロジェクトのコード セキュリティを検証するために厳格なソフトウェア テスト ツールを使用する必要があるだけでなく、複数のサードパーティのブロックチェーン セキュリティ チームを招待して、ブロックチェーン プロジェクトのコードを適切に検証する必要があります。コードを更新するたびに作業し、再監査します。これにより、より優れたプロジェクト管理システムを設計して、緊急のプロジェクト更新の必要性に備えることができます。







