金融用語「フロントランニング」を使った手法です。フロントランニングとは大口の取引がある場合において先回りして仕掛けることを意味します。
フロントランニングは絶対に儲かる手法なので、マーケットにおいては禁止されています。
サンドイッチ攻撃とは?
ある大口ユーザーが暗号通貨資産X(例:ETH、DAI、SAI、VERI)を別の暗号資産Yと交換して大量に購入しようとします。ボットはこの取引を嗅ぎつけ、この大口取引が承認される前にアセットYを購入して大口ユーザーの直前をフロントランします。この購入により、大口ユーザーの資産Yの価格が上昇し、スリッページ(取引量と利用可能な流動性に基づいて予想される価格の上昇または下降)が増加します。この資産Yの高額な購入により価格はそのまま上昇し、大口ユーザーが買った直後に攻撃者はその高額な価格を利用して売却します。
サンドイッチ攻撃の分解
このような攻撃は、ブロックチェーンが公開されているという特性の下、野放し状態です。すべての取引がメモリプール(メムプール)で観察可能です。メモリプール(メムプール)は、送付を行う前にブロードキャストすることによってデータが一時的に格納される場所で、未承認の送金情報と言い換えることができます。マイナーはこの未承認の送金情報を承認していきます。
スマートコントラクトには、このような取引を行うアクセス制限のない関数が含まれている場合があります。このような機能は、LPリワード・トークンを要求するときにしばしば存在し、DEXを使ってすぐに他のトークンと交換します。
サンドウィッチ攻撃は、以下のステップを辿ります。
- 大口ユーザーの取引を検知する。
- 大口ユーザーの取引をフロント・ランニングする。
- 大口ユーザーが取引を行い、より高いスリッページを受ける。
- 攻撃者は大口ユーザーが押し上げた価格を使って、取引の返済をします。
ボットや攻撃者は攻撃を開始するかどうかを決定するためにメモリプール(メムプールのトランザクションを分析します。そのため、トランザクションの詳細を暗号化するのが一つの解決策です。
zk-SNARKs
知識ゼロ証明技術であるzk-SNARKsを使用することがコミュニティで提案されています。zk-SNARKsは各取引の情報を暗号化して隠し、ボットが何もできないようにします。
しかし、これは、ガスコストが高くなることや、攻撃のブロックに利用できる可能性はありますが、その結果、全体的な活性が低下してしまうといった欠点があるため、この種の攻撃を制御するには十分ではありません。
現在は、ブロックチェーンのメモリプール(メムプールにおけるこの種の攻撃を防御するための研究開発作業の途上にあります。
ーーーーーーーーーーーーーーーーーーーーーーーーーー
BlockRabbit『クリプト訪ねて三千里』とは。
第596話からのターン。バトンタッチを受けたcryptoトレーダーは、DeFiとは何ぞや?ユーザー目線でコツコツ嚙み砕いていくコラムを書いていきます。
~第595話まで
現在の実態経済からは少し離れたところに、もう1つの経済圏がブロックチェーンによって興ると考えるShoが、その興隆を追っていくために毎日1社ずつ界隈のプロダクトを紹介していく超短編気まぐれ日刊コラムであり、メディア記事も幾つかピックアップしてお届けしておりました。