binance dexのAnti Front-Running

Binanceは、多くのDEXにおいて問題となっているFront-Runningに対する対策を行っており、また、その内容を公表している。

Anti Front-Running

Front-Runningとは、テクノロジーや市場優位性を利用して取引情報を先んじて取得し、有利な価格操作を行うことで利益を獲得する行為のことである。これはほとんどの場合、他取引者の損失につながる。
この問題は、集中型、分散型双方の取引所が直面する困難なものである。
特にDEXにおいてはこの問題が頻発する。gasやtimestampの操作、マッチングスピードに問題があるためだ。
Binance DEXにおいては、Front-Runningを困難にするための設計をいくつか実施している。

Fast Matching

Binance DEXでは、非常に高速で、各ブロックの取引マッチングを行っている。高速マッチングでは、front runnerに対してオーダーが実行されるまでの反応を行う余地をほとんど残さない。これは通常の市場参加者がfront runningを行うことを困難にしている最も基本的な部分である。

Decentralized, Transparent Match Engine

中央集権型の取引所の場合、取引所そのものがfront runningしていないことを表明することは困難だ。
Binance DEXはブロックプロデューサーとフルノードにより、分散されたマッチングエンジンを持っている。これは、誰もが現在のオーダーブックの最新ブロックのトランザクションでオーダーマッチを手動で確認し、オーダーマッチングを確認できることを意味する。
これは、※ウォッシュトレードの検知を容易にすることを意味している。
※売買の意志が無いにもかかわらず、第三者を欺罔(ぎもう)する目的で売買をおこなうこと。 民法に規定されている通謀虚偽表示の具体例とされている。

Periodic Auction Matching

ブロックごとの定期的なオークションマッチングは、高速注文の重要性を低下させる。つまり、高速注文は、数百ミリ秒程度高速(従来の取引では「本当に長い時間」)であっても、high frequency tradingの恩恵を受けない。
定期オークション方式は、非決定論的なレイヤーを追加する。下記三点を完全に知っている以外は価格を予想することができない。

  1. マッチングロジック
  2. 前回のマッチングからの現在のオーダーブック
  3. 次のブロックに登録されるオーダー

1や2は、市場参加者、特に高速同期トレーダーやフルノードのような、ブロックチェーンを観測しているユーザーからは確認可能である。しかし、3をしることは、一般的な市場参加者には非常に困難である。
仮に強力なaccelerated nodeを運用していたとしても、すべてのオーダーを把握することはできない。この情報がなければ、どれだけ高速で注文が出せても、効果的なfront runnningを実行することは不可能である。

上記から、通常のトレーダーも、botも、front runningを行うことは不可能となる。

仮にバリデータがプロポーザーであった場合、3を知るチャンスがあるのではないか、と指摘するかもしれない。彼らは、次のどの取引をブロックに取り込むか、「提案」することが出きる。
Binance DEXは、これを難しくするためのアルゴリズムも追加している。
高速マッチングであるため、価格をfront runningするためには、悪意のあるバリデーターは早くに公開された情報を用いてすすべてを準備しなければならない。
しかし、最後のブロックが取り込まれるまで、悪意のあるバリデータも最終価格を知ることができず、マッチングロジックからしてこの価格をしる必要があり、先んじることは困難になっている。
さらに、悪意あるバリデータより先にブロックを提案したバリデータは、コンセンサスフェーズを増加させ、これは提案の順序の再配置を行う。この仕組は提案の正確な順番を把握させることを困難にし、いつトランザクションを遅延させ、どれを先んじさせるかをコントロールすることを非常に難しくしている。

つまり、バリデータであってもfront runnningを行うことは非常に困難だと言える。