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
1.1k
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
12k
寄り道禁止!LayerX インボイスの爆速開発を支えるロードマップ作り / how-to-create-layerx-invoice-roadmap
naomasabit
7
27k
デジタル空間でのブロックチェーン応用事例 / Blockchain use cases in digital space
naomasabit
0
750
SHIEDLにおけるGKE, CircleCIを活用したサービス、フルノードの基盤開発 / SHIEDL-blockchain-full-node-infrastructure
naomasabit
1
780
セキュリティインシデント事例とブロックチェーンモニタリング・分析サービスcatabiraのご紹介 / Case of security incidents of cryptocurreny and introduction of blockchain monitoring and analysis service "catabira"
naomasabit
0
850
Yellow Paper から読み解くEthereumブロックチェーンの詳細仕様 / Reading out specifications from Ethereum Yellow Paper
naomasabit
10
11k
有名なスマートコントラクト脆弱性・ハックについての復習 / Widely known vulnerability of smart contract
naomasabit
2
1.3k
ブロックチェーンサービスのセキュリティを考える
naomasabit
12
8.3k
Other Decks in Technology
See All in Technology
The Engineer with a Three-Year Cycle - 2
e99h2121
0
200
AI時代、1年目エンジニアの悩み
jin4
1
120
システムのアラート調査をサポートするAI Agentの紹介/Introduction to an AI Agent for System Alert Investigation
taddy_919
0
530
ZOZOにおけるAI活用の現在 ~開発組織全体での取り組みと試行錯誤~
zozotech
PRO
1
910
SREの仕事を自動化する際にやっておきたい5つのポイント
jacopen
6
1.2k
Amazon Bedrock AgentCore EvaluationsでAIエージェントを評価してみよう!
yuu551
0
190
Deno・Bunの標準機能やElysiaJSを使ったWebSocketサーバー実装 / ラーメン屋を貸し切ってLT会! IoTLT 2026新年会
you
PRO
0
130
一番人に近いコードレビューア CodeRabbit
kinopeee
0
120
BPaaSオペレーション・kubell社内 n8n活用による効率化検証事例紹介
kubell_hr
0
370
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
17k
ゼロから始めたFindy初のモバイルアプリ開発
grandbig
2
510
プロダクトエンジニアこそ必要なPMスキル 〜デリバリー力を最大化し、価値を届け続けるために〜
layerx
PRO
0
150
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.1k
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
BBQ
matthewcrist
89
10k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
Done Done
chrislema
186
16k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
230
Discover your Explorer Soul
emna__ayadi
2
1.1k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.5k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
310
We Are The Robots
honzajavorek
0
150
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