Crypto OS
Non-Technical Crypto OS第4段階 · トークン、市場、リサーチ

第23章 · オンチェーンデータで現実を観察する

他人の結論に頼らず、今起きていることを自分で見るには?

この章を 3D で体験する →
練習する能力
Onchain LiteracyResearch
実践
オンチェーンデータ基盤で最初のグラフを作る。あるプロトコルの過去 90 日の収益とアクティブアドレスを示す。
AI Lab
AI にデータ取得の定義とクエリを書かせ、自分で実行してインセンティブを収益に含めていないか確認する。

現実の問題

同じプロトコルを調べていて、三つの資料が手元にある。

公式の四半期報告は、前四半期の収入を2400万ドルとする。 調査機関の報告は、同じ期間を900万ドルとする。 SNSで誰かが作った表は、純損失1800万ドルとする。

同じプロトコル、同じ四半期の三つの数字が一桁違い、符号まで違う。

最初は「誰かが嘘をついている」と思うかもしれない。しかし一つずつ調べると、さらに厄介なことが分かる。すべての数字に対応する取引を、チェーンで見つけられる。

捏造ではなく、異なる三つの問いに答えている。

  • 第一は、利用者が払った費用の総額。
  • 第二は、そのうちプロトコルに帰属する部分。
  • 第三は、その期に配ったトークン報酬も含めた純額。

三つとも正しい。「収入」が一度も定義されていないからだ。

業界で最も一般的な混乱だ。データは公開され、集計の定義は非公開だ。

すべての取引を誰もが見られるのは、ほぼすべての他業界に対する巨大な利点だ。ただし公開されるのは原事実であり、結論ではない。その間の段階、どの取引を計算に含めるかという決定が最終の数字を決める。

そして、その段階は報告に書かれないことが多い。

この章の課題は、すべての人の結論を迂回し、原事実から自分が根拠を説明できる数字を作る方法だ。

Part Aで最も技能の密度が高く、卒業制作でも最も使う能力となる。

思考実験

チェーンを離れ、コーヒー店を見よう。

宅配プラットフォームで売っている店の、先月の帳簿だ。

  • 顧客は合計100万元を払った。
  • プラットフォームは20%、20万元を取った。
  • 店は新規顧客向けに15万元分の金券を配り、顧客が代金に充てた。
  • 金券は店主が印刷し、印刷費用はほぼゼロだった。

店の先月の「収入」はいくらか?

少なくとも五つの答えがあり、それぞれ説明できる。

A  100万   顧客が払った総額
B   80万   プラットフォームの取り分を引いて店へ入った額
C   65万   さらに金券の額面を引く
D   80万   金券は自分で刷り、現金流出がないので引かない
E   65万   将来本物のコーヒーに交換するので、費用は実在する

DとEの違いで立ち止まろう。金券は費用なのか?

今月の現金だけなら費用ではない。店主は一銭も出していない。長期なら費用だ。いつか15万分を実際のコーヒーで履行する。

オンチェーンのトークン報酬も同じ状況だ。 自分が発行するトークンを配り、当期の現金流出はないが、全保有者を希薄化する(第20章)。費用に入れるかは、答える問いによる。

さらに混同しやすい二つを見よう。

店にあるお金と、店が稼いだお金は同じではない。

金庫に500万元があり、そのうち480万は顧客のチャージ残高としよう。総額は見栄えが良いが、店のお金ではなく顧客のもので、いつでも引き出せる。

チェーンにも、この金庫の総額に相当する指標がある。 規模の代表とされがちだが、実際に測るのは「他人がここへ置いた額」だ。

今日来た人数も、分解が必要だ。

先月の来店は延べ6000回。そのうち4500回は無料券を取りに来ただけで、定価の一杯も買わずに去った。残る1500回は、300人が五回来たものだった。

「6000」は、延べ6000回、独立した1800人、本物のリピーター300人、実取引1500件という四つの数字に分けられる。どれも本当で、表すものはまったく違う。

店をプロトコル、顧客をアドレスへ置き換えれば、三組の問いはそのまま成り立つ。違いは一つ、チェーンには一件ずつ記録があり、自分で数えられることだ。

あなたが決める

先月いくら稼いだか、という具体的な問いに答える。どこから始めるか?

結果を観察する

四つは同じ結論を指す。

難しいのは取得ではなく、定義だ。

技術的には、正しく書いたクエリで90日の手数料を調べるのは数秒だ。時間がかかるのは、六つへの答えだ。

定義の六問決めること
どのアドレスを含むか主コントラクト、全バージョン、全チェーン、プロキシか実装か
どのイベントを含むか使用とみなす取引、失敗取引や内部送金を含むか
総額か純額か利用者の総費用か、流動性提供者への分配を引いた部分か
報酬をどう扱うかトークン報酬を費用にするか、どの価格で換算するか
時間をどう区切るか暦月か直近30日、ブロック時間かUTC日付か
重複をどう除くかアドレスか人か、保管アドレスや一人の複数アドレスをどうするか

一つでも違えば数字も違う。しかし、引用する記事の大半は一つも説明しない。

同じ月でも、正当に次の数字が得られる。

数字の名前計算するものよくある誤用
利用者の総費用全利用者が払ったお金そのままプロトコル収入と呼ぶ
プロトコルの取り分流動性提供者分を引いたもの見落とし、数倍過大評価する
純収入さらに当期トークン報酬を引く宣伝にはほぼ現れない
ロック総額他人が預けたお金規模や価値として扱う
取引量通過する資金の流量操作できるのに需要と扱う
アクティブアドレス交流するアドレス数利用者数と扱う

数字を見るたびに、まずどの行かを分類し、それから使うか決めよう。

別に強調すべき点がある。第19章の流通時価総額と完全希薄化後評価額の違いは、データ実務で最も一般的な誤りだ。どちらか示さずに評価額を引用すれば、分析全体が成立しない。 十倍以上違いうるのに、初期表示で片方を説明なく出すデータ源も多い。

モデルを作る

六段階の手順がモデルだ。各段階に必須の成果物がある。

  1. 問いを決める
  2. 定義を決める
  3. データ源を探す
  4. 取得する
  5. 相互検証
  6. 不確実性を示す
大半は第四段階から始め、追問に耐えない結論になる。最初の二段階は十分ほどだが、その後に価値があるかを決める。

段階別に見よう。

段階成果物できないと
1 問い時間範囲付きの、反証できる一文「調べてみる」は永遠に終わらない
2 定義六問への六つの答えを文章に数字を説明・再現できない
3 データ源独立した最低二つの出典一つが誤っても気付けない
4 取得再現可能なクエリか手順記録来月はやり直しになる
5 相互検証二出典の差と説明最も情報の多い差を無視する
6 不確実性分からない場所のリスト読者は信頼の程度を判断できない

第五段階を詳しく見よう。価値は一致の確認ではなく、不一致の理由の説明にある。

3%の差なら時間境界かもしれない。40%ならほぼ定義の違いで、それを見つけると構造的特徴を理解する。差は情報であって、ノイズではない。

第六段階が研究と宣伝を分ける。正直な分析には「不確かな点」が必要だ。ほかの二チェーンを覆わない、報酬を当期平均価格で換算したので変動が影響する、大口三アドレスが同じ主体か分からない、などだ。

盲点を明記する分析は、無敵に見える分析より信じる価値がある。

最後に、六つの主要指標の定義と罠を示す。ノートへ写そう。卒業制作で使い続ける。

指標実際に測るもの主な罠
保有者保有アドレス数人数ではない。エアドロップの一回限り、保管の後ろの多数の人
ロック総額預けた資産価値他人のお金。複数プロトコルで重複。値上がりが成長に見える
費用利用者の総支払額多くは流動性提供者へ行き、プロトコルに帰属しない
収入プロトコルの取り分報酬を引くか明示が必要で、引かない定義も多い
純フロー期間の流入 − 流出内部送金やマーケットメーカーの調整が混ざる。取引所と利用者を分ける
建玉未決済のデリバティブ規模コイン・ドル建ての形、場所ごとの定義が違う。方向を示さない

何と呼ぶか

保有者Holder

特定のトークンを持つアドレス数。

測るのはアドレスで、人数ではない。一人が千アドレスを持ち、取引所の一つの後ろには数十万人いるかもしれない。

過去30日の交流、一回受け取ってから動かないもの、作成時期の分布へ分解すると有用だ。第22章のLabで使った方法だ。

ロック総額TVL / Total Value Locked

プロトコルのコントラクトに預けられた資産の総価値。

三つの性質を知ろう。利用者のお金で、プロトコルのものではない。資産の値上がりが事業成長に見える。組み合わせ可能なプロトコルでは、同じ資金を複数のTVLへ数えられる。

有用な規模指標だが、収入でも価値でもない。第26章の題名は、そのためにある。

費用Fees

利用者がプロトコルの使用に払う総額。

鍵は、最後にどこへ行くかだ。多くの取引型では、大部分が流動性提供者へ行き、小さな部分だけがプロトコルへ帰属する。

費用を直接収入と呼ぶのは、最もよくある過大表示だ。

収入Revenue

費用のうち、プロトコル自身に帰属する部分。

さらに下に、当期トークン報酬を引いた純収入がある。宣伝にはほぼ出ないが、稼いでいるか、成長を買っているかに答える数字だ。

引用には層の明示が必須で、なければ理解できない。

純フローNetflow

一定期間の、ある種のアドレスの流入から流出を引くもの。

取引所の観察によく使うが、罠も多い。内部ウォレットの整理が意味のない大口転送を作り、マーケットメーカーの調整を利用者行動と誤読し、ホット・コールド間の移動も内部操作だ。

分析前にアドレスを分類し、その分類自体も検証しなければならない。

建玉Open Interest

未決済デリバティブの総規模。第18、21章で使った。

罠は表示基準(激しい変動でコイン・ドル建てが逆向きになる)と取引所の範囲(出典ごとに違う)だ。

レバレッジの規模で、方向情報はない。単独でロング・ショートを判断するのは誤用だ。

実践

実践自分の最初のオンチェーンデータ図を作るSQLクエリ対応のオンチェーンデータプラットフォーム + ブロックエクスプローラー0円。通常は無料枠がある。調査のみで実資金は使わない

目標は具体的だ。過去90日の収入とアクティブアドレスを図にし、すべての数字の根拠を説明する。

前より長いLabなので、二回に分けるのがおすすめだ。

プロトコルを選び、問いを書く。

明確な手数料の仕組みがある取引所、借入プロトコル、無期限プラットフォームなどを選び、複雑すぎるものは避ける。

例えば「過去90日の、日次のプロトコル収入と独立した交流アドレス数はいくらか?」と書く。

文書の最上部へ置き、毎段階で照らし合わせる。

六問の定義を、一つずつ書く。

飛ばしてはいけない。核心だ。

アドレス:主コントラクト0x…(チェーンで確認し、記事から写さない)。メインネットのみ。
          他チェーンは除外(不確実性リストへ書く)
イベント:Swap / Borrow / …(具体的な名前)。失敗取引は除外
総額か純額:プロトコル取り分 = 総費用 × 分配比率
            比率はコントラクトのパラメータ…(名前と現在値を記録)
報酬:今回は引かず、支出曲線を別に示して比較
時間:UTC暦日で、直近90の完全な日
重複除去:fromアドレス別で、人として統合しない(不確実性へ書く)

コントラクトアドレスを探し、エクスプローラーで照合する。

記事や投稿からコピーせず、公式文書から探す。開いて、プロキシ表示、新バージョン、最近の取引の有無を確認する。

任意の取引を一つ開き、起きたイベントの名前とフィールドを写す。クエリが取るのは、そのイベントだ。

第一のクエリ:日次費用を書く。

テーブル名とフィールドは場所により異なるが、構造は同じだ。

select
  date_trunc('day', block_time) as day,
  sum(fee_amount_usd)           as fees_usd,
  count(*)                      as tx_count
from <プラットフォームのイベント表>
where contract_address = <確認済みのコントラクトアドレス>
  and block_time >= now() - interval '90' day
group by 1
order by 1

まず三日だけ実行する。エクスプローラーの実際の三日の取引と照合し、桁が合わなければ理由を探し、先へ進まない。

第二のクエリ:日次アクティブアドレスを書く。

select
  date_trunc('day', block_time)  as day,
  count(distinct tx_from)        as active_addresses
from <プラットフォームのイベント表>
where contract_address = <コントラクトアドレス>
  and block_time >= now() - interval '90' day
group by 1
order by 1

tx_fromは取引を開始するアドレスだ。アグリゲーターやコントラクトウォレット経由なら、利用者ではなくアグリゲーターのアドレスになる。実取引をいくつか見て、どの層を取るか確認する。 最も一般的な誤りだ。

二曲線を同じ図へ描く。 収入は棒、アドレスは折れ線、Y軸を二つ使う。

同じ向きか、収入だけ急増する日(大口取引かもしれない)、アドレスだけ急増する日(報酬活動や水増しかもしれない)があるかを見る。

乖離した日が、最も深掘りする価値がある。 一日選び、実取引で原因を探す。

相互検証する。 90日の総収入を、公式と第三者集計の最低二つと比べる。

表を埋める。

出典90日の数字自分との差差の説明
自分のクエリ——
公式ダッシュボード
第三者プラットフォーム

第四列が最も価値ある成果だ。 20%超の差を説明できなければ、定義で考え切れていないものがある。

不確実性リストを書く。 最低三点。ほかのチェーンを覆わない、開始アドレス集計なので経由利用者をアグリゲーターへ計上する、報酬を当期平均価格で換算し変動が影響する、などだ。

図、再現可能なクエリ、正直な盲点リストの三つができる。

合わせて、適切な一次研究の最小単位となる。 第26、31章で積み上げ、卒業制作のデータ部分は、この手順を数回繰り返すことになる。

AI Lab

AI LabAIに集計定義とクエリを書かせ、自分で実行して定義の誤りを探すLevel 2 · AI Copilot

先に前のLabを自分で終えてから行う。逆なら、出力の正誤を判断できない。

次を与えよう。

あるプロトコルの過去90日の収入と日次アクティブアドレスを集計します。

第一段階では、クエリをまだ書かず、六問に答える集計定義書を出してください。
1. 対象コントラクト(メインネットと他チェーンを別々に列挙)
2. イベントと失敗取引の扱い
3. 利用者の総費用かプロトコル純額か。分配比率のパラメータ
4. 報酬の扱い。引くなら、どの価格で換算するか
5. 時間の区切りと境界処理
6. アクティブアドレスの重複除去フィールドと、経由利用者の扱い

第二段階で、この定義に基づくクエリと、使うテーブル・フィールド名を書いてください。

第三段階で、覆えないものと、過小・過大評価の可能性を別に列挙してください。

ルール:
- すべてのアドレス、パラメータ、イベント名に出典を付ける。
- 不確かなものは「人手での確認が必要」とし、もっともらしい値を出さない。

受け取ったら、最初にアドレスとイベント名をエクスプローラーで照合し、それからクエリを実行する。

危険度順に、五つの高頻度の誤りがある。

  1. 報酬を収入へ含めるか、支出を完全に無視する。 冒頭の三報告の差の源で、最も高くつく。
  2. 費用を収入とする。 総額と取り分を分けず、一つの誤りで数倍になる。
  3. アドレスとフィールド名を捏造する。 書式は正しく、破綻が見えなくても、チェーンに存在しない。照合でしか発見できない。
  4. 評価額の定義を混ぜる。 流通か完全希薄化かを示さない。第19章で十倍違いうると学んだ。
  5. 多チェーンと複数バージョンを落とす。 主ネット一コントラクトだけで、系統的に低い数字になる。

実際に出会った誤りを記録しよう。モデルだけの欠点ではない。人の報告にも同じ五つはよくあるが、一つずつ確認されていないだけだ。

応用として、自分とAIの定義書を並べ、双方の見落としを比べる。第31章で固定の研究工程にする。

AI の回答後、自分で必ず検証すること

  • アドレスを照合したか。プロキシか、最新版か
  • イベントとフィールド名は実取引に存在するか
  • 総費用とプロトコルの取り分のどちらかを明示したか
  • 最重要点として、報酬を収入に含めたり、報酬支出を完全に無視したりしていないか
  • FDVと流通時価総額を混同せず、評価額の種類を示したか
  • 時間はブロック時間かほかか、境界をどう処理したか
  • どのフィールドでアドレスを重複除去し、経由利用者を誰へ計上するか
  • 覆えない部分を、自分から列挙したか

実例

一つのプロトコルに三つの収入いつでも検証可能

冒頭は架空の構造ではない。報酬のあるどのプロトコルも、利用者の総費用、取り分、報酬後の純額を同時に出せる。

一桁違うこともあり、第三は負であることが多い。

それぞれ正しい用途がある。第一は使用規模、第二は事業モデル、第三は稼いでいるか成長を買うかを測る。問題はどれを使うかではなく、使うときに明示するかだ。

重複計上されたロック総額組み合わせ可能なプロトコルによくある

資金を借入プロトコルへ預け、証書トークンを得る。それを別で担保にし、借りた資産を第三へ預ける。

同じ原資を、三つのロック総額で各一回数える。業界全体では三回になる。

不正ではなく、組み合わせ可能性の自然な結果だ。ただし、横断集計では系統的に膨らむ。倍率はレバレッジ拡大で上がり、縮小で下がる。第21章の構造がデータへ投影された姿だ。

アクティブアドレスが急増した週報酬キャンペーン中

ある週に十数倍となり、宣伝は成長の証拠とした。

見ると大半は開始後三日以内に作成され、受取条件に届く最小の交流だけ行い、終了後は一切活動しなかった。

完全にチェーンで見え、作成時期の分布と終了後30日の継続率という二つのクエリで検証できる。第28章で固定の判断方法にする。

定義を明記するデータ源業界は改善中

取得の論理を公開するデータプロジェクトがある。収入計算、分配のパラメータ、報酬を含むかを公開リポジトリに書き、誰でも修正を提案できる。

数字ではなく、定義について議論できるようになる。同じ収入に意見が違えば、何行目の定義かを直接指せる。

データ源の最初の選別条件は、定義がどこにあるかだ。見つからなければ、権威がありそうでも引用しない。

変数を一つ変える

もし五チェーンに展開するプロトコルで、主ネットだけを数える

すべての数字が系統的に低くなり、割合も時間で変わる。他チェーンへ移行中なら、偽の下降曲線になる。

正当な方法は二つ。タイトルにも「メインネットのみ」と書いて範囲を限定するか、五つ全部を覆う。

不当なのは、主ネットだけで全体の結論を述べる第三の方法だ。 最もよくある系統的な誤りで、故意ではないことが多い。

もし当期報酬も費用へ含め、当日の終値で換算する

収入が正から負へ変わるかもしれない。さらに、形がトークン価格と強く相関する。

値上がりでは同じ量の報酬がより多くのドルとなり、費用が増え、純収入が下がる。値下がりは逆だ。主にコイン価格が動かす純収入曲線になる。

誤りではなく定義固有の性質だ。当期価格換算とトークン数量の二曲線を示そう。副作用を明らかにするほうが、ないふりをするより正直だ。

もし利用者の半分がアグリゲーター経由でアクセスする

開始アドレスで数えると、その半分は少数の経由アドレスへ計上される。大幅に過小評価し、程度はシェア次第だ。

一層下へ取る方法がある。内部呼び出しを解析して本当の開始者を探す。対応データのある場所では可能だが、クエリは大きく複雑になる。

できなければ、無視せず不確実性リストへ書く。 繰り返す要点だ。抜けを減らすこと以上に、何が抜けたかを知ることが重要だ。

もしアドレスではなく、本当の人数を数えたい

チェーンではできないと分かる。少なくとも、確実にはできない。

近づく方法は、資金関係のあるアドレスをまとめ、行動で分類し、外部の身元情報で関連付けることなどだ。どれも新しい誤差を入れ、プライバシーと直接衝突する行為となる。第5章で公開台帳の代償を学んだ。

実務では答えられる問いへ変える。「何人か」ではなく、「過去30日に活動し、同じ一時間で大量作成されていないアドレスはいくつか」と問う。

答えられない問いを答えられるものへ変え、変えたことも明示するのは、研究で最も有用な習慣の一つだ。

持ち帰る問い

4
ユーザーは誰か?

実行できる答え方を得た。分解されていない利用者数は受け入れない。

アクティブ、独立、実際に支払う、終了30日後も残るアドレスの四層へ分け、合わせて初めて誰なのか答えられる。第28章で固定手順にする。

5
誰が支払っているか?

利点は具体的なアドレスまで検証できることだ。どこから出て、どのコントラクトを通り、最後にどこへ残るか。

特に注意しよう。プロトコル自身の発行トークンなら、払うのは全保有者だ。 実収入と同じように見えるため、コントラクトを読むことでしか分けられない。

6
収益はどこから生まれるか?

総費用、プロトコルの取り分、報酬後の純額という三層に分ける。

引用前にどの層かを明示する。この一習慣で、業界の大半の資料より追問に耐える分析になる。

12
補助金が止まってもユーザーは残るか?

標準的な取得法がある。報酬終了日を探し、期間内の新規アドレスの30、60、90日後の継続率を数える。

三点を線にすれば、意見は要らず、答えが出る。これが一次事実の意味だ。

章末チェック

要点

オンチェーンデータは、この業界で自分で検証できる数少ない一次資料の一つだ。

この章の実践課題を終えたらチェックしてください進捗をすべて見る

このページの内容