Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ブロックチェーンアプリのトランザクションに対するデータ分析 / PyCon-JP-2019

odanado
PRO
September 16, 2019

ブロックチェーンアプリのトランザクションに対するデータ分析 / PyCon-JP-2019

odanado
PRO

September 16, 2019
Tweet

More Decks by odanado

Other Decks in Programming

Transcript

  1. ブロックチェーンアプリの

    トランザクションに

    対するデータ分析

    1

    @odan3240


    View Slide

  2. 自己紹介

    2


    View Slide

  3. 自己紹介

    ● Twitter: @odan3240

    ● ソフトウェアエンジニア


    ● 会社: モバイルファクトリー

    ○ チーム: ブロックチェーンチーム

    3


    View Slide

  4. 自己紹介

    ● PyCon JP 参加 2回目

    4


    View Slide

  5. 目次

    ● 発表の概要

    ● ブロックチェーン (Ethereum) とは

    ● NFT / NFT ゲーム とは

    ● 本題

    ○ 方法

    ○ 分析例

    5


    View Slide

  6. 発表の概要

    6


    View Slide

  7. 発表の概要

    ● 2018年はブロックチェーンを用いた

    アプリ/ゲームが数多くリリースされた

    ● ブロックチェーン上のデータは基本的にパブリック


    ● 普通のゲームは内部の取引は非公開

    ● パブリックに公開されているデータに対して

    BigQuery を用いて集計処理を行っているところを

    伝えられると嬉しい

    7


    View Slide

  8. Ethereum とは

    8


    View Slide

  9. Ethereum とは

    ● ブロックチェーンの1つ

    ○ Bitcoin などと同じく仮想通貨を持ち流通している


    ● ブロックチェーンアプリのプラットフォーム

    ○ ブロックチェーン上にプログラムをデプロイできる

    ■ AWS Lambda に関数をデプロイするイメージ

    ■ 改ざんされない永続化 KVS 付き

    9


    View Slide

  10. Ethereum とは

    ● コントラクト

    ○ ブロックチェーン上にデプロイされたプログラム

    ● トランザクション

    ○ コントラクト上の関数呼び出し

    ● ブロック

    ○ 約15秒間隔の世界中のトランザクションの集まり

    ● ノード

    ○ トランザクションを集めてブロックを作る

    ○ 世界中に存在して P2P で同期している

    ● ユーザー

    ○ 普通の一般人

    ○ 固有の秘密鍵を持つ
 10


    View Slide

  11. Ethereum とは

    ● Ethereum を利用する流れ

    ○ ユーザーはトランザクションに対して秘密鍵で署名

    ○ ユーザーはトランザクションをノードに送信

    ○ ノードはトランザクションを

    他のノードにブロードキャスト

    ○ ノードはブロックを生成

    ● 特徴

    ○ 誰がどのトランザクションをいつ実行したかわかる

    11


    View Slide

  12. NFT とは

    12


    View Slide

  13. NFT とは

    ● Non-Fungible Token = 代替不可能なトークン

    ● お金は Fungible (代替可能)

    ○ Alice が持つ 100円 と Bob が持つ 100円は同じ




    13


    View Slide

  14. NFT とは

    ● NFT の使われ方

    ○ ユーザーの一部アイテムの所有権の情報を

    ブロックチェーンに記録

    ● NFT の取引

    ○ 運営からの購入

    ○ ユーザー間での売買


    ● NFT の取引も誰がいつ何を行ったかがわかる


    14


    View Slide

  15. 本題

    15


    View Slide

  16. ブロックチェーンアプリのデータ分析

    ● ブロックチェーンアプリの特徴

    ○ 「誰がどのトランザクションをいつ実行したかわかる」

    ○ 「ゲームアイテム (NFT) の取引内容がパブリック」


    ● 第三者が分析や検証することが可能

    ○ 普通のアプリだと運営かアプリの

    プラットフォーマーしかできないこと

    16


    View Slide

  17. 方法

    ● 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


    View Slide

  18. 方法

    ● データのスキーマ

    18


    View Slide

  19. 方法

    19


    View Slide

  20. 分析例

    20


    View Slide

  21. 各月ごとのトランザクション数

    ● Ethereum 全体のトランザクション数

    21


    View Slide

  22. 各月ごとのトランザクション数

    22


    View Slide

  23. 各月ごとのトランザクション数

    23


    View Slide

  24. NFT の取引数

    24


    View Slide

  25. NFT の取引数

    25


    View Slide

  26. NFT の取引数

    26


    View Slide

  27. まとめ

    27


    View Slide

  28. まとめ

    ● Ethereum はブロックチェーンの一種

    ● Ethereum を用いたブロックチェーンアプリや

    ゲームがリリースされている

    ● Ethereum のデータはパブリック

    ○ 第三者が分析や検証を行える


    ● 今回は方法を紹介した

    ○ BigQuery を用いて集計

    ○ Pandas で加工

    ○ matplotlib で可視化

    28


    View Slide