ブロックチェーン技術の最も大きな利点の1つは、その透明性です。データが公開されているため、誰でも取引を閲覧することができます。しかし、裏を返せば、同じデータを悪質な業者が入手できるということでもあります。彼らはオープンデータを際限なく悪用します。
例えば、悪意のあるトレーダーは、市場を動かす可能性のある取引を事前に知り、他のトレーダーより先に注文を出して、後でその資産をより高い価格で売ることができます。これはフロントランニングと呼ばれています。
フロントランニング攻撃はどのような市場でも起こり得ます。NFTの分野でもよく見られます。
この記事の構成
NFTのフロントランニング・プロセス
NFTの購入プロセスにおける典型的なシナリオを考えてみましょう。ほとんどのNFTはイーサリアムのブロックチェーン上で動作しています。NFTを購入したい場合、NFTの価格に加え、ガス代を支払う必要があります。ガス代は、取引を検証・実行するイーサリアムのマイナーの報酬として使用されるのです。
ここで、他の取引よりも高いガス代を支払った場合、どうなるか考えてみましょう。あなたの注文は優先的に処理されることになり、採掘者は他の取引より先に処理することになります。
これがNFTのフロントランニング・プロセスの仕組みです。高いガス代を支払うことで取引を加速させ、悪意を持ったトレーダーは、そのNFTの市場価格に影響を与える主要な注文の前に注文を出すことができるのです。
実際には、これを実現するためにフロントランニングのボットが使用されます。
フロントランニングのボットはどのように機能するのですか?
ボットを適用することで、フロントランニング取引が自動化されます。ボットはブロックチェーン上の保留中の取引をスキャンし、収益性の高い取引を検出。その取引のガス価格を推定し、それをコピーして高い手数料で自動的に算定提出します。
別の言い方をすれば、ボットが取引を発見し、それがブロードキャストされた後、確認される前に、元の取引より先に自身の取引を完了させることに成功した場合に、フロントランニングが発生(成立)するのです。
このすべてがミリ秒単位で行われるため、手動取引ではとても太刀打ちできません。
サンドイッチ攻撃はNFTフロントランニングの一般的な形態
フロントランニングでは、攻撃者は同時に2つの注文を出すことも可能です。一つはコピーしたい取引の前、もう一つは後です。言い換えれば、元の取引は2つの偽の取引に挟まれることになります。
この場合、元の取引はもちろん実行されます。しかし、価格が上昇するため、そのトレーダーは意図した利益を得ることは不可能です。
例えば、トレーダAがNFTマーケットプレイスで現在のベストオファーよりも高い価格でNFTに本物の入札を行ったとします。トレーダBはこの保留中の取引を検知し、同時に2つの注文を挿入します。1つはベストオファーでNFT資産を購入する注文、もう1つはトレーダAの入札価格よりわずかに高い価格でNFTを売りに出す注文です。取引参加者Aの取引が成立すると、攻撃者はこの価格差から利益を得ることができるのです。
NFTのフロントランニングを軽減する方法
フロントランニング攻撃への対策として、主に2つのアプローチがあります。
トランザクションの順序付け
この方法では、トレーダーとマイナーは、高いガス料金を支払っても、フロントランニングができないように、順序規則に従わざるを得ません。そのようなルールの1つが、ビットコインキャッシュに提案されている”Canonical Transaction Ordering”ルールです。これは、取引IDに従った順序付けを強制するものです。
機密性の向上
ブロックチェーンプロトコルの中には、イーサリアムのブロックチェーン上で保留中の取引が保存される場所であるプライベートメンプール(メモリプール)を通じて、ユーザーのプライバシーを向上させることができるものがあります。プライベートメンプールは、ボットの鍵情報を受け取り、ボットがどの取引を悪用しようとしているのかを検知するための有料サービスです。プライベートメンプールを活用したブロックチェーンプロトコルは、例えばOmniaがあります。
これらの予防策にもかかわらず、ほとんどの場合、フロントランニング攻撃は避けられることはありません。そのため、トレーダーは大規模な取引をより小さな取引に分割することも検討する必要があるのです。