7/25 Ethereum Hack Tokyo 登壇資料 EthereumブロックチェーンからDEXのデータを分析してインサイトを掘り出します。
1DEXのデータを分析してインサイトを掘り出す2019/7/25 Ethereum Hack TokyoNao Hanamura
View Slide
2これまでやってきたこと自己紹介:ブロックチェーンのエンジニアをしており、データアナリストの仕事も過去やってきました(2017/5〜)開発・コンサル• ブロックチェーンデータの分析基盤構築• ブロックチェーン領域のモニタリングSaaS開発(Go, Python, CI/CD, Kubernetes etc.)• 会計、財務データのデータアナリティクスコミュニティ活動• 技術ブログ「Neutrinoで働くブロックチェーンエンジニアのブログ」(www.blockchainengineer.tokyo/)• CGTF「暗号資産カストディアンのセキュリティについての考え方」暗号通貨監査• 暗号通貨監査の技術アドバイザリー✓ 特に取引所の監査手続開発✓ ブロックチェーンデータの分析✓ 特定通貨の監査手法などのリサーチ花村直親(Naochika Hanamura) @naomasabit
noteでブロックチェーンの分析レポートの試みを始めています3https://note.mu/naohanamura
4DEXはどれくらい使われているのか?
5EtherscanのDEX trackerによると、過去7日間で65,000件ほどトランザクションが生まれています
6EtherscanのDEX trackerによると、IDEXが約6割のトランザクションを占めており、こちらを掘り下げますhttps://etherscan.io/stat/dextracker
7IDEXのトランザクション数のほとんどはETHとの交換です
8IDEXのトランザクション数のほとんどはETHとの相対取引です
ETHとの相対取引については取引高をETHの時価を使えばUSD建てで取引高を算出できます9
1取引高推移を見ると、概ね日に20,000ETH(6,000,000USD)程度取引されています
6月時取引高は140,000,000USD(150億円程度)で、CEX含めた月間取引高ランキングでは100位程度です11
6月度人気取引トークンランキング(ETHで購入されているトークン)12
ETHと相対取引されているトークン割合はQuantというコインが多くを占めています13
参考:Quantチャート14
15https://note.mu/naohanamura/m/md88688a3936b「ブロックチェーンをデータから見るマガジン」で今年の1月〜などより長期間のIDEX取引分析を書きます。(宣伝)
IDEX分析の方法16
IDEXのコントラクトを見てみますhttps://etherscan.io/address/0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208#code17
IDEXのコントラクトは基本的にデポジット型のDEXです18デポジット型のDEXの流れ
IDEXのスマートコントラクトではfunction tradeで取引が実行されています// ユーザーの残高台帳mapping (address => mapping (address => uint256)) public tokens;//mapping of token addresses to mapping of account balances/*tradeAddressses[0] tokenBuy[1] tokenSell[2] maker[3] taker*/// 交換部分。引いてから足しているtokens[tradeAddresses[1]][tradeAddresses[2]] = safeSub(tokens[tradeAddresses[1]][tradeAddresses[2]],safeMul(tradeValues[1], tradeValues[4]) / tradeValues[0]);tokens[tradeAddresses[1]][tradeAddresses[3]] = safeAdd(tokens[tradeAddresses[1]][tradeAddresses[3]],safeMul(safeMul(((1 ether) - tradeValues[7]), tradeValues[1]), tradeValues[4]) / tradeValues[0] / (1 ether));function tradeの交換部19
Ethereum transaction には”data”項目として呼び出す関数と引数がバイト配列でのっており、これを解析します20
Ethereum transactionに乗っているデータ解析例inputfunction amountBuy amountSell expires nonce amount trade_nonce fee_make fee_takeef34358800000000000000000000000000000000000000000000000005e6caf7b5556158000000000000000000000000000000000000000000000039b4407e159583a3e00000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000c0e5fdb00000000000000000000000000000000000000000000000005e6caf7b55561580000000000000000000000000000000000000000000000000000000334b74b7e00000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000000cc952fa7e8d41function amountBuy amountSell expires_decimal nonce_decimal amount_decimaltrade_nonce_decimalfee_make_decimal fee_take_decimaltrade(uint256[8],address[4],uint8[2],bytes32[4])425,250,380,081,095,000.001064452932157948797920 10000 202268635425,250,380,081,095,000 13769329534100000000000000035990579476268170xef34358800000000000000000000000000000000000000000000000005e6caf7b5556158000000000000000000000000000000000000000000000039b4407e159583a3e00000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000c0e5fdb00000000000000000000000000000000000000000000000005e6caf7b55561580000000000000000000000000000000000000000000000000000000334b74b7e00000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000000cc952fa7e8d410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000543ff227f64aa17ea132bf9886cab5db55dcaddf0000000000000000000000007f37b7cc0c8b9dd50a337c412486acf3a7de81930000000000000000000000007059010320d07a47d2ad54db88bb89ea644c3e6f000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001bbb26985aa4111d7028f569be09b88476735a22747109b673c917976c7ed4f31424d2af8ba4439954a479aa6a07e6ba41e61fd0fff9846bc94fa7972f0a85d6e6bb0c02f1a093f0ec95f6876726288b98db80700439455d4585c1fb0276b65aa63511e05be8b5d173d4efbd4e554c930188fd80e8a3f17db2ef5a16c203cbedbe21
トランザクションを一つずつ解析した結果がこのようになりますinput0xef34358800000000000000000000000000000000000000000000000005e6caf7b5556158000000000000000000000000000000000000000000000039b4407e159583a3e00000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000c0e5fdb00000000000000000000000000000000000000000000000005e6caf7b55561580000000000000000000000000000000000000000000000000000000334b74b7e00000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000000cc952fa7e8d410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000543ff227f64aa17ea132bf9886cab5db55dcaddf0000000000000000000000007f37b7cc0c8b9dd50a337c412486acf3a7de81930000000000000000000000007059010320d07a47d2ad54db88bb89ea644c3e6f000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001bbb26985aa4111d7028f569be09b88476735a22747109b673c917976c7ed4f31424d2af8ba4439954a479aa6a07e6ba41e61fd0fff9846bc94fa7972f0a85d6e6bb0c02f1a093f0ec95f6876726288b98db80700439455d4585c1fb0276b65aa63511e05be8b5d173d4efbd4e554c930188fd80e8a3f17db2ef5a16c203cbedbe22
• IDEXがDEX全体のトランザクションの6割を占めている(etherscan調べ)• IDEXのトランザクションを解析したところ、月間取引高はおよそ140,000,000USD(150億円程度)で、CEX含めた月間取引高ランキングでは100位程度• データはスマートコントラクトの呼び出しトランザクション解析に基づいているまとめ23