Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DEXのデータを分析してインサイトを掘り出す / DEX Analysis
Search
Nao Hanamura
July 25, 2019
Technology
1
960
DEXのデータを分析してインサイトを掘り出す / DEX Analysis
7/25 Ethereum Hack Tokyo 登壇資料
EthereumブロックチェーンからDEXのデータを分析してインサイトを掘り出します。
Nao Hanamura
July 25, 2019
Tweet
Share
More Decks by Nao Hanamura
See All by Nao Hanamura
PMFを生み続ける意志力 #pmconf2022
naomasabit
6
11k
寄り道禁止!LayerX インボイスの爆速開発を支えるロードマップ作り / how-to-create-layerx-invoice-roadmap
naomasabit
7
25k
デジタル空間でのブロックチェーン応用事例 / Blockchain use cases in digital space
naomasabit
0
630
SHIEDLにおけるGKE, CircleCIを活用したサービス、フルノードの基盤開発 / SHIEDL-blockchain-full-node-infrastructure
naomasabit
1
660
セキュリティインシデント事例とブロックチェーンモニタリング・分析サービスcatabiraのご紹介 / Case of security incidents of cryptocurreny and introduction of blockchain monitoring and analysis service "catabira"
naomasabit
0
720
Yellow Paper から読み解くEthereumブロックチェーンの詳細仕様 / Reading out specifications from Ethereum Yellow Paper
naomasabit
10
10k
有名なスマートコントラクト脆弱性・ハックについての復習 / Widely known vulnerability of smart contract
naomasabit
2
1.2k
ブロックチェーンサービスのセキュリティを考える
naomasabit
12
8.1k
Other Decks in Technology
See All in Technology
小規模に始めるデータメッシュとデータガバナンスの実践
kimujun
2
260
Amazon FSx for NetApp ONTAPを利用するにあたっての要件整理と設計のポイント
non97
1
130
AWS SAW(AWS Support Automation Workflows)をもっと広めたい
kazzpapa3
2
170
「最高のチューニング」をしないために / hack@delta 24.10
fujiwara3
15
2.7k
AWS re:Inventを徹底的に楽しむためのTips / Tips for thoroughly enjoying AWS re:Invent
yuj1osm
0
180
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.6k
Vueで Webコンポーネントを作って Reactで使う / 20241030-cloudsign-vuefes_after_night
bengo4com
3
180
APIテスト自動化の勘所
yokawasa
4
1.1k
LeSSをはじめよう〜LeSSをはじめるとき、LeSSをはじめてから、知りたかったこと詰め合わせ〜
lycorptech_jp
PRO
2
210
品質の高い機能を”早く”提供するために技術的な面でチームでやったこと、やりたいこと
sansantech
PRO
2
230
Emacs x Nostr
hakkadaikon
1
120
インシデント対応の 実践と品質文化の醸成
____rina____
2
1.5k
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
1.9k
Unsuck your backbone
ammeep
668
57k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
46
2.1k
Practical Orchestrator
shlominoach
186
10k
Become a Pro
speakerdeck
PRO
24
4.9k
YesSQL, Process and Tooling at Scale
rocio
167
14k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
The Cult of Friendly URLs
andyhume
78
6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
A designer walks into a library…
pauljervisheath
202
24k
Transcript
1 DEXのデータを分析してインサイトを掘り出す 2019/7/25 Ethereum Hack Tokyo Nao Hanamura
2 これまでやってきたこと 自己紹介:ブロックチェーンのエンジニアをしており、データアナリストの 仕事も過去やってきました(2017/5〜) 開発・コンサ ル • ブロックチェーンデータの分析基盤構築 • ブロックチェーン領域のモニタリングSaaS開発
(Go, Python, CI/CD, Kubernetes etc.) • 会計、財務データのデータアナリティクス コミュニティ活 動 • 技術ブログ「Neutrinoで働くブロックチェーンエンジニアのブロ グ」(www.blockchainengineer.tokyo/) • CGTF「暗号資産カストディアンのセキュリティについての考え 方」 暗号通貨 監査 • 暗号通貨監査の技術アドバイザリー ✓ 特に取引所の監査手続開発 ✓ ブロックチェーンデータの分析 ✓ 特定通貨の監査手法などのリサーチ 花村直親(Naochika Hanamura) @naomasabit
noteでブロックチェーンの分析レポートの試みを始めています 3 https://note.mu/naohanamura
4 DEXはどれくらい使われているのか?
5 EtherscanのDEX trackerによると、過去7日間で65,000件ほどトランザ クションが生まれています
6 EtherscanのDEX trackerによると、IDEXが約6割のトランザクションを 占めており、こちらを掘り下げます https://etherscan.io/stat/dextracker
7 IDEXのトランザクション数のほとんどはETHとの交換です
8 IDEXのトランザクション数のほとんどは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
15 https://note.mu/naohanamura/m/md88688a3936b 「ブロックチェーンをデータから見るマガジン」で今年の1月〜など より長期間のIDEX取引分析を書きます。(宣伝)
IDEX分析の方法 16
IDEXのコントラクトを見てみます https://etherscan.io/address/0x2a0c0dbecc7e4d658f48e01e3 fa353f44050c208#code 17
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に乗っているデータ解析例 input function amountBuy amountSell expires nonce amount trade_nonce
fee_make fee_take ef343588 000000000000 000000000000 000000000000 000000000000 05e6caf7b5556 158 000000000000 000000000000 000000000000 000000000039 b4407e159583 a3e0 000000000000 000000000000 000000000000 000000000000 000000000000 2710 000000000000 000000000000 000000000000 000000000000 000000000c0e5 fdb 000000000000 000000000000 000000000000 000000000000 05e6caf7b5556 158 000000000000 000000000000 000000000000 000000000000 0000000334b7 4b7e 000000000000 000000000000 000000000000 000000000000 00038d7ea4c68 000 000000000000 000000000000 000000000000 000000000000 000cc952fa7e8 d41 function amountBuy amountSell expires_decimal nonce_decimal amount_decimal trade_nonce_deci mal fee_make_decim al fee_take_decimal trade(uint256[8], address[4],uint8[ 2],bytes32[4]) 425,250,380,08 1,095,000.00 106445293215 7948797920 10000 202268635 425,250,380,08 1,095,000 13769329534 100000000000 0000 359905794762 6817 0xef34358800000000000000000000000000000000000000000000000005e6caf7b5556158000000000000000000000000000000000000000000000039b4407e 159583a3e0000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000 0000c0e5fdb00000000000000000000000000000000000000000000000005e6caf7b555615800000000000000000000000000000000000000000000000000000 00334b74b7e00000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000000c c952fa7e8d410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000543ff227f64aa17ea132bf9886cab 5db55dcaddf0000000000000000000000007f37b7cc0c8b9dd50a337c412486acf3a7de81930000000000000000000000007059010320d07a47d2ad54db88bb89 ea644c3e6f000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000 0000000001bbb26985aa4111d7028f569be09b88476735a22747109b673c917976c7ed4f31424d2af8ba4439954a479aa6a07e6ba41e61fd0fff9846bc94fa7972f 0a85d6e6bb0c02f1a093f0ec95f6876726288b98db80700439455d4585c1fb0276b65aa63511e05be8b5d173d4efbd4e554c930188fd80e8a3f17db2ef5a16c203c bedbe 21
トランザクションを一つずつ解析した結果がこのようになります input 0xef34358800000000000000000000000000000000000000000000000005e6caf7b5556158000000000000000000000000000000000000000000000039b4407e 159583a3e0000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000 0000c0e5fdb00000000000000000000000000000000000000000000000005e6caf7b555615800000000000000000000000000000000000000000000000000000 00334b74b7e00000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000000c c952fa7e8d410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000543ff227f64aa17ea132bf9886cab 5db55dcaddf0000000000000000000000007f37b7cc0c8b9dd50a337c412486acf3a7de81930000000000000000000000007059010320d07a47d2ad54db88bb89 ea644c3e6f000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000 0000000001bbb26985aa4111d7028f569be09b88476735a22747109b673c917976c7ed4f31424d2af8ba4439954a479aa6a07e6ba41e61fd0fff9846bc94fa7972f
0a85d6e6bb0c02f1a093f0ec95f6876726288b98db80700439455d4585c1fb0276b65aa63511e05be8b5d173d4efbd4e554c930188fd80e8a3f17db2ef5a16c203c bedbe 22
• IDEXがDEX全体のトランザクションの6割を占めている(etherscan調べ) • IDEXのトランザクションを解析したところ、月間取引高はおよそ 140,000,000USD(150億円程度)で、CEX含めた月間取引高ランキングでは100位 程度 • データはスマートコントラクトの呼び出しトランザクション解析に基づいている まとめ 23