今回はFlipside CryptoでBitcoinの分析を実際にやってみた結果をまとめていきます。
前回こちらの記事でまとめたDuneAnalyticsの分析をFlipside Cryptoで実施していきます。
WEB3のデータ分析についてはまだ多くの情報が出回っておらず、手探りで分析していく必要があります。
今回はFlipside Cryptoに焦点を当てて、Bitcoinを例に分析を実施していきます。DuneAnalyticsとの違いも少し見えてきたので、記載をしています。
データサイエンティストとしてWEB3業界は未来の市場であり、大きなポテンシャルを秘めている市場です。今の内から知識を蓄えて、未来の市場に向けて動いていきましょう。
本記事の結論は「やっぱり分析だけでなく、市場理解が重要」です。
では、本題に移ります。
Flipside Cryptoとは?
Flipside CryptoとはWEB3を分析する上で有用な分析ツールです。
コミュニティ志向のオープンな分析プラットフォームとして構築されており、世界中のデータ分析者が簡単に無料で利用することができます。
あらゆるブロックチェーン上のデータにアクセスができ、自由に分析が可能です。
また、インターフェースも優れており初心者でも非常に分析しやすいプラットフォームになっています。
対応しているプロトコルも非常に多く、今後さらなるプロトコルへの対応も期待されます。
⇒Flipside Cryptoについて詳しく知りたい方はこちら
⇒WEB3の分析プラットフォームについて詳しく知りたい方はこちら
Bitcoinとは?
Bitcoin(ビットコイン)は、分散型のデジタル通貨です。
2008年にサトシ・ナカモトという名前の個人またはグループによって発表されました。
Bitcoinは、中央銀行や政府などの中央管理機関を介さずに、直接個人間での取引を可能にする仮想通貨です。
Bitcoinの特徴は以下の通りです。
- 分散型: Bitcoinは、ブロックチェーンと呼ばれる技術を使用して、取引記録を分散して管理します。これにより、一つの中央機関が存在せず、多数のコンピュータがネットワーク全体で取引情報を確認します。
- 公開台帳: ブロックチェーンは公開台帳であり、過去のすべての取引が永久に記録されます。このため、取引の透明性と信頼性が高まります。
- 限られた供給量: Bitcoinは2,100万枚までしか発行されない限られた供給量を持っています。これにより、インフレのリスクを抑えることができます。
- マイニング: 新しいBitcoinの発行や取引の検証は、コンピュータの計算能力を使ったプロセス(マイニング)によって行われます。これにより、ネットワークのセキュリティと運営が維持されます。
- 非中央集権: Bitcoinは、個人間で直接取引が行えるため、中央銀行や金融機関のような中央集権的な制御を受ける必要がありません。
- 投資対象: Bitcoinは通貨としてだけでなく、一部の人々にとっては投資対象としても見られており、価格の変動が激しいことでも知られています。
Bitcoinは上記の特徴から、新たな通貨として注目されています。WEB3の世界を知る上で知っておくべき最も有名な仮想通貨です。
Flipside Cryptoでの分析の勉強方法
Flipside Cryptoの分析を勉強する方法について解説していきます。
Flipside Cryptoでは多くのダッシュボードが分析結果として公開されています。
ダッシュボードは誰でも簡単にアクセスすることができ、ブロックチェーン上のデータの傾向を簡単に取得することができます。
Flipside Cryptoでは便利なことに、ダッシュボードを作るために使ったクエリを閲覧することができます。
そのため、ダッシュボードの分析結果とその元となるクエリを参照しながら、分析方法を学ぶことができます。
先駆者の知恵を借りながら勉強ができ、非常に初心者にもやさしいツールになっています。
今回はこの方法は用いず、前回先んじてDuneAnalyticsで分析した結果をFlipside Cryptoで実装・分析していこうと思います。
⇒「DuneAnalyticsでBitcoinの分析をやってみた」はこちら
Flipside Cryptoで分析できるBitcoinのデータ
Flipside Cryptoで分析できるBitcoinのデータは下記の4つです。
- core_fact_blocks(ブロック)
- core_fact_inputs(インプット)
- core_fact_outputs(アウトプット)
- core_fact_transactions(トランザクション)
- core_ez_miner_rewards(マイニング)
詳しく解説していきます。
core_fact_blocks(ブロック)
Bitcoinのブロックに関するデータを示します。
Bitcoinは、新しいトランザクションが追加されるたびに生成されるデータがブロックに格納されます。ブロックにはトランザクションの情報やブロックのヘッダーなどが含まれます。
ブロックチェーンはこれらのブロックが連なって構成されており、トランザクションの履歴が保持される仕組みです。
core_fact_inputs(インプット)
Bitcoinのトランザクションの入力に関するデータです。
Bitcoinのトランザクションは、送信者が一定数量のBitcoinを受信者に送る際に行われるもので、入力と出力から成り立っています。
入力は送信者が以前のトランザクションの出力を使用して新しいトランザクションを作成するために必要な情報を含んでいます。
core_fact_outputs(アウトプット)
Bitcoinのトランザクションの出力に関するデータです。
出力は、トランザクションの受信者が受け取る金額や情報を表します。送信者は入力と出力を使ってトランザクションを作成し、受信者に一定数量のBitcoinを送ることができます。
core_fact_transactions(トランザクション)
Bitcoinのトランザクションに関するデータを示します。
トランザクションは、Bitcoinネットワーク内でのデータの送受信を表し、Bitcoinの移動や取引の情報が含まれます。
トランザクションはブロックにまとめられ、それによってブロックチェーンが構築されます。
core_ez_miner_rewards(マイニング)
Bitcoinマイニングに関連するデータです。
マイニングは、新しいブロックをブロックチェーンに追加するプロセスであり、新しいBitcoinの発行とネットワークの運営者への報酬が含まれます。
このデータは、マイナーが新しいブロックを採掘することによって獲得する報酬に関する情報を示します。
以上がFlipside Crypto上で分析可能なBitcoinのデータです。
ちなみに5つ目の「core_ez_miner_rewards(マイニング)」はDuneAnalytics上では分析できないデータです。
プラットフォームによって、同じプロトコルでもサポートされるテーブルに違いがあります。
また、Flipside Cryptoではdbtのデータをそのまま引っ張ってきているためか、Flipside Cryptoの公式Docからdbtの公式Docに飛ばされます。
詳細なデータ定義はdbtのこちらを参照ください。
Bitcoin分析をやってみる
Flipside CryptoでBitcoinの分析をやってみます。
主に見ていくテーブル
今回は「core_fact_transactions(トランザクション)」を中心に分析していきます。
詳細のテーブル定義は下記です。
カラム名 | 型 | データ内容 |
---|---|---|
block_timestamp | TIMESTAMP_NTZ | UTCで表されるブロックの時間。 |
block_number | NUMBER | ブロックの高さまたはインデックス。 |
block_hash | TEXT | ブロックのハッシュ。 |
tx_id | TEXT | トランザクションID。ただし、これはウィットネストランザクションのトランザクションIDとは異なります。 |
index | NUMBER | ブロック内のトランザクションのインデックス。 |
tx_hash | TEXT | トランザクションのハッシュ。 |
hex | TEXT | シリアライズされた16進数エンコードされたデータ。 |
fee | FLOAT | トランザクション手数料。ブロックレベルでは、ブロック内のすべてのトランザクションの手数料の総額。 |
is_coinbase | BOOLEAN | トランザクション出力がコインベーストランザクションに属する場合はtrue、それ以外の場合はfalse。 |
coinbase | TEXT | 16進数エンコードされたコインベースデータ。コインベースはブロック内の最初のトランザクションである。 |
inputs | ARRAY | トランザクション入力の配列。各オブジェクトはトランザクションの入力ベクトル(vin)として機能。 |
input_count | NUMBER | トランザクション内の入力の数(inputs/vinの長さ)。 |
input_value | FLOAT | 入力の価値(BTC単位)。 |
outputs | ARRAY | トランザクション出力情報を含む配列。 |
output_count | NUMBER | トランザクション内の出力の数(outputs/voutの長さ)。 |
output_value | FLOAT | 出力の価値(BTC単位)。 |
size | NUMBER | ブロックのサイズ。 |
virtual_size | TEXT | 仮想トランザクションサイズ。ただし、これはウィットネストランザクションのサイズとは異なります。 |
weight | TEXT | トランザクションのウェイト(vsize4 – 3からvsize4まで)。 |
lock_time | TEXT | トランザクションのロックタイム。 |
version | NUMBER | ブロックのバージョン。 |
「core_fact_transactions(トランザクション)」はビットコインのトランザクションを保持しているテーブルです。
DuneAnalytics上で分析できる「bitcoin_transactions」ともやや違いがあります。分析できるデータはプラットフォーム上で微妙に異なることがわかります。
参考にするクエリ
SELECT date_trunc('day', block_time) AS DATE
,count(*) AS Daily_Inscriptions
,sum(count(*)) OVER (
ORDER BY date_trunc('day', block_time) range unbounded preceding
) AS Total_Inscriptions
,sum(fee) AS Daily_fees
,sum(sum(fee)) OVER (
ORDER BY date_trunc('day', block_time) range unbounded preceding
) AS Total_fees
FROM bitcoin.transactions
WHERE 1 = 1
AND block_height > 767429
AND cast(hex AS VARCHAR) LIKE '%0063036f726401%'
GROUP BY 1
ORDER by 1 DESC;
今回はDuneAnalyticsでBitcoinの分析を実施した際に、用いたこちらのクエリを参照します。
⇒「DuneAnalyticsでBitcoinの分析をやってみた」はこちら
日ごとのトランザクション数、累積トランザクション数、日ごとの手数料合計、累積手数料合計を取得し、特定の条件に基づいてBitcoinのトランザクションデータを分析しています。
分析の背景には、ビットコイン版NFT「Ordinals」がリリースされたことがあります。
ビットコイン版のNFTが2023年1月より発行されて、Bitcoinのトランザクションが注目されることになりました。
同様の分析をFlipside Cryptoで実装します。
Flipside Cryptoでのクエリ
SELECT
DATE_TRUNC('day', block_timestamp) AS DATE,
COUNT(*) AS Daily_Inscriptions,
SUM(COUNT(*)) OVER (ORDER BY DATE_TRUNC('day', block_timestamp) RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Total_Inscriptions,
SUM(fee) AS Daily_fees,
SUM(SUM(fee)) OVER (ORDER BY DATE_TRUNC('day', block_timestamp) RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Total_fees
FROM bitcoin.core.fact_transactions
WHERE
block_number > 767429
AND hex LIKE '%0063036f726401%'
GROUP BY DATE
ORDER BY DATE DESC;
こちらがFlipside Cryptoで修正したクエリです。
テーブル名・カラム名を修正した程度であり、大枠の構成は特に変わっていません。
下記に詳しく解説します。
SELECT句
DATE_TRUNC('day', block_timestamp) AS DATE
:
トランザクションのブロックのタイムスタンプを日単位で切り捨てて、日付ごとにグループ化しています。新しい列として “DATE” という名前で表示されます。COUNT(*) AS Daily_Inscriptions
:
各日付ごとに、その日にあったトランザクションの数(インスクリプション数)を計算し、新しい列として “Daily_Inscriptions” という名前で表示されます。SUM(COUNT(*)) OVER (~) AS Total_Inscriptions
:
日ごとの累積トランザクション数を計算し、”Total_Inscriptions” という名前で表示される列を生成します。この累積は、日付で並べ替えた際に、過去から現在までのトランザクションの合計数を示します。SUM(fee) AS Daily_fees
:
各日付ごとに、その日のトランザクションの手数料の合計を計算し、”Daily_fees” という名前で表示される列を生成します。SUM(SUM(fee)) OVER (~) AS Total_fees
:
日ごとの累積手数料額を計算し、”Total_fees” という名前で表示される列を生成します。これは、日付で並べ替えた際に、過去から現在までの累積手数料の合計を示します。
FROM句
FROM bitcoin.core.fact_transactions
:
クエリの対象となるテーブルは、”bitcoin.core.fact_transactions” テーブルです。このテーブルはBitcoinのトランザクションに関する情報を持っています。
WHERE句
WHERE block_number > 767429 AND hex LIKE '%0063036f726401%'
:
特定の条件に基づいてトランザクションをフィルタリングします。
ここでは、ブロック番号が767429より大きく、hex値に’%0063036f726401%’が含まれるトランザクションが対象です。
この条件はビットコイン版NFT「Ordinals」に用いられるトランザクションを取得する条件です。今回は「Ordinals」の情報のみを取得して、全体傾向を分析しています。
参考記事はこちらです。
GROUP BY句
GROUP BY DATE
:
日付ごとに集計を行うために、“DATE” 列を基準にしてグループ化します。
ORDER BY句
ORDER BY DATE DESC
:
日付を降順で並べ替えて結果を表示します。
出力結果
最終的なアウトプットは下記のようになります。
DuneAnalytics上で出力した結果とも整合性が取れており、全く同じデータが取得できていることがわかります。(一部、最新日は実行タイミングにより異なる)
*8/2以前はすべて一致しています。
各結果をダッシュボード機能で可視化していきます。
Daily_Inscriptions
2023年の1月から徐々にインスクリプションが発生しており、2023年5月ごろに大きくインスクリプション数が増加しています。
Total_Inscriptions
累計のインスクリプション数は右肩上がりで伸び続けていることがわかります。
Daily_fees
日ごとの手数料は5月に急激に高騰していることがわかります。
Total_fees
累計手数料は、徐々に鈍化しています。
このように、分析結果はDuneAnalyticsと同等のものが確認できます。
DuneAnalyticsとFlipside Cryptoの違いは扱えるテーブルが異なることがあります。
今後はここらの利用できるテーブルについてもまとめていきたいと思います。
分析してみた所感・感想
今回はFlipside Cryptoを使って分析を実施してみました。
DuneAnalytics・Flipside Cryptoの双方を利用して同様の分析を実施してみましたが、インターフェース上ではどちらも使いやすく、非常に有用なプラットフォームです。
まだ、両者のテーブルが明確に理解できている訳ではないのですが、おそらく利用できるテーブルに違いがありそうです。
今後、テーブルの違いを深く理解して解説していきたいと思います。
テーブルの理解や分析を深く実施するにはやはりブロックチェーンやイーサリアムなどの知識が必要であり、加えてNFT・Defiなどの市場の知識がないと理解がしにくい世界でした。
しかし、ブロックチェーン上のデータを直接的に参照できることで間違いなくデータサイエンティストの活躍領域は広がります。
今の内からWEB3を学習しておくことで、希少性の高いデータサイエンティストになることができると感じました。
【まとめ】分析と共に市場を知るべき
今回はFlipside Cryptoで実際にデータ分析を実施しました。
DuneAnalyticsで実施した分析を実装して、同様の結果が得られることやインターフェースを実施しました。
非常に使いやすい分析プラットフォームで両社にユーザビリティの観点では違いはなく、扱えるデータに差分があることが分かりました。
しかし、扱えるデータに関して理解を深めるには、さらにWEB3の深い理解が必要であることを実感しました。
WEB3を理解するためには市場をまずは知ることが大事です。まずはWEB3の市場に飛び込むことから始めることが大切です。
WEB3の利便性・ユーザー思うことを知ってこそ、市場を分析することが可能です。
はじめの一歩として、暗号通貨取引所への登録を実施しましょう。下記におすすめの暗号通貨取引所「Coincheck」の口座開設方法を解説しています。
WEB3を学ぶためにはまずは自ら世界に飛び込み、ユーザーとして体験してみましょう!
今回は以上です。