Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
ブロックチェーンアプリのトランザクションに対するデータ分析
1
@odan3240
自己紹介
2
自己紹介
● Twitter: @odan3240
● ソフトウェアエンジニア
● 会社: モバイルファクトリー
○ チーム: ブロックチェーンチーム
3
自己紹介
● PyCon JP 参加 2回目
4
目次
● 発表の概要
● ブロックチェーン (Ethereum) とは
● NFT / NFT ゲーム とは
● 本題
○ 方法
○ 分析例
5
発表の概要
6
発表の概要
● 2018年はブロックチェーンを用いた
アプリ/ゲームが数多くリリースされた
● ブロックチェーン上のデータは基本的にパブリック
● 普通のゲームは内部の取引は非公開
● パブリックに公開されているデータに対して
BigQuery を用いて集計処理を行っているところを
伝えられると嬉しい
7
Ethereum とは
8
Ethereum とは
● ブロックチェーンの1つ
○ Bitcoin などと同じく仮想通貨を持ち流通している
● ブロックチェーンアプリのプラットフォーム
○ ブロックチェーン上にプログラムをデプロイできる
■ AWS Lambda に関数をデプロイするイメージ
■ 改ざんされない永続化 KVS 付き
9
Ethereum とは
● コントラクト
○ ブロックチェーン上にデプロイされたプログラム
● トランザクション
○ コントラクト上の関数呼び出し
● ブロック
○ 約15秒間隔の世界中のトランザクションの集まり
● ノード
○ トランザクションを集めてブロックを作る
○ 世界中に存在して P2P で同期している
● ユーザー
○ 普通の一般人
○ 固有の秘密鍵を持つ 10
Ethereum とは
● Ethereum を利用する流れ
○ ユーザーはトランザクションに対して秘密鍵で署名
○ ユーザーはトランザクションをノードに送信
○ ノードはトランザクションを
他のノードにブロードキャスト
○ ノードはブロックを生成
● 特徴
○ 誰がどのトランザクションをいつ実行したかわかる
11
NFT とは
12
NFT とは
● Non-Fungible Token = 代替不可能なトークン
● お金は Fungible (代替可能)
○ Alice が持つ 100円 と Bob が持つ 100円は同じ
13
NFT とは
● NFT の使われ方
○ ユーザーの一部アイテムの所有権の情報を
ブロックチェーンに記録
● NFT の取引
○ 運営からの購入
○ ユーザー間での売買
● NFT の取引も誰がいつ何を行ったかがわかる
14
本題
15
ブロックチェーンアプリのデータ分析
● ブロックチェーンアプリの特徴
○ 「誰がどのトランザクションをいつ実行したかわかる」
○ 「ゲームアイテム (NFT) の取引内容がパブリック」
● 第三者が分析や検証することが可能
○ 普通のアプリだと運営かアプリの
プラットフォーマーしかできないこと
16
方法
● BigQuery の Public Dataset 上に
Ethereum の トランザクションの情報が公開 されている
○ https://cloud.google.com/blog/products/data-analytics/ether
eum-bigquery-public-dataset-smart-contract-analytics
○ https://github.com/blockchain-etl/ethereum-etl
17
方法
● データのスキーマ
18
方法
19
分析例
20
各月ごとのトランザクション数
● Ethereum 全体のトランザクション数
21
各月ごとのトランザクション数
22
各月ごとのトランザクション数
23
NFT の取引数
24
NFT の取引数
25
NFT の取引数
26
まとめ
27
まとめ
● Ethereum はブロックチェーンの一種
● Ethereum を用いたブロックチェーンアプリや
ゲームがリリースされている
● Ethereum のデータはパブリック
○ 第三者が分析や検証を行える
● 今回は方法を紹介した
○ BigQuery を用いて集計
○ Pandas で加工
○ matplotlib で可視化28