- DEXの問題点「フロントランニング」
- フロントランニングとは、攻撃対象者のオーダーを見た攻撃者が先回りして自身のオーダーを処理することで、攻撃対象者をより不利なレートで取引させる攻撃手段。DEX自体の安全性を大きく揺るがす問題ではないものの、マイナーやユーザーが攻撃を仕掛けられる可能性が指摘されている。
- フロントランニングの解決策
- 攻撃者がオーダーを先回りできないようなオーダー方式を設計したり、暗号技術を用いたりすることで、フロントランニングを防ぐことができる。予測市場プラットフォームであるGnosisは、DEXにおけるフロントランニングにいち早く注目しており、様々な解決策を考案している。
- DEXとは
- 分散型暗号通貨取引所(Decentralized EXchange)のこと。 ブロックチェーン上の非中央集権型取引所であることで、高い安全性がメリットになる反面、割高な手数料や法定通貨が使用できない点、流動性及び利便性の低さがデメリット。
- フロントランニングとは
- 攻撃対象者のオーダーを見た攻撃者が先回りして自身のオーダーを処理することで、攻撃対象者をより不利なレートで取引させる手段。これによって攻撃者は利ざやを稼ぐことができる。
数々の仮想通貨取引所のハッキング被害を受けて、比較的安全性の高い(DEX:decentralized exchange)に注目が集まっています。
DEXの問題点としては、やはり出来高の少なさが挙げられますが、最近はフィッシング詐欺のリスクや、「フロントランニング」についても重要な問題だと指摘されています。
そこで今回は、DEXにおけるフロントランニングのリスクと、その解決策について解説します。
分散型取引所(DEX)とは
分散型取引所(DEX)とは、中央管理者がいなくても仮想通貨の取引が可能な取引所の事です。
中央集権型取引所では、中央管理者がハッキングされ、ユーザーの「秘密鍵」を盗まれるリスクがありますが、DEXはこのようなハッキングに対して安全だと考えられています。
DEXに関する詳しい説明は、以下の記事も併せてご覧ください。
CoinPostの関連記事
フロントランニングとは
DEXのセキュリティは、狙われやすい中央集権取引所と比較して安全だとされていますが、現状ではいくつかのデメリットも指摘されています。
取引所の出来高が少ないことが主要なデメッリットとして議論されることが多いですが、「フロントランニング」もDEXが抱える重大な問題点の一つだと言えます。
フロントランニングとは、攻撃対象者のオーダーを見た攻撃者(以下、フロントランナーと呼ぶ)が先回りして自身のオーダーを処理することで、攻撃対象者をより不利なレートで取引させる手段です。
理論上、通常のDEXにおいてはマイナーとユーザーが、フロントランニングを仕掛けられます。
ユーザーによるフロントランニング
トランザクションがネットワークにブロードキャストされてから、そのトランザクションがブロックに組み込まれてマイニングされるまでには一定の時間差が存在します。
その期間、トランザクションは「pending transaction pool」でマイニングされるのを待ちます。
フロントランナーは、このpending transaction pool上のトランザクションを観察し、優先的にブロックに組み込まれる自身のトランザクションをブロードキャストすることで、ターゲットのトランザクションを妨害します。
具体的には、フロントランニングは次のような手順で進められます。
1. 1ETHを100EOSに替えるオーダーがpending transaction poolに存在するとする
2. ターゲットが100EOSを1ETHに替えるオーダーを送り、pending transaction pool組み込まれる
3. フロントランナーはpending transaction poolからこのオーダーを確認し、同じオーダー(100EOS→1ETH)を送信する(この際、ターゲットのトランザクションが設定したgas priceよりも高いgas priceを設定する)
4. 合理的なマイナーは、より多くの手数料報酬を得ることができる、gas priceの高いトランザクションを優先してブロックに取り込むため、フロントランナーのトランザクションが優先される
5. フロントランナーのオーダーが処理され(100EOS=1ETH)、ETHに対するEOSのレートが悪化する(101EOS=1ETH)
6. 本来なら100EOSで1ETHを得られたはずのターゲットは、1ETHを得るために101EOSを支払わなければならい
マイナーによるフロントランニング
フロントランナーがマイナーになると、さらに対処が難しくなります。
マイナーは「pending transaction pool」から、好きな順番でトランザクションを処理できます。
したがって、マイナーがフロントランナーである場合、自身のトランザクションを優先的に処理することでフロントランニングができます。
このようなマイナーによるフロントランニングは、ユーザーによるフロントランニングより対処が難しいです。
例えば、ユーザーによるフロントランニングであれば、gas priceに上限値を定めることで、ユーザーその上限値でオーダーを送信した時にフロントランナーがこのオーダーに回り込めなくなります。
しかし、マイナーによるフロントランニングでは、マイナーはgas priceに関係なく好きなようにトランザクションを順序づけることができてしまうので、gas priceに上限値を設けても、解決できません。
フロントランニングの解決策
フロントランニングの解決策としては、以下のようなものが考えられます。
バッチオークション
バッチオークションとは、通常の株式市場の連続的なオーダー方式とは異なり、一定時間ごとに取引を成立させるオークション方式です。
あらかじめ一定時間ごとにしかオーダーが成立しない設定にすることで、他人よりも先にオーダーを通すことによって得られるメリットを無くします。
バッチオークションによって、オークション参加者が他人を出し抜くための”取引スピード競争”に陥ることを未然に防ぐことができます。
ダッチオークション
ダッチオークションとは、最初に設定した価格から販売が終了するまで徐々に価格が下がっていくオークション方式です。
このオークション方式は、以下のような手順で進行します。
- オークションの開始後、買い手は買っても良いと思う金額になった時に入札を行う
- 即座に、入札者が入札した数量分だけ落札される
- 売りに出された数量分が全て落札された時点でオークションは終了する
- オークション終了時の価格を落札額とする
ダッチオークションを採用することで、常に同じ価格を利用者に与えることができるため、フロントランニングの防止につながります。
このオークション方式は、予測市場プラットフォームである、仮想通貨Gnosisが実装を進めているDEX(分散型取引所)でも採用されています。
CoinPostの関連記事
秘密分散法
DEXにおけるフロントランニングは、フロントランナーがpending transaction poolのトランザクションを自由に観察できる点を突いていました。
したがって、pending transaction poolの観察自体を自由に行えなくすれば、フロントランニングの問題は解決されます。
秘密分散法は暗号技術の一種であり、フロントランニングを行いたい個人がブロックチェーン上のトランザクションを閲覧するのを防止します。
この技術のもとでは、まずDEX上のトランザクションの情報を複数個に分割して、集団内の各個人に分配します。
このトランザクションの情報を復元するためには、各個人に分配された情報を特定の数以上集める必要があり、1人(あるいは少数)の個人だけでは決してトランザクションの内容を把握することができません。
このようにして、DEX上で個人が発注内容を把握するのを防ぐことができます。