今回はweb3の中でも注目を集めている「Defi」さらには「DEX」について、DuneAnalyticsを使って分析をしていこうと思います。
DEX(分散型取引所)はweb3分野でも注目されている領域の一つです。第三者機関が介入せず、手数料が安く・効率的な金融取引ができます。
筆者はデータサイエンティストとして長らく働いていますが、今後のキャリアの拡張先としてweb3を見据えています。
web3は今後盛り上がる市場と予測される中、ブロックチェーン上のデータが公開されているという特徴を持ちます。
ここにデータサイエンティストの活躍の可能性を感じています。
この記事では公開されているデータがどのようなものであり、どのような分析が出来るかを実際に分析してみていきます。
この記事を読むとweb3分野でのデータサイエンティストの活躍の可能性を実感できるでしょう。
結論は「分析の可能性はかなり広いが、背景知識を知る障壁がかなり高い」ということです。
では、本題に移ります。
Defi(分散型金融)とは?
DeFiは「Decentralized Finance」(分散型金融)の略称です。
DeFiは、「分散化された技術を活用して、伝統的な金融機関を介さずに金融サービスを提供する」従来とは異なる金融形態を指します。
従来の金融システムでは銀行や証券取引所など中央集権的な組織が中心となって取引が行われます。
一方、DeFiはブロックチェーン技術やスマートコントラクトを活用し、よりオープンで透明性の高い金融サービスです。
代表的なDeFiプロトコルには、Aave(貸出・借入)、Uniswap(分散型取引所)、Compound(貸出・借入)、MakerDAO(ステーブルコイン発行)などがあります。
DeFiの成長は急速であり、金融サービスの分野で新たなイノベーションをもたらしており、注目されている領域です。
DEX(分散型取引所)とは?
DEXは「Decentralized Exchange」(分散型取引所)の略称です。
DEXは、中央集権的な取引所(例: 株式市場、仮想通貨取引所)とは異なり、中央管理者を介さずに仮想通貨の取引が行われるプラットフォームです。
DEXはブロックチェーン技術とスマートコントラクトを活用して運営され、ユーザー同士が直接取引を行うことが特徴です。
代表的なDEXには下記のようなサービスがあります。
- Uniswap
- SushiSwap
- PancakeSwap
それぞれ簡単に解説します。
Uniswap
Uniswapはスマートコントラクトを使用して運営され、ユーザーは異なる仮想通貨を交換したり、プールに資金を提供して取引手数料を受け取ることができます。
また、UniswapはUniと呼ばれるトークンを利用したエコシステムを持っています。
SushiSwap
SushiSwapは、Uniswapのフォーク(派生プロジェクト)で、Uniswapの特徴を取り入れつつ独自の機能を加えたDEXです。
また、SushiSwapはSushiと呼ばれるトークンを利用したエコシステムを持っています。
PancakeSwap
PancakeSwapは、Binance Smart Chain(BSC)上で動作するDEXです。
BSCはEthereumの代替ブロックチェーンであり、手数料が比較的低いため、多くのユーザーに利用されています。
また、PancakeSwapはCAKEと呼ばれるトークンを利用したエコシステムを持っています。
これらのプラットフォームは、ユーザーが自身のウォレットを介してトークンを交換したり提供したりすることができる場所です。
DEXはDeFiエコシステムの重要な要素であり、中央集権的なリスクを回避しながら、ユーザー同士が直接取引する新たな方法を提供しています。
今回はこのDEXの市場環境について、分析を行っていきます。
DuneAnalyticsとは?
今回はDuneAnalyticsという分析プラットフォームを用いて分析を実施していきます。
Dune Analyticsは、DeFi(分散型金融)エコシステムのデータ分析プラットフォームです。
世界中の分析者はDune Analyticsを使用して、ブロックチェーン上のトランザクションやスマートコントラクトのデータを可視化・分析することができます。
分析者はDeFiプロジェクトやトークンの動向、トランザクションのパターン、流動性の変化などを把握し、意思決定をサポートする情報を得ることができます。
Dune Analyticsは、DeFiエコシステムの透明性を向上させ、プロジェクトの成長や動向に関する洞察を提供するための重要なツールとなっています。
⇒DuneAnalyticsについて詳しく知りたい方はコチラ(始め方の解説もあり)
⇒web3の分析プラットフォームについて詳しく知りたい方はコチラ
分析に利用するデータ
今回DuneAnalytics上で分析するデータは「dex.trades」というテーブルを使います。
このテーブルはDuneAnalytics上で作成されたカスタムテーブルであり、DEX関連のデータを標準化して、分析しやすい形に加工したデータです。
dex.tradesのデータ定義
「dex.trades」のデータ定義は下記になります。
カラム名 | データ型 | 説明 |
---|---|---|
block_time | timestamptz | このトランザクションが含まれたブロックのタイムスタンプ |
token_a_symbol | varchar | 取引された2つのトークンのうちの1つのトークンのシンボル |
token_b_symbol | varchar | もう1つの取引されたトークンのシンボル |
token_a_amount | numeric | トークンAの取引量 |
token_b_amount | numeric | トークンBの取引量 |
project | varchar | この取引が実行されたDEX |
version | varchar | 使用されたDEXのバージョン |
blockchain | varchar | この取引が発生したブロックチェーン |
taker | varbinary | DEXコントラクトを呼び出した契約 |
maker | varbinary | 特定の場合に取引の対向取引相手が存在する場合、該当する場合に表示されます |
token_a_amount_raw | numeric | トークンAの生の取引量 |
token_b_amount_raw | numeric | トークンBの生の取引量 |
amount_usd | numeric | この取引のUSD価値 |
token_a_address | varbinary | トークンAのERC-20トークン契約アドレス |
token_b_address | varbinary | トークンBのERC-20トークン契約アドレス |
exchange_contract_address | varbinary | この取引を可能にした分散型取引所コントラクトのアドレス |
tx_hash | varbinary | この取引を含むトランザクションのハッシュ |
tx_from | varbinary | このトランザクションを起動したアドレス |
tx_to | varbinary | このトランザクション中で最初に呼び出されたスマートコントラクト |
trace_address | ARRAY | 取引の実行がグラフツリー内でどの位置にあるか |
evt_index | integer | ブロック内のログの位置 |
trade_id | integer | データベース内での識別のためのトレードID |
上記のように多くのカラムがありますが、今回は主要なカラムのみを利用して、分析を実施していこうと思います。
詳細の定義はこちらの公式Docを参照ください。
データの確認
「dex.trades」のデータについて、クエリを投げながら確認していきます。
今回は、「project」「blockchain」部分にどのようなデータが入っているか確認します。
「project」の確認
2023年7月の取引を抽出して、「project」にどのようなデータが入っているか確認します。
下記は、2023年7月の「project」のユニークカラムを取得するクエリです。
SELECT
DISTINCT project
FROM
dex.trades
WHERE
DATE_TRUNC('month', block_date) = DATE '2023-07-01';
抽出された結果は下記のようになります。(*一部の結果を表示しています)
全部で47個のプロジェクトが抽出されました。
「project」の中にDEXで主要なpancakeswap、uniswap、sushiswapが含まれていることが確認できました。
「blockchain」の確認
2023年7月の取引を抽出して、「blockchain」にどのようなデータが入っているか確認します。
下記は、2023年7月の「blockchain」のユニークカラムを取得するクエリです。
SELECT
DISTINCT blockchain
FROM
dex.trades
WHERE
DATE_TRUNC('month', block_date) = DATE '2023-07-01';
抽出された結果は下記のようになります。
8個のプロトコルがデータに含まれていることがわかります。
「project」と「blockchain」のユニークカラム
次に、「project」と「blockchain」のユニークカラムを見ていきます。
2023年7月の取引についてユニークカラムを確認します。
SELECT
DISTINCT project, blockchain
FROM
dex.trades
WHERE
DATE_TRUNC('month', block_date) = DATE '2023-07-01';
出力結果は下記です。(*一部の結果を表示しています)
各プロジェクトとブロックチェーンの関係性を確認できました。全部で90個の組み合わせが抽出されています。
主要なpancakeswap、uniswap、sushiswapのblockchanだけ下記に整理してみます。
project | blockchain |
---|---|
uniswap | ethereum |
uniswap | bnb |
uniswap | arbitrum |
uniswap | polygon |
uniswap | optimism |
sushiswap | optimism |
sushiswap | polygon |
sushiswap | arbitrum |
sushiswap | gnosis |
sushiswap | bnb |
sushiswap | fantom |
sushiswap | ethereum |
sushiswap | avalanche_c |
pancakeswap | bnb |
pancakeswap | ethereum |
Uniswapは5つのプロトコル、Sushiswapは8つのプロトコル、Pancakeswapは2つのプロトコルに対応していることが分かります。
各DEXサービスで対応しているプロトコルが異なることが分かります。
DEX分析
ここからDEXの分析を実際に行っていきます。
今回は“pancakeswap”、”uniswap”、”sushiswap”の3つに焦点を当てつつ、他のDEXサービスは”others”とすべて丸めて分析します。
今回はあまり深くまでは分析せずに、下記のような全体感を見る分析に留めて傾向を見ていきます。
- 各プロジェクトの取引量比較
- 各プロジェクトの推移
詳しく記載していきます。
各プロジェクトの取引量比較
まずは各プロジェクトの取引量を比較していこうと思います。
取引量としては下記の3つの指標を見て、各DEXサービスの比較を実施していきます。
- 取引金額(米ドル)
- 取引回数
- ユニークアカウント数
各指標を見るために、下記のクエリでまとめてデータを抽出します。
SELECT
CASE
WHEN project IN ('pancakeswap', 'uniswap', 'sushiswap') THEN project
ELSE 'others'
END AS grouped_project,
COUNT(DISTINCT tx_from) AS unique_accounts,
COUNT(*) AS transaction_count,
SUM(amount_usd) AS total_amount
FROM dex.trades
WHERE DATE_TRUNC('month', block_date) = DATE '2023-07-01'
GROUP BY
CASE
WHEN project IN ('pancakeswap', 'uniswap', 'sushiswap') THEN project
ELSE 'others'
END;
今回は最新月の2023年7月のデータのみを抽出して、傾向を見ていきます。
抽出結果は下記のようになります。
プロジェクト毎に指標を抽出することができました。
DuneAnalyticsのダッシュボード機能で可視化を実施していきたいと思います。
①取引金額(米ドル)
まずは全体感として、取引金額を見ていきます。
どのDEXサービスで資金が多く動いているのかを観察することで、各DEXサービスの規模感を見ていきます。
2023年7月の取引金額は下記のようになっています。
Uniswapが断トツの取引金額です。
Uniswap以外のDEX取引金額をすべて合計しても、Uniswap単体の取引量には及ばない金額です。
よりわかりやすいように円グラフでも表現している図が下記です。
現状DEX全体の取引金額の多くはUniswapによるものだということが分かります。
➁取引回数
次に、取引回数を見ていきます。
少額の取引が多い場合は上記の取引金額とは若干傾向に差が出そうです。
2023年7月の取引回数は下記のようになっています。
取引回数ではPancakeswapがUniswapより、多いという結果でした。
DEX全体の取引回数のおおよそがPancakeswapとUniswapで構成されていることが分かります。
下記、円グラフです。約75%以上はPancakeswapとUniswapです。
*色が「取引金額の図」と変わっている点に気を付けてください。DuneAnalyticsの仕様で勝手に色が変わってしまいます。
なぜ、このような傾向になるかは現時点ではわかっていません。筆者の知識が足りておらず、力不足です。
また、アップデートがあれば追記します。
➂ユニークアカウント数
最後にユニークアカウント数です。
ユニークアカウント数は下記のような結果になりました。
ユニークアカウント数は2023年7月に取引を実施したアカウントの数になります。
UniswapがPancakeswapよりやや高いものの、ほぼ同等の結果となりました。
ユニークアカウント数はUniswapとPancakeswapで変わらず、この2強サービスを合算すると約75%に迫るアカウント数が主要ということがわかります。
各プロジェクトの取引量比較のまとめ
今回の分析としては下記の結果でした。
- 取引金額(米ドル)
⇒Uniswapが断トツの取引量 - 取引回数
⇒Pancakeswap(1位)とUniswap(2位)とでほぼ同等 - ユニークアカウント数
⇒Uniswap(1位)とPancakeswap(2位)でほぼ同等
考えられることはUniswapではかなり大きな取引を行っており、Pancakeswapでは少額の取引が多いことが考えられます。
なぜこのような傾向になるかはもう少し知識を付けてまたわかったら追記させていただきます。
ですが、あまり背景知識がなくとも全体傾向が掴めるのがデータ分析のいいところであり、データが誰でも触れることはweb3の面白い要素です。
各プロジェクトの推移
ここからは主要DEXサービスのUniswap、Pancakeswapにおいて下記の観点を時系列でみていきたいと思います。
- 取引金額(米ドル)
- 取引回数
- ユニークアカウント数
クエリは下記です。(*Uniswapのクエリ)
SELECT
DATE_TRUNC('month', block_date) AS month,
COUNT(DISTINCT tx_from) AS unique_accounts,
COUNT(*) AS transaction_count,
SUM(amount_usd) AS total_amount
FROM
dex.trades
WHERE
project = 'uniswap'
AND block_date >= TIMESTAMP '2023-01-01'
AND block_date < TIMESTAMP '2023-08-01'
GROUP BY
DATE_TRUNC('month', block_date)
ORDER BY
DATE_TRUNC('month', block_date);
プロジェクト別に見ていきます。
Uniswap
下記はUniswapの出力結果です。ダッシュボード機能で可視化していきます。
まずは取引金額(米ドル):total_amountです。
取引金額は2023年3月に大幅に上昇した依頼、右肩下がりの傾向です。
次に、取引回数:transaction_countです。
取引回数は年初からは増加傾向ですが、直近では横ばいに留まっています。
最後にユニークアカウント数:unique_accountsです。
ユニークアカウント数も同様に年初からは増加傾向ですが、直近では横ばいに留まっている傾向です。
取引金額はやや鈍化している中で、取引回数・ユニークアカウント数が増加しており、少額取引で試しているライトユーザーが増えている傾向があると考えられます。
よりコアなユーザーから、幅広い層の取り込みに成功している可能性が見て取れます。
Pancakeswap
下記はPancakeswapの出力結果です。ダッシュボード機能で可視化していきます。
まずは、取引金額(米ドル):total_amountから見ていきます。
取引金額は2023年5月に大幅に上昇して以降、元の水準の戻っています。
次に、取引回数:transaction_countです。
取引回数は2023年5月を除いて、ほぼ横ばいです。
最後にユニークアカウント数:unique_accountsです。
ユニークアカウント数は微増しているようにも見えますが、ほぼ横ばいと言っていいでしょう。
Uniswapと比べると、Pancakeswapは取引回数・ユニークアカウント数が伸び悩んでいるように見えます。
ここ半年の傾向を見るとUniswapが優勢でユーザー数を拡大できているような傾向が見て取れます。
このように、DuneAnalyticsを用いればDEXなどの市場環境を誰でも分析することができます。
やや専門的な知識が必要ですが、市場データを簡単に分析できるのはデータサイエンティストにとって非常に魅力的な世界です。
DEX分析をした所感・感想
DEX分析をした所感としては、下記の2点です。
- DuneAnalyticsのカスタムテーブルが非常に優秀
- 前提知識がないと結果を見ても理解が深まらない
詳しく書きます。
DuneAnalyticsのカスタムテーブルが非常に優秀
まずはDuneAnalyticsのカスタムテーブルが非常に優秀です。
DEX関連の全体傾向を見るために、「dex.trades」のテーブルだけで事足りる状態なので非常に簡単に分析することができました。
これはDuneAnalyticsならではの利点であり、DuneAnalyticsが市民権を得始めている理由を身に染みて感じることができました。
初めの内はやや難解で理解しにくい部分もありましたが、少し調べてみるとなんとなく理解できるようになります。
特に、ChatGPTを使って、ひたすら疑問点を質問していると効率的に理解が進められるのでおすすめです。
前提知識がないと結果を見ても理解が深まらない
二つ目が前提知識がないと結果を見ても理解が深まらないという点です。
市場で起きた出来事や過去の出来事を知らないと、分析結果を見ても理解を深めることが難しいです。
web3はかなり複雑性も高く、中々情報も多くありません。
そのため、前提知識を収集して理解するにはかなり苦労がかかります。
しかし、この前提知識を身に付けていく重要性を感じました。実際に自身もDEXを利用してユーザビリティを確認しようと思いました。
【まとめ】web3を体験して知識を身に付けるべし
今回はDefiの中でもDEXについて簡単な分析をしてみました。
分析してみた感想でもありますが、分析をするにしても基礎的な知識が必要です。
単純に分析を勉強することもで大切ですが、自身としてweb3を体験して知識を身に付けることは必ず必要になります。
まずは、web3の世界観を自身で体験してweb3の利便性を実感してみることをおすすめします。
はじめの一歩として、暗号通貨取引所への登録を実施しましょう。下記におすすめの暗号通貨取引所「Coincheck」の口座開設方法を解説しています。
まずは自ら世界に飛び込み、ユーザーとしてweb3を体感してみましょう!
今回は以上になります。