オラクル操作とは
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 6 分
結論
オラクル操作は、コントラクトが価格の参照先にしている情報源を歪め、誤った価格のまま清算や貸し借りを起こさせる攻撃です。参照先が単一の薄い市場である場合に成立しやすく、複数の情報源を組み合わせる設計が対策になります。利用者は、使うプロトコルが価格をどこから取っているかを確認することが要点です。
要点
- 価格の参照先を歪めて誤った清算や借入を起こす
- 単一かつ薄い市場を参照する設計ほど狙われる
- 複数の情報源と時間平均が基本的な対策
- 利用前に価格の取得元を確認する
定義
スマートコントラクトが外部の価格情報を取り込む仕組み(オラクル)に対し、参照元の市場価格を一時的に歪めることで、実勢と異なる価格を前提とした処理を成立させる攻撃。
スマートコントラクトはチェーンの外の情報を自分では知りません。担保の評価や清算の判定に価格が必要な場合、外部の価格情報をチェーン上に持ち込む仕組みが必要です。これをオラクルと呼びます。つまりプロトコルの安全性は、参照している価格の正しさに依存します。
参照先が一つの分散型取引所の、しかも流動性の薄い組である場合、その価格は一時的に動かしやすくなります。歪んだ価格が読み取られると、本来足りないはずの担保で借り入れができたり、健全な担保が清算対象と判定されたりします。損失は、価格が戻った後にプロトコル側と利用者に残ります。
設計上の対策としては、複数の独立した情報源を集約すること、一定時間の加重平均を使って瞬間的な変動の影響を減らすこと、極端な値動きを検知して処理を止める仕組みを置くことが挙げられます。専業の価格提供ネットワークを使うのも一般的な選択です。
利用者の確認点は難しくありません。プロトコルの文書に価格の取得元が書かれているか、単一の取引所に依存していないか、上場間もない流動性の薄い資産を担保として受け入れていないか。担保として使う資産を、取引の厚い主要銘柄に限るというのも実務的な自衛策です。
注意点
- · 利用するプロトコルの文書で、価格の取得元と集約方法を確認する
- · 単一の取引所の価格だけを参照する設計のサービスには大きな資金を置かない
- · 流動性の薄い資産を担保に使わず、取引の厚い主要銘柄に限定する