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
900
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
10k
寄り道禁止!LayerX インボイスの爆速開発を支えるロードマップ作り / how-to-create-layerx-invoice-roadmap
naomasabit
7
24k
デジタル空間でのブロックチェーン応用事例 / Blockchain use cases in digital space
naomasabit
0
610
SHIEDLにおけるGKE, CircleCIを活用したサービス、フルノードの基盤開発 / SHIEDL-blockchain-full-node-infrastructure
naomasabit
1
640
セキュリティインシデント事例とブロックチェーンモニタリング・分析サービスcatabiraのご紹介 / Case of security incidents of cryptocurreny and introduction of blockchain monitoring and analysis service "catabira"
naomasabit
0
690
Yellow Paper から読み解くEthereumブロックチェーンの詳細仕様 / Reading out specifications from Ethereum Yellow Paper
naomasabit
10
9.9k
有名なスマートコントラクト脆弱性・ハックについての復習 / Widely known vulnerability of smart contract
naomasabit
2
1.1k
ブロックチェーンサービスのセキュリティを考える
naomasabit
12
8k
Other Decks in Technology
See All in Technology
ソフトウェアエンジニアリングの知見を活かして データ基盤をいい感じにする on Snowflake [MIERUNE BBQ #10]
mtpooh
2
150
データベース研修 DB基礎【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
210
Azure Pipelinesを使用したCICDベースラインアーキテクチャ実践
yuriemori
0
190
AOAI Dev Day - Opening Session
yoshidashingo
2
430
サービス開発を前に進めるために 新米リードエンジニアが 取り組んだこと / Steps Taken by a Novice Lead Engineer to Advance Service Development
nologyance
0
180
開発と事業を繋ぐ!SREのオブザーバビリティ戦略 ~ Developers Summit 2024 Summer ~
leveragestech
0
620
【基調講演】変える、今ここから ― IoTとAIで紡ぐ未来
soracom
PRO
0
310
エンジニアリングマネージャーはどう学んでいくのか #devsumi / How Do Engineering Managers Continue to Learn and Grow?
expajp
4
1.3k
AutomatedLabを使って内部ペンテストを勉強しよう! -やられ社内ネットワークの自動構築-
n_etupirka
1
610
What if...? 처음부터 다시 LLM 어플리케이션을 개발한다면
huffon
0
1k
AI研修【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
130
AOAI Dev Day LLMシステム開発 Tips集
hirosatogamo
15
3.6k
Featured
See All Featured
Designing for Performance
lara
604
67k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
105
6.8k
What the flash - Photography Introduction
edds
65
11k
Docker and Python
trallard
37
2.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
245
1.2M
The Pragmatic Product Professional
lauravandoore
29
6.1k
Into the Great Unknown - MozCon
thekraken
20
1.3k
Faster Mobile Websites
deanohume
303
30k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
17
8.7k
Large-scale JavaScript Application Architecture
addyosmani
506
110k
WebSockets: Embracing the real-time Web
robhawkes
59
7.2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
149
45k
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