なるほど!をお届けする仮想通貨情報メディア

  • BTCBTC

    371,008円

  • ETHETH

    9,814.4円

  • ETCETC

    422.33円

  • LTCLTC

    2,914.3円

  • BCHBCH

    9,251.7円

  • XRPXRP

    32.881円

  • LSKLSK

    0.0000円

  • XEMXEM

    6.9359円

分散型取引所で避けて通れない「フロントランニング」問題とは?概要・対策を解説

仮想通貨の取引所は、数々のハッキング被害にあってきました。もちろん対策も取られていますが、依然としてハッキングの脅威に晒されていることには変わりありません。今後、比較的安全性が高いと言われている分散型取引所(DEX・Decentralized Exchange)の発展は必要不可欠であると言われており、様々な関連プロジェクトも各所で産声をあげています。

安全性の高さに定評のある分散型取引所ですが、やはり課題もあります。分散型取引所の課題として、ブロックチェーン自体のスケーリングやフィッシング詐欺などと共によく話題に上がるのが、今回お伝えする「フロントランニング」です。

今回は、分散型取引所におけるフロントランニング問題の概要や解決策について解説していきたいと思います。

分散型取引所(DEX)とは

フロントランニングについて解説する前に、まず予備知識として分散型取引所(DEX)について紹介していきます。分散型取引所とは、中央管理者がいなくても仮想通貨の取引を行うことができる取引所のことです。

分散型取引所では、資産の管理や取引などをブロックチェーン上で行います。その秘密鍵は個人で管理し実際に取引する際にしか使用しません。従って取引所を利用しつつも資産は常に個々人の管理下にあります。安全かつ透明性が高いこと、手数料が割安である点などが評価されており、期待を集めています。

分散型取引所の対となる概念である「中央集権型取引所」においては、中央管理者がハッキングされてしまうとユーザーの秘密鍵を盗まれるリスクがあります。分散型取引所にはハッキングされるような中央管理者がいないため、ハッキングに対して比較的安全だと考えられています。また、管理者がいないため内部不正のリスクも逓減されています。

実は過去に仮想通貨関連でおこったハッキング事件を分析していくと、コイン自体に問題があったものは殆ど無いのです。ハッキングの原因は人為的な部分=管理方法でした。管理の怠慢というヒューマンエラーを防げるという点は分散型取引所の信用を高める大きなファクターの一つです。

フロントランニングとは

 

分散型取引所は先述の通りハッキングによる被害を比較的受けにくいと言われていますが、いくつかのデメリットもあります。一つは、取引所の出来高が少ないという点です。分散型取引所に関する議論ではしばしばこれが一番のデメリットとして紹介されます。

出来高の少なさに次ぐ問題としてあげられるのが、フロントランニング問題です。フロントランニングとは、被攻撃者が取引所にて行ったオーダーを見た攻撃者(以下、フロントランナーとします)が被攻撃者のオーダーより先回りして自身のオーダーを処理する/させることで、被攻撃者を不利なレートで取引させるという不正手段です。

ちなみにフロントランニング自体はなにも仮想通貨特有の問題ではありません。証券などの金融商品市場においてもフロントランニング問題はずっと議論されてきました。フロントランニングは被攻撃者の利益を大きく損なうものであり倫理上許されるものではないとして、日本では金融商品取引法において禁止が明文化されています。仮想通貨においては2018年8月現在未だフロンとランニングを取り締まる法はなく、法的には野放しになっている状況です。法的な面ではなく仕組み作りにおいて何らかの対策をとっていく必要があります。

通常の分散型取引所おいては、マイナーとユーザーがフロントランニングを仕掛けるフロントランナーになることができてしまいます。以下ではこの二者によるフロントランニングについて紹介していきます。

ユーザーによるフロントランニング

取引所での取引において、トランザクションがネットワークにブロードキャストされてから、ブロックに組み込まれ、マイニングされるまでには一定の時間差があります。その待機時間の間、トランザクションは「pending transaction pool」でマイニングされるのを待つことになります。

フロントランナーは、Pending Transaction Poolの様子を観察し、自分のトランザクションが優先的にブロックに組み込まれるようにブロードキャストすることでターゲットのトランザクションを妨害=フロントランニングすることができます。さらに具体的に説明するために、1ETHを100EOSにかえるオーダーを例に詳しいフロントランニングの手順を見ていきましょう。

まず、ターゲットが1ETHを100EOSに替えるオーダーを出し、同オーダーはpending transaction poolに存在するとします。フロントランナーはpending transaction poolからこのオーダーを確認し、同じオーダーを送信します。イーサリアムを分散型取引所で取引する際には自分でgas price(=手数料)を決めなくてはなりません。フロントランナーがこのオーダーを送る際に、ターゲットのトランザクションが設定したgas priceよりも高いgas priceを設定するしてオーダーを送ります。

合理的なマイナーであれば、より多くの手数料報酬を得るためにgas priceの高いトランザクションを優先してブロックに取り込もうとします。従って、フロントランナーのトランザクションが優先的に処理されてしまいます。これによって、ETH対EOSのレートは悪化してしまうことになります。(例えば1ETH=100EOSだったのが1ETH=99EOSとなり、被攻撃者は1ETHに対して少ない額のEOSしか得られなくなってしまいます。)

マイナーによるフロントランニング

ユーザーがフロントランナーとなる場合、ユーザーは高い手数料を支払うデメリットを被りますし、マイナーが自分のオーダーを優先してくれるかわからないという不確実性を抱えていました。一方で、マイナーがフロントランナーとなった場合、さらにフロントランニングの確度は上がってしまい、より対応が難しくなります。

マイナーはpending transaction poolから好きな順番でトランザクションを処理することができます。従って、マイナーは自分のトランザクションを優先的に処理することで簡単にフロントランニングが出来てしまうのです。

仕組み上、マイナーによるフロントランニングは対処するのが非常に難しいです。ユーザーによるフロントランニングの場合、予めgas priceに上限値を定めておけば、上限値でオーダーを送ることでフロントランナーによる回り込みから自衛することが可能です。しかし、マイナーがフロントランニングを行う場合はgas priceに関係なく自分のオーダーを優先させれば良いだけなのでgas priceに上限を決める方法では対処しきれないのです。

フロントランニングを防ぐための手段とは

ここまで、フロントランニングには2つの立場のフロントランナーが存在しうること、また、そのうちマイナーによるフロントランニングについては対処が難しいということを説明してきました。しかし、分散型取引所を実現させるためにはフロントランニングに対する対策が必須です。以下では現在考えられている対策を紹介していきます。

①バッチオークション法式

通常の株式市場などで取引を処理する際にはオーダー法式が採用されています。通常の方法であれば連続取引 (continuous trading)に区分され、逐次発生する売買注文を継続的に個別にマッチングさせていきます。対してこちらで紹介するのはオークション形式と呼ばれる方法で、大量の売り注文, 買い注文を単一価格で精算する方式となっています。

バッチオークション法式では一定時間ごとに取引が成立するような仕組みになっています。一定時間ごとにしかオーダーが成立しないように設定しておくことで、他人よりも先にオーダーを通すことによってメリットを得られなくするのです。バッチオークションを採用すると取引のスピードを上げることによるメリットが無くなり、フロントランニングも防止することができます。

②ダッチオークション法式

ダッチオークションも大量の売り買い注文を単一価格で処理する「オークション法式」の一種ですが、こちらは最初に設定したスタート価格から販売が終了するまで徐々に価格が下がっていくというオークション方式です。オークションがスタートすると価格は徐々に下がっていくので、買い手は「買っても良いな」と思う金額になった時に入札を行います。入札者が入札した数量は即座に落札され、売りに出された数量分が全て無くなった時点でオークションが終了します。落札額は、一律オークション終了時の価格となります。

ダッチオークションを採用すると、利用者は皆同じ価格で取引をすることになるので、フロントランニングを防ぐことができます。ダッチオークション法式は予測市場プラットフォームである仮想通貨Gnosisが実装を進めている分散型取引所で採用されたことで周知が進みました。

    ③秘密分散法

    分散型取引所におけるフロントランニングは、フロントランナーがpending transaction poolのトランザクションを自由に観察できるという点を突いて行われます。従って、このpending transaction poolの観察を自由に行えなくすればフロントランニングの問題は起こり得ません。

    秘密分散法とは暗号技術の一種であり、これを用いることでフロントランニングを行いたい個人がブロックチェーン上のトランザクションを閲覧できないようにすることができます。具体的には、まず分散型取引所上のトランザクションの情報を複数個に分割し、集団内の各個人に分配します。トランザクションの情報を復元するためにはこの各個人に分配された情報を特定の数以上集める必要があるため、1人や少数の悪意ある個人ではトランザクションの内容を紐解くことができなくなるのです。このように分散型取引所上で個人がオーダーの内容を把握するのを防ぐことでフロントランニングを未然に防止することがができます。

    まとめ:将来が期待される分散型取引所。フロントランニングの解決は急務!

    分散型取引所は、従来の中央集権的な取引所のセキュリティ問題を解決する手段として開発が急がれています。分散型取引所の普及に際し、フロントランニング問題の解決は不可欠かつ急務です。誰にとっても安心安全に取引を行うことができる取引所が実現し普及していくことを願うばかりです。また、分散型取引所においてもP2P取引が主要となっていく路線なども引き続き議論されていくかもしれません。最後までお読み頂きありがとうございました。