寄付窓口はこちら

やさしくないDeFi: フラッシュローンとフロントランニングの世界 #分散型金融

youtu.be

defi.connpass.com

f:id:niwatako:20201126200345p:plain

  • 持続可能なDAOへの道 2
  • フラッシュローンの始め方
  • DeFiフロントランニングの世界

持続可能なDAOへの道 2

Katheleen Chu

f:id:niwatako:20201126200538p:plain

前回やさしいDeFiでパート1をお話しました。今日はパート2です。

MakerDAOがどのように分散化に向かっているか。

クリプトの世界では分散化がよく話題に上がります。Makerは完全な分散化に向け進んでいます。

経験を共有することで学んでいただければと思います。

Maker 改善提案

f:id:niwatako:20201126200639p:plain

Foundationは完全なDAOを目標に事前に準備しておく必要があります。

f:id:niwatako:20201126200706p:plain

f:id:niwatako:20201126200714p:plain

セキュリティ基準を確保しつつコミュニティで検証可能にするプロトコルの変更に関する重要な決定が行われている。BIPやEIPのようにMIPで重要な問題を明確にし改善する。

MIPはMakerガバナンスに足りない部分があるため厳密に構造化形式化されなければならない。Foundationが議論を始め最初のMIP創案を作成する間にコミュニティは競合するMIPを提案できる。

最終的にはMKR有権者によって決定される。

MIPは将来に渡って明確で透明なフレームワークを提供してガバナンスプロトコルへの適用と進化を可能にする。

これはだれでもMIP提案できるんですか

誰でもできます

どこに?

フォーラムとか。よくフォーラムで議論しながら提案が進んでいます。どこでも、フォーラムはメインですが、もしコミュニティがみんな例えばこの提案を進めたいということであれば、自分でコードがかければみんなで投票できるようにもできるが、コミュニティメンバーはフォーラムで提案できる。

f:id:niwatako:20201126201018p:plain

詳しくはブログやリンクをあとで共有します。

被選出有償貢献者

f:id:niwatako:20201126201046p:plain

EPCの一部が重要なプロセスの管理に必要になると考えられている。暫定リスクチームや暫定オラクルチームなどMakerプロトコルの管理を行うドメインチームを複数選出しました。

投票代理人

f:id:niwatako:20201126201228p:plain

MKR保有者に変わって投票する。投票率が低くて問題になっているがそれはこれから変わっていくと思われる。

小規模MKR保有者がガバナンスに影響力を与える方法。

コミュニティの役割がより大きくなり、すべての保有者の積極的なコミュニティへの関与が重要になる。

MKR有権者なら誰でも自分の議決権と他社の議決権を共同で保有できる。

それによってプロジェクトの管理券と所有権が拡大しガバナンスの分散化が更に進む。

次のステップ

f:id:niwatako:20201126201346p:plain

f:id:niwatako:20201126201402p:plain

解散予定日はあるんですか

予定はない。リソースがずっと続くのではないが、リソースがどんどんくなるので、ある程度成功したあと全速ですすめたい。

全体システムの健全性のために色々進んでいます。

今回本当にみんなコミュニティにシェアしたいのは、これから色々チャンスがあるので是非参加したい(してほしい?)

一つ明確なのは、準備できないままfoundationが解散することはない。それは一番重要です。

Delegate先(投票代理人)は人気投票になってしまいませんか、誰でもなることができますか?

誰でもなれますが、想像できるのが、代理人が毎回投票した結果

僕がなりたいと言ってパッとなることもできる?

それはフォーラムに参加してその段階は投票あまり正式の投票ではなくフォーラムでプール、みんなどう考えるかというのを投票して、そのあとMKR保有者が投票して正式になる。

Kybernetworkで投票代理人がいるが、BinanceとかにみんなKNCトークンを置いている。そうするとBinanceが投票できる。Binanceがものすごい大口になってしまう。ほかが全部反対でも通ってしまうぐらい。あとからそういう問題が生じる可能性もあるなと今聞いていて思いました。また、KNCトークンは自分が投票するインターフェースから委任先を選ぶだけで、簡単に投票を委任できます。ということも気軽にできる。Makerとかも、技術的にはできるので、そうなるかもしれない?

そうですね。ガバナンスはこれから色々やりながら一番いい方法に進みたいと思います。

最後ですが、分散化プロセスはコミュニティのサポートが必要です。

f:id:niwatako:20201126202022p:plain

MakerDAOに情熱がある方是非チェックしてみてください。もし質問があれば聞いてみてください。もしわからなくても後でお答えできると思います。

フラッシュローンの始め方

フラッシュローンは民主的なところが好き。誰でも担保なく借りることができる。

数週間前に時間ができたのでフラッシュローンのコントラクトを書いてみました。

その過程で仕組みや、お金もウケるためにどうするのか色々学んだことがあったので、今日は短いですがシェアできればと思います。

フラッシュローンは使われ方がいろいろ。今後も色々開発されると思う。

一番ポピュラーな使い方はアービトラージ。今日はアービトラージに絞って話をする。

フラッシュローンって何か。一つのトランザクションの中でお金を借りて、借りたお金で自分がやりたいこと、例えばアービトラージをやって、同じトランザクションの中でお金を返す、という仕組み。

僕が書いたコントラクトで、

github.com

Aaveというプロトコルで借りてCurveで交換してUniswapでまた交換して返済する。

AaveとCurveとUniswapで扱われているトークンならなんでも。 USDCを借りてCurveでDAIに変えてUniswapでUSDCに変えてAaveにかえして残りを自分のポケットに入れるということができる。

これと似たようなロジックでお金を稼いでいるトランザクションがあって、やっていることはすごいシンプルで160万円分ぐらい稼いでいる。

これはdydxからUSDCを借りてきて、CurveでDAIに変えて、、、、

cryptopotato.com

フラッシュローン3選

Aaveはトークン22個ぐらい借りれて、0.9%。

デベロッパーからすると書きやすくて、安い。

次がdydx、3つしかトークン借りられないが、Feeは0。ただ、ドキュメンテーション見てもらえばわかるようにサポートがひどい

f:id:niwatako:20201126202849p:plain

結構書くのが難しい。個人的にはあまりおすすめしていない。

最後

f:id:niwatako:20201126202910p:plain

交換できるの100個以上、フィーが0.3?%

Aave、dydxで扱われていないものはUniswapで借りることになる。

全種類??

リスティング、自動で生成できるので新しく作ってそれだけFlashSwapできないということはないのではないか。

いままでデベロッパーとしてどう使うかという話をしていたがGUIサービスも有る。

f:id:niwatako:20201126203121p:plain

本当はコード書かないといけない?

基本的にDeveloper向けに開発された。FURUCOMBOはDeveloperの人がコード書かなくてもいいようにしているだけ。

その代わりフレキシビリティがない。でも結構色々対応している。

ブロックを足していくような感じで組み立てる。

f:id:niwatako:20201126203257p:plain

いろいろなところで使える

f:id:niwatako:20201126203234p:plain

お金を稼げるかわからないけどフラッシュローンのトランザクション自体は作れる。

この例だとAaveから8000DAI借りている?

そう

これいくらでも借りれる?

リクイディティからいくらでも借りられる。

フラッシュローンとしての限度があるわけではないってことですよね。プールが浅かったら無いものは借りられないのは当然として、プールに100億あれば借りられるということですよね

1トランザクションで返しちゃいますからね。

800とかにするのはスリップするかもしれないから大きければいいというものじゃないんですね

そこは考えて調整しないといけない

逆にスリップさせてアタックしたとうのはこういうことですよね


bzxはフラッシュローンで借りるcompoundに入れる一番板の薄いWBTCを借ります、Uniswapに入れます、価格動きます、、と、意図的に価格を動かした。


犯罪にしか使われていないイメージがありますけど

そんなことはないですけどメディアが取り上げるのはそういうところなので、、

見えない部分ではアービトラージで市場の均衡に貢献しているということなんですかね

そうですね。DiscordでAaveとか行くとフラッシュローンちゃんねるがあってフラッシュローントランザクションが流れてくるのだが、見た限りそんな悪い子としているやつはいない。

逆に、メディアに出たやつしか悪い子としているやつはないんじゃないですかね。

実際フラッシュローンでお金を稼ぎたいと思ったときに、やらないといけないことは結構ある。例えばGas代。

さっきのお金稼いだトランザクションを見ると、結構かかっている

f:id:niwatako:20201126203905p:plain

Gas台を考える必要がある、スリッページも考える必要がある。借りる額が大きいほどいいというわけではない。

一番むずかしいのが、そもそもアービトラージの機会を見つけるのがすごい難しい。マニュアルでやるのは、実際やっている人に聞くと、まず無理と言っていた。

自分でbotを作ってExchange間で価格不均衡を検知してトランザクションを送らないと難しい。

ただサービスが有って、

f:id:niwatako:20201126204017p:plain

アービトラージの機会を見つけるサービス。

使ってないのでわからないが、もしかするとこれとフルコンボでうまくいくかもしれない。

1%でも違うと稼げる。借りる量が多ければ100万以上稼げる。

機会を見つけてトランザクションを送ってもうまく行かない可能性がある。フロントランニングされる可能性がある。トランザクションを送ったあとに誰かがそれよりも高いGasでトランザクション送っちゃう。

気をつけないといけないことがたくさんある。

この記事を読むと注意事項が色々書いてあるからやる人は読むのおすすめ。

f:id:niwatako:20201126204229p:plain

fifikobayashi.medium.com

Furucomboの#combohackingチャンネルでは情報交換がされているので覗いてみてください

discord.gg

フラッシュローンは倫理にどう思うか

悪意を持って作られたものじゃないからニュートラルだと思う。悪い使われ方もするけどアービトラージのような良い使い方もされている。不均衡があったことにアービトラージすればマーケットが安定するので経済的にはいいことのはず。フラッシュローンがあるとその機会が増えるからそういう意味ではいいこと。一概にフラッシュローン自体が悪いものだとは言えないと思う。

コントラクト作っている人がそういう事を考えてデザインしてこなかったから、フラッシュローンがあるとどういう脆弱性があるか考えてアップデートしていかないといけない

便利さについてシェアしたい。instadappというDeFiアプリがあってこれは結構使える。Compoundも使えるが、右の方に便利機能がある。100ETH担保にしていたけど100ETH分のDAIに組み替えるというのをフラッシュローン使ってパっとできる。借金を別のトークンに切り替えたりできる。そういうところでフラッシュローンの良さがあると感じた。

f:id:niwatako:20201126204656p:plain

そのときガス代は?


instadappは大掛かりだから5回とかトランザクションが必要でも、フラッシュローン使えば1トランザクションで済むので10回やるより遥かにGasは節約できる。

関係ないですがオプション取引している人と話したいので後で話しましょう。

DeFiのフロントランニングの世界

f:id:niwatako:20201126204952p:plain

THE DARK FORESTはサイエンスフィクション。世界観が修羅の世界(自分の居場所がバレるとやばい)みたいな設定。

f:id:niwatako:20201126205048p:plain

EthereumはDark Forestだと言い出した人がいる。

ParadigmというVCがいてUniswapなどに投資しているがその人のEthereum is a Dark Forestという記事から。

medium.com

ある人がUniswapのDiscordにLPトークンのコントラクトアドレスに自らLPトークンを送ってしまったと。

引き出し自体は簡単にできるが、引き出しは誰でもできてしまう。誰かが気づいて叩いてしまえば誰でも取れる。

Generalized Front-running botというのがある。今すぐトランザクションを叩いて取りに行けばいいかと言うと、そうではない。

Generalized Front-running botはmempoolを監視して、これ横取りできるというやつを見つけて自分がトランザクションを送り直す、一般化されたフロントランナー、何でも取れそうなものを取っていくボットがいる。

本当の持ち主がいて引き出そうとしていたら、それが監視されていて、先取りされてしまう...?

そういうことです。

f:id:niwatako:20201126205459p:plain

tx2つに分けて、プロキシーコントラクトみたいなのを書いてやってみたが、Infuraが2tx投げちゃダメとエラーを返して、次のtxのときにはもう盗られた。

そもそもFront-runningって

f:id:niwatako:20201126205606p:plain

ある取引を見た上で先回りしてFront-runnerがトランザクションを送ることで利益を得る。

成り行き回注文に先回りして買ってちょっと高く売る。

f:id:niwatako:20201126205709p:plain

Ethereumではブロックに入れるトランザクションと入れる順番まで決められてしまう。マイナーは自分を先に設定したりできる。マイナーは有利。

Ethereumではどっちの成行注文を先に処理しますかという問題が発生する。

Minerは潜在的にtxから価値を抽出できる。Miner Extractable Valueと言われる。

DeFiにロックされている金額や流動性が、6月以降増えて、マイナーはさらに得られる利益が増大した。

真面目にやってても手数料も受けたけど、さらにフロントランニングで損失をユーザーにぶつけながら利益を得ることもできると

実際にマイナーがどう価値を抽出しているか分析

f:id:niwatako:20201126210050p:plain

異常に安いGasPriceのトランザクションが通っている。

これはマイナーかマイナーに近い人達だと考えられる。

トランザクションを見るとCurve.fiのトランザクションがある。

EthereumがPoSになったら解決しますか

解決しないですね、いやらしいStaking Providerとかは加担するのではないか。

あと不自然な順番のトランザクション。

f:id:niwatako:20201126210255p:plain

普通GasPriceが高い順に処理するが、これは順番が違う。

これはUniswapを叩いている。

とあるSoloマイナー常にこのアドレスからのトランザクションがあってAaveできるものを優先的に行ったり。

f:id:niwatako:20201126210344p:plain

実際にMEVは行われている。

不自然な部分をなくせばもっと色々あるのではないか。

多分試し始めでこういう甘い設定だったのだろう。

f:id:niwatako:20201126210436p:plain

ダークフォレストから抜け出すには

LIENにETHを誰でも抜けるようになっていて、そのまま抜くとまずいので、Poolに直接トランザクションを載せて解決する、mempoolに載せずにやった。

ネットワークにブロードキャストせずにマイナーにちょくで送ることで抜き出す。

自分たちがフロントランニングして解決する。

こういうことをしないと抜け出せない。

マイナーがこういうサービスを提供したら?

実際、SpankPoolがホワイトハッカー向けに、俺達にコンタクトしてくれというのを提供している。

ホワイトハックトランザクションとかをブロードキャストせずに入れてくれる。

Front-runningから逃れるために

f:id:niwatako:20201126210731p:plain

Uniswapのプールでスリッページをデフォルトででかくしているものは良くない。3%とかになってる。流動性があれば0.5%とかでいいのではないか。少なくしすぎると相場急変同時に通らなかったりするが。

巨額のSwapはGasPriceをFastより上に設定する。

Chef Nomiはそれちゃんとやっている。1撃で10億ぐらい利確したとき1000GWei。10億円で、フロントランニング余裕でできる量だった。

普通のフロントランナーは奪おうとしてもなかなか奪えない。検知する前にそういうのは入っちゃう。

マイナーが飛びついてくれる額にする?

絶対に一番に入れてやる、という額にする。

いれてくれるマイナーが悪意を持っていたら

それは終わり。

ネットワークの過半数とかが相当悪意のある人達でなければ大丈夫ではないか。少なくとも一般のフロントランナーは寄せ付けない。

今日の異常なGas代は?

外部で価格がガッと動いたときにアービトラージしやすい。ETH価格が下がったのにUniswapの値段はそのまま、そうすると我先にと群がっていく。

価格が急降下・急騰するとUniswapの価格が遅れるのでアービトラージチャンス。

アービトラージャーとフロントランナーが戦っている。

Binanceがマイニングプールを始めたのはそういうの?

そういうのもあるかもね、あと自社の顧客のトランザクションを入れてあげる

将来的にはランダム性をもたせるという議論はされている。