ブロックチェーンアプリの トランザクションに 対するデータ分析 1 @odan3240
View Slide
自己紹介 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/ethereum-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