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

第24章 · なぜ Crypto では全損や攻撃が繰り返されるのか

お金は、具体的にどう失われるのか?

この章を 3D で体験する →
練習する能力
System ThinkingResearchOnchain Literacy
実践
実際の事故を 1 つ選び、10 種類のリスクを順に確認して、資金がどう流出したか再現する。
AI Lab
AI に攻撃を振り返らせ、公式の事後報告と比較して捏造や曖昧な点に印を付ける。

現実の問題

同じ年、三人がそれぞれお金をすべて失った。

第一の人は借入プロトコルへステーブルコインを預けた。ある朝、価格操作で大量の不良債権が生じたと告知される。操作を誤っていないのに、預金が比例して削られた。

第二の人はプラットフォームへコインを置き、良い固定利回りを得ていた。ある日出金が停止され、三か月後に破産手続きへ入る。コインはまだあるが、債権者リストの上に載っている。

第三の人はウォレットを空にされた。秘密鍵もシードフレーズも失わず、偽サイトも開いていない。調べると、数か月前にサイトへ一度承認を署名し、その後サイトがコントラクトを変更していた。

事後には同じことを言う。Cryptoは安全でない。

間違いではないが、役に立たない。まったく異なる三つであり、一つを防ぐ方法は、ほかの二つにはまったく効かないからだ。第一には担保の価格源の理解、第二には「自分のコイン」と「プラットフォームが返す義務のあるコイン」の区別、第三には過去の承認の定期検査が必要だ。共通の防御行動はない。

だから、この章は事故リストではなく分類法だ。 名前も言えないものは防げない。「安全でない」を、名前、対応する問い、検査行動のある十種類に分けて初めて、できることが生まれる。

Part Aの最初の四ステージのリスクをまとめる章でもある。各章が仕組みを説明しながら残した「ここで問題が起きる」という伏線を、一枚の表へ集める。

思考実験

チェーンを離れ、倉庫の警備隊長に雇われたとしよう。

他人の品物を預かる倉庫だ。初日にすべきことは巡回ではなく、品物が出入りできるすべての経路のリストを作ることだ。

一周して、次を挙げた。

  • 正面入口。誰でも入って業務を行え、壁のルールに従えばよい。
  • 壁の秤。外の市場価格で品物を評価し、担保、引渡し、差押えすべてが依存する。
  • 裏の運送経路。一部は別倉庫にあり、ここには証書しかない。
  • 管理者の鍵束。正面のルールすべてを迂回できる。誰が持つか?
  • 週一回の所有者会議。壁のルールを、どんな形にも変えられる。
  • 床の耐荷重。品物のどれだけが借入やレバレッジによるものか?
  • 出荷経路の幅。全員が同日に取りに来たら、入口はどれだけ広いか?
  • 鍵を預かる隣の会社。その会社自体は信頼できるか?
  • 自分の数え間違い。最後の棚卸しはいつか?

九つとも、品物が出ていく経路だ。「倉庫は安全か」よりずっと役立つ。

本当に重要なのは次だ。二つずつつなぎ、「これが壊れたら、あれも壊れるか」と問う。 驚くほど多い線ができる。任意の一本をたどろう。

秤を細工 → 品物が大幅に過小評価 → ルール上、安く持ち出せる → 出荷経路へ積んで売る → 経路が詰まる → 普通の引取人が受け取れない → 埋められない不足が残る → 所有者が緊急会議でルールを変える → 誰が会議に参加できるかが新しいリスクになる。

一本の連鎖、五つの経路、一つの事故だ。

最重要の一文の源になる。実事故はほぼ常に、扉一つが壊れることではなく、その後ほかの扉も続いて壊れることだ。

あなたが決める

プロジェクト報告の「リスク」を書く。どうするか?

結果を観察する

固定リストは次だ。コース全体で共通の統一リスクモデルで、卒業制作まで使う。

Smart Contract Riskコードは監査済みか?アップグレード権限は誰にあるか?
Liquidity Risk退出したいとき、プールにまだお金はあるか?
Oracle Risk価格はどこから来るのか?操作できるか?
Bridge Risk移ってきた資産の裏付けは実際に何か?
Custody Risk資産は誰が保管するか?秘密鍵は誰の手にあるか?
Counterparty Risk取引相手が逃げたら、手元に何が残るか?
Governance Riskたった 1 回の投票で資金を持ち去れるか?
Leverage Risk価格が 30% 下がると、連鎖清算はいくつ起こるか?
Token Riskロック解除と追加発行で誰が希薄化されるか?
Operational Riskマルチシグ、秘密鍵管理、運用で間違いが起きる確率はどれほどか?

三点を明確にしよう。

第一に、網羅ではなく分類だ。 十種類はすべての可能性ではなく、重複せず、大半の実事故を覆うことを目指す。どれにも入らないリスクを見つければ、それ自体が記録すべき発見だ。

第二に、実際に働くのは右の列だ。 各種類が、調査して確定した答えを得られる問いになっている。監査の有無、アップグレード権限、価格の出所には答えがある。リスク管理が、予感ではなく資料を調べる作業になる。

第三に、核心として、実事故では十種類が同時に起きやすい。

次は仮定ではなく、近年何度も起きた同じ脚本だ。

  1. 薄いプールの価格を操作
  2. 誤価格で担保を評価
  3. 一群のポジションを誤清算
  4. 売り注文が残る流動性を枯らす
  5. 担保を売れず、不足が不良債権になる
  6. 緊急投票でパラメータを変更して救済
六段階で、Oracle、Leverage、Liquidity、Smart Contract、Governanceの五種類に関わる。個別評価では、それぞれ制御可能に見える。

表と一つずつ照合しよう。

段階種類単独ではどう見えるか
価格操作Oracle Risk価格源は集中気味だが、プールは大きい
誤価格で評価Smart Contract Risk設計どおり実行された
一群の清算Leverage Risk清算は正常に動く
流動性枯渇Liquidity Risk平時は厚みが十分
不良債権Counterparty Risk準備金がある
緊急投票Governance Risk緊急手段は良いこと

各欄は制御可能でも、つなげると全損になる。

単一障害と複合事故の根本的な違いだ。

単一障害複合事故
引き金一部品の失敗一部品の失敗と伝播
損失規模おおよそ部品のエクスポージャー単独部品をはるかに超えうる
監査で発見できるかよくできるほぼできない。境界は一プロトコル
振り返りの説明特定モジュールの脆弱性低確率の連続した出来事
事前の防御個別検査個別検査 + 伝播経路を描く

最後の行が追加の作業だ。十項目へのチェックは第一歩で、第二歩は、その間に矢印を描くことだ。

モデルを作る

コード、経済、人の三層

どの層で起きるかによって再分類すると、有用な分布が見える。

層含む種類監査で発見できるか典型的な損失
コードSmart Contract、Bridgeの検証部分大半は可能一取引で資金が抜かれる
経済Oracle、Liquidity、Leverage、Token基本的に不可設計どおりのルールを利用
人Custody、Counterparty、Governance、Operationalまったく不可合法的に資金が移る

直感に反する推論がある。最も検査しやすい層は、最も損失が集中する層ではない。 監査はコードの誤りを見ても、数十万しか厚みのないプールを価格源にする判断の良し悪しを教えない。コードの誤りではなく設計の選択だ。チェーンで完璧に実行し、資金を抜く。

第16章の最後を補える。コードが完璧でも損失は出る。コードは三層の一つだけだからだ。

お金が出る五経路

複雑でも、最後は五つのどれかで出ていく。五十の事故名より、この五つを覚えよう。

経路姿主な対応自分側の行動
論理を利用想定外の組合せを一取引で呼ぶSmart Contract監査範囲、修正履歴、稼働期間
価格を操作入力価格が実市価と違うOracle価格源、数、遅延・中央値の有無
鍵を奪う資金を動かす権限を得るCustody、Operational多署名の閾値、時間ロック、単署名か
ルールを変更合法の投票・更新が帰属を変えるGovernance投票分布、実行までの間隔、時間ロック
自分が署名承認先が後で別のことをする利用者側定期撤回、大口を日常用から分ける

第五は、唯一完全に自分側で起きるため強調する。誰かがプロトコルを破る必要はない。 数か月前の承認が無制限、永久、更新可能なコントラクト向けなら足りる。個人の総損失では最大かもしれず、唯一、自分だけで閉じられる経路だ。

リスクは足し算ではない

第17章では、収益は足し算、リスクは掛け算とした。後半をより正確にしよう。掛け算だけでなく、相関もある。

三プロトコルにまたがり、各々の一年無事故確率が97%とする。

独立なら:0.97 × 0.97 × 0.97 = 91.3%

通常は独立でない。同じオラクル、担保、ブリッジなら、一事故が三層を同時に破る。実際の結合リスクは91.3%よりずっと悪い。

評価へ一作業を加えよう。各層の依存先を列挙し、重なりを探す。

重なり重要な理由
同じオラクル / 価格源一操作がすべてへ影響
同じ担保ペッグ離脱で全てに担保超の損失
同じブリッジ全資産が支えのない証書になる
同じマルチシグ / 権限群一度の鍵流出で全滅
同じチェーンのシーケンサー停止で清算も退出もできない

重なるほど、分散は偽物だ。 第18章の「場所を分けても分散でない」が一般法則となる。

各種類を調べられる問いへ

最後に行動へ変える。確定した答えを得られる記録にしよう。

種類:Oracle Risk
問い:価格源はどこか? 操作可能か?
判明:A源とB源の中央値、30分の時間加重
出典:公式文書第X節 + コントラクト0x…(エクスプローラーで照合済み)
結論:単独プール操作の費用は上がるが、極端な相場では両源が同時にゆがみうる
不確実:価格更新停止時の縮退動作が見つからない → 未評価

六行を十件埋めれば終わる。鍵は最後だ。

リストの質は項目数ではなく、未評価を正直に示した項目数で決まる。

十項目すべて緑なのは無リスクより、調べていないためであることが多い。分析ツール箱では、十八問とProject Canvasと並べてある。研究時に直接使おう。

何と呼ぶか

Smart Contract Riskコントラクトリスク

コード自身の欠陥、または別の形へ更新できること。

二つに分かれるが、前半しか見ない人が多い。前半は脆弱性で、論理、状態更新の順序、外部呼び出しの処理の誤り。後半は権限で、更新者、発効までの時間、時間ロックの有無だ。

後半が重要なことも多い。時間ロックのない更新可能コントラクトは、更新権限の鍵に全資金を渡すことに等しい。 完全な攻撃面モデルはT28、T29で扱う。

Oracle Riskオラクルリスク

プロトコルへ与える価格が、実市場と違うこと。

必須は価格源の数、時間加重・中央値の有無、更新停止時の対応。第三が最も抜けやすく、極端な相場で最も起きやすい。

費用構造を覚えよう。操作費用は価格源の厚みに依存する。浅いプールを評価基準にするのは、攻撃者へ明示価格を付けることだ。 技術実装はT21。

Bridge Riskクロスチェーンリスク

渡ってきた資産の背後に、何が担保としてあるか。

大半の本質は、元チェーンで実資産をロックし、先では証書を持つことだ。安全性は鍵を守る人次第で、マルチシグ、検証論理、オフチェーンサービスかもしれない。

必須の問いは、番人が失敗すれば証書はいくらになるか。答えはよくゼロだ。一件の損失が集中するのは、多チェーン資産を一点に集めるからだ。第12章の問いへの答えがここにある。

Custody Risk保管リスク

資産を誰が保管し、秘密鍵を誰が持つか。

第5章のリスク版だ。他人の手元なら、持つのは資産ではなく債権だ。 平時は同じに見え、事故時は違う。債権は順番待ちで、後ろかもしれない。

あまり語られない逆面がある。自己保管は保管リスクを運用リスクへ替える。 鍵の紛失、バックアップの水損、シードの一語の誤記も全損で、申立先はない。両方に代償があり、どちらを選ぶか知るのが要点だ。

Governance Riskガバナンスリスク

合法的な一投票で、資金を持ち去れるか。

必須は投票権分布(上位十の合計)、提案から実行までの時間(退出できる時間ロック)、緊急経路(誰が手順を飛ばせるか)だ。

特に注意する攻撃がある。投票権は一時的に借りられる。 大量に借りられれば、多数票は費用計算できる商売になる。借り、提案し、投票し、実行し、返すことを短時間で終えられる。

承認Approval / Allowance

署名して、ウォレット内の特定資産をコントラクトが使う上限を認めること。

一回限りではない。一度署名すれば、自分で撤回するまで有効だ。 初期の上限も無制限であることが多い。

気付かない人が多い事実がある。今日の安全は、過去に署名したすべてのコントラクトが、今も問題を起こしていないことに依存する。 定期整理しなければ集合は増えるだけだ。

分類では複数欄にまたがるが、唯一、自分だけで閉じられる経路だ。

実践

実践実事故を十種類で点検し、資金が流れた手順を復元するブロックエクスプローラー + 公式事後報告 + 公開事故記録0円。読むだけ。ウォレット接続、署名、再現のためのデプロイや呼び出しは禁止

最初から最後まで、読むだけでよい。 ウォレットをつながず、署名せず、どのネットワークでも攻撃を再現しようとしない。資金流の復元は記録を読むことで、取引の実行ではない。

選ぶ基準は一つ、公開の公式事後報告があること。最大規模でなくてよい。有名さより完全な資料が重要だ。

まず報告だけ読み、時間線を描く。 エクスプローラーを開く前に、最初の異常取引、発見、停止、告知、流出完了の時刻を並べる。

特に発見から停止までの間隔を見る。数時間かかる一方、攻撃自体は数分かもしれない。差自体がリスク指標だ。

重要取引を探し、自分で見る。 報告の攻撃取引を開き、呼んだコントラクト、順序、最後の送付先を見る。

全呼び出しの理解は不要だ。目標は報告の順序と記録の一致を確かめるだけ。一次事実で他人の結論を照合するため、最も自信を作る段階だ。第23章の方法そのものだ。

資金流図を描く。 事故前の場所から、事故後の場所まで描く。

利用者の預金 → プロトコルのプール → ? → ? → 攻撃者アドレス → ?

各疑問符を具体的な動作とアドレスで埋める。埋められなければ疑問符を残す。まだ分からない部分だ。

十項目を点検する。 一つずつ「発動 / 未発動 / 判別不能」と根拠一文を書く。

種類発動したか根拠(報告かオンチェーンか)
Smart Contract
Liquidity
Oracle
Bridge
Custody
Counterparty
Governance
Leverage
Token
Operational

多くの事故は三〜五項目に当たる。 一つだけなら、伝播がまだ見えていないことが多い。

核心:当たった項目の間に矢印を描く。 最初のドミノから、なぜ次を起こすか、一つずつ問う。手元に残るのはリストではなく図だ。

リストは何が起きたか、図はなぜこんなに高くついたかを教える。

四問に、一、二文ずつ答える。

  1. 最初のドミノはどれか?
  2. 事前に一つだけ修正できたなら、どこで損失を最小化するか?
  3. 最後の負担者は、トレジャリー、預金者、保有者、保険基金の誰か?
  4. 事前に公開で疑問を呈した人はいたか? フォーラムや監査の中・低危険度も探す。答えはよく「いた」だ。

第四が最も痛く、価値がある。多くは事前に指摘され、当時重視されなかった。

最後に、自分の使用中のプロトコルへ同じ十項目を使う。 十五分ほどだが、本当の成果だ。他人の事故は練習、自分の露出を調べるのが目的となる。

AI Lab

AI LabAIに攻撃を振り返らせ、公式報告と照合して捏造や曖昧さを示すLevel 2 · AI Copilot

特別な性質がある。正解が公開・固定され、一語ずつ照合できる。 公式報告も記録もあり、一致するかしないかだ。「どれだけ信じるか」の校正に、コースで最も向く練習となる。

[事故名とおおよその時期]を振り返ってください。

第一部:時間線。各行に、時刻(時区も明示)、出来事、
対応する取引ハッシュまたはブロック高、情報源リンクを付ける。

第二部:攻撃経路。どのコントラクトのどの関数を呼び、何を達成し、
なぜ設計がそれを許したか、一段階ずつ明示する。

第三部:次の十種類を「発動 / 未発動 / 判別不能」で評価し、
公開資料に基づく根拠一文を各項目に付ける。
Smart Contract / Liquidity / Oracle / Bridge / Custody /
Counterparty / Governance / Leverage / Token / Operational

第四部:損失。総額、どの時点の価格か、最終負担者
(トレジャリー / 預金者 / 保有者 / 保険基金 / その他)。

第五部:別に列挙する。
- 明確な出典のある内容と、その出典
- 同種の事故から推定した内容
- 見つからない内容

ルール:不確かなものはすべて「見つからない」とする。完全にするために、
もっともらしいハッシュ、アドレス、数字を補わない。

最初にエクスプローラーで、すべてのハッシュとアドレスを照合する。

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

  1. ハッシュとアドレスの捏造。 形式やチェックサムが正しく見えても、存在しない。文章では見抜けず、照合しかない。
  2. 同種事故の混同。 両方ブリッジ、両方価格操作なら詳細が混ざり、時間線は自然に読める。公式の時間線との比較が唯一の検出法だ。
  3. 不確かを確定とする。 特に最終負担者は、今日も結論のない事故が多いのに、明快に答える。

第五部が最も重要だ。確定と不確かを自分で分けさせ、確定としたものを重点的に調べる。 照合の量を半分以上減らす。さらに区別を求めると、通常、出力の信頼性も明確に上がる。

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

  • ハッシュとアドレスを実際に開いたか。正しい形式は存在を意味しない
  • 時間線は公式と一致し、重要な節点の追加や欠落がないか
  • 別の二事故を混ぜていないか。同種の詳細は特に混ざりやすい
  • 損失は事故時か別時点の価格か、説明したか
  • 報道上の主張や疑いを、確定した事実にしていないか
  • 十項目に、報告にない自身の推定が混ざるか
  • 最重要の、最終負担者を明確にしたか。モデルはほぼいつも曖昧にする
  • 不確かと示すものはいくつか。ゼロ自体が危険信号だ

実例

ブリッジの検証論理を迂回する近年、繰り返し発生

元でロックし、先で証書を発行する構造だ。「元で確かにロックした」と言える者が発行権を持つ。大事故のパターンはよく似る。存在しないロックを信じ込ませる。 検証材料の偽造、署名検査の迂回、十分な数のマルチシグ鍵の取得などだ。

一件の損失が常に上位なのは、集約点だからだ。多チェーン、多資産の価値が同じ検証論理へ賭けられる。第12章の世界が繁栄するほど大きくなる。

必須の問いは変わらない。番人が失敗したら、証書はいくらか?

浅いプールで担保価格を決める繰り返し発生オンチェーン借入・無期限プロトコル

担保として受け入れるトークンの価格が、数十万〜数百万の厚みしかないDEXプールから来る。

明確な計算にできる。大量に借り、価格を上げ、過大評価された担保で実資産を借り、そのまま終える。一件の取引内で完了することもある。

コードは設計どおりで、監査にも通りうる。問題は、操作費用が借入可能額よりはるかに低い場所を評価基準にした設計判断だ。

Oracle(薄い源)、Leverage(借入額が操作費用を大きく超す)、Liquidity(第15章の厚みがすべてを決める結論)に同時に当たる。一種類ずつなら、どれも大丈夫そうと評価する。

同時期に複数のプラットフォームが出金を止める2022年

固定利回りの中央集権型プラットフォームが、数週間で相次いで停止し、破産した。特定のハッキングではなく、普通の連鎖だった。利用者資金をレバレッジと期間不一致の投資へ回し、それが同じ下落に露出していた。 下落 → 投資損失 → 償還加速 → 資産売却 → 価格低下 → 損失拡大だ。

コードの誤りは一行もない。Custody(他人の手元)、Counterparty(相手自身のリスク)、Operational(管理と開示)、全過程のLeverageに当たる。

第5章の言葉を、最も高い代償で集団的に示した例だ。 概念の所有権が帳簿の現実になった。資産はあるが、債権者リストの一行になった。

一投票でトレジャリーを移すオンチェーンガバナンスのプロトコル繰り返し発生

支配権をトークン投票へ渡し、ルールは公開・透明・設計どおりだ。問題は投票権を一時的に得られること。大量に借りるか、創業者と初期投資家が多数を持つ。「合法投票での移転」が費用対効果を計算できる商売になる。借り、提案し、投票し、実行し、返す。

防御は三つを合わせて見る。投票分布(上位十の割合)、実行までの時間ロック(退出に足りるか)、緊急経路の所有者(誰が飛ばせるか)。

特別なのは、後でハッキングだと言える人がいないことだ。すべてルールに合う。そのため、事前に最も重視されにくい種類でもある。

変数を一つ変える

もし三つの機関の監査に通る

コードのリスクが明確に下がり、費用を払う価値のある利益だ。ただし三つは変わらない。対象版のみで、その後の更新は範囲外。経済設計は評価せず、浅い価格源は通常、中・低危険度の提案にとどまる。人の層は一切覆わず、鍵、投票分布、チームの退出は範囲外だ。

「監査済み」の正しい読み方は、十種類の一つを真剣に調べたこと。通行証ではなく、一科目の成績表だ。

もし単一プールから複数源の中央値と時間加重へ変える

操作費用は一桁以上上がる。複数を同時に動かし、加重窓が追い付くまで維持する必要があり、多くの攻撃が割に合わなくなる。

ただし逆向きの問題を持ち込む。時間加重は価格の遅れを意味する。 急相場で見える価格が市場より遅れ、必要な清算が間に合わず、不足が残る。

典型的な取捨選択であり、単なる改善ではない。 耐操作性と即時性は逆の両端で、パラメータは線上の点を選ぶ。「操作に強いか」ではなく、「どこを選び、なぜか」と問おう。

もし更新権限を単署名から4/7マルチシグと48時間ロックへ変える

費用対効果の高い変更で、二種類を動かす。

Operational Riskが下がる。 一鍵の流出では足りず四鍵が必要だ。Governance Riskも下がる。 変更が先に公開され、退出できる。時間ロックの役割は変更を止めることではなく、逃げる窓を与えることだ。

代償は二つ。緊急修正が遅く、公開後48時間を露出したまま待つ。また七人が本当に独立しているか。同じ事務所、機械、人の手元なら、4/7は文書の数字にすぎない。

署名者は誰で、互いにどれだけ独立しているかも問おう。

もし担保を主要資産から、プロトコル自身のトークンへ変える

最も危険な変数だ。自己参照の循環を作る。トークン上昇 → 担保価値増 → 借入増 → 借りた資金で同トークン購入 → さらに上昇。上向きではフライホイールに見える。

逆はさらに速く、第二の循環にぶつかる。下落 → 担保縮小 → 清算 → 市場で売却 → さらに下落。厚みは通常、支える借入額よりずっと小さい。

第13章のアルゴリズム型、第18章の連鎖清算、第21章のサイクルと同じ構造だ。担保リストに、自分が発行するものがあるかだけ問えば判断できる。

持ち帰る問い

9
誰がリスクを負うか?

埋められる表になった。十種類を点検し、当たるものの間に矢印を描く。

その後、最後まで問うべきは、事故時、誰がどの順に負担するかだ。トレジャリー、預金者、保有者、保険基金の順序を書けなければ、理解はまだ足りない。最も読まれない節に隠れていることが多い。

11
トークン価格がゼロになっても、プロダクトは動くか?

具体的な検査ができた。担保リストと価格源を見て、自分が発行したものがあるか調べる。

あれば、トークン全損とプロトコル停止は、同じことの二つの表現だ。上昇時に最も美しく、下落時に最も速くゼロになる。

16
エージェントにはどんな権限があるか?

Agentの権限には、人間版がある。皆が行うべきだ。自分のウォレットの承認、上限、対象の更新可能性を調べる。

同じ問いだ。資金を動かせるものの権限境界、期限、撤回方法は何か。 答えられなければ、Agentにウォレットを持たせることを安全に始められない。Part BのT33、T34で技術化する。

17
AI が間違えたとき、損失を負うのは誰か?

五経路をAIへ当てる。誤アドレス、誤価格、不適切な承認への署名なら、誰が損失を負うか?

枠組みは同じだ。先に権限者、次に補償の順序を問う。 自動システムでは事後に問う相手がいないため、配備前に文書の答えが必要だ。T32でアーキテクチャ制約にする。

章末チェック

要点

リスクは一種類ではなく十種類あり、事故ではしばしば同時に発生する。

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

このページの内容