メインコンテンツにスキップ

Ethereum ホワイトペーパー解説: スマートコントラクトプラットフォーム

2013年末、Vitalik Buterin という19歳のプログラマーが、ブロックチェーンの景色を塗り替える文書を公開しました。タイトルは "Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform"。このホワイトペーパーは、単なる送金以上のことができるブロックチェーンを提案しました。そこに描かれていたのは、汎用的でプログラム可能なブロックチェーン、すなわち想像できるあらゆるアプリケーションを動かせる分散型ワールドコンピュータでした。

このガイドでは、Ethereum ホワイトペーパーの主要コンセプト、設計判断、そして長期的な影響をたどり、Vitalik のビジョンが急進的な提案から数千億ドル規模のエコシステム基盤へどう進化したかを解説します。

歴史的背景​

Bitcoin の限界​

2013年までに、Bitcoin は分散型かつ trustless な価値移転システムが可能であることを証明していました。しかし、Bitcoin のスクリプト言語は意図的に機能が制限されていました。単純な条件(マルチシグ、タイムロック)は扱える一方で、複雑なアプリケーションは支えられませんでした。Buterin は次のように書いています。

「Bitcoin に実装されているスクリプト言語は、いくつかの重要な点で制限されている。基本的にスタックベースであり、opcode セットは非常に限定的で、技術的には『チューリング不完全』だが、これはバグではなく機能と見なされている。」

分散型アプリケーションを作りたい開発者は、Bitcoin の限られたスクリプトを無理に使うか、コンセンサスメカニズム・ネットワーク・セキュリティモデルを独自に持つ新規ブロックチェーンを一から作るしかありませんでした。これは非効率で、断片化を招きました。

汎用プラットフォームの必要性​

Buterin は、あらゆる分散型アプリケーションを支えられる単一プラットフォームという機会を見抜きました。用途ごとにチェーンを作る(ファイル保存用、ID用、予測市場用)より、すべてを実行できる1つのプログラマブルなブロックチェーンを作るべきではないか、という発想です。

彼が示した比喩はコンピューティングでした。足し算・引き算・掛け算ごとに別々の計算機を作るのではなく、あらゆるプログラムを実行できる汎用コンピュータを作る。Ethereum はその「汎用ブロックチェーン」になるはずでした。

先行する試み​

Ethereum 以前にも、ブロックチェーン機能の拡張を試みるプロジェクトはありました。

  • Colored Coins: Bitcoin トランザクションにメタデータを付与し、他の資産を表現
  • Metacoins: Bitcoin 上で動くプロトコル(Counterparty、Mastercoin/Omni)
  • Namecoin: 分散型ドメイン登録のための Bitcoin フォーク
  • Ripple: デジタル決済ネットワーク(中央集権型コンセンサス)

いずれも限界があり、Ethereum の設計はそれらを乗り越えることを目指しました。

ホワイトペーパーの中核概念​

UTXO ではなくアカウント​

Buterin は、Ethereum を Bitcoin と分ける根本的な設計判断をしました。Bitcoin の UTXO モデルではなく、アカウントベースモデルを採用したのです。

Ethereum では、状態はアカウントの集合で構成され、各アカウントは次を持ちます。

  • Nonce: 各トランザクションが一度だけ処理されることを保証するカウンタ
  • Ether balance: 保有 ETH 量
  • Contract code: スマートコントラクトのバイトコード(該当する場合)
  • Storage: 永続データ(コントラクトアカウント向けのキー・バリューストア)

アカウントには2種類あります。

  1. Externally Owned Accounts (EOAs): 秘密鍵で制御され、コードを持たない
  2. Contract Accounts: コードで制御され、メッセージ受信時に実行される

この設計により、残高や状態の把握が簡単になります。未使用アウトプットを個別追跡する代わりに、アカウント残高を追えばよいからです。銀行台帳に近い考え方ですが、分散型で透明です。

メッセージとトランザクション​

ホワイトペーパーでは、transactions(EOA による署名付き)と messages(コントラクト間の内部呼び出し)を区別します。

  • transaction は外部ユーザーが開始し、送信先、ETH 値、データ、gas limit、gas price を含む
  • message はコントラクトが別コントラクトを呼ぶ際に生成される仮想オブジェクトで、シリアライズされず実行中にのみ存在する

この区別によって、複雑な多段処理が可能になります。1つのユーザートランザクションがコントラクト間メッセージの連鎖を引き起こし、高度な DeFi プロトコルやコンポーザブルなアプリを実現します。

Ethereum Virtual Machine (EVM)​

EVM は Ethereum の中核であり、スマートコントラクトコードを実行するランタイム環境です。Buterin は EVM を次の性質で設計しました。

スタックベース構造: EVM は 256-bit 整数のスタックを使います。命令はスタックに値を push/pop します。実装・推論ともにシンプルです。

決定論的実行: 同じ状態・同じトランザクションなら、どのノードで実行しても同じ結果になります。これはコンセンサスに必須で、全ノードが同一結果に合意する必要があります。

Gas メータリング: すべての EVM 操作には定められた gas コストがあります。トランザクションで消費した gas 総量は送信者が ETH で支払います。この仕組みにより:

  • 無限ループを防ぐ(gas 切れで停止)
  • DoS 攻撃を防ぐ(攻撃者も資源コストを支払う)
  • 計算資源の市場を形成する(ユーザーは gas price で優先度を入札)

サンドボックス化: スマートコントラクトは、自身の storage、ブロックチェーン状態、入力データにしか直接アクセスできません。ファイルシステム、ネットワーク、その他外部リソースには直接アクセスできません。オラクルがこのギャップを埋め、オフチェーンデータをオンチェーンへ持ち込みます。

Opcode セット​

ホワイトペーパーは EVM の命令セットとして次を挙げています。

  • 算術: ADD, MUL, SUB, DIV, MOD, EXP
  • 比較: LT, GT, EQ, ISZERO
  • ビット演算: AND, OR, XOR, NOT, BYTE
  • SHA3: Keccak-256 ハッシュ(Ethereum は Keccak-256 を使用。しばしば SHA-3 と呼ばれる)
  • Stack/Memory/Storage: PUSH, POP, MLOAD, MSTORE, SLOAD, SSTORE
  • 制御フロー: JUMP, JUMPI, STOP, RETURN
  • 環境情報: ADDRESS, BALANCE, CALLER, CALLVALUE, CALLDATALOAD
  • ブロック情報: BLOCKHASH, COINBASE, TIMESTAMP, NUMBER, DIFFICULTY
  • ログ: LOG0-LOG4(イベント発行用)
  • 外部呼び出し: CALL, DELEGATECALL, CREATE

この命令セットは、最小限でありながら任意計算を表現できるよう設計されました。Solidity のような高級言語は、最終的にこれらの opcode へコンパイルされます。

状態遷移関数​

Buterin は Ethereum を状態遷移システムとして定式化しました。グローバル状態は、全アカウントの残高、nonce、code、storage のマッピングです。各トランザクションは定義済みの遷移関数により状態を変換します。

STATE' = APPLY(STATE, TX)

遷移関数は次を行います。

  1. トランザクション形式を検証(署名有効性、nonce 正当性)
  2. gas 手数料を計算し、送信者残高から差し引く
  3. gas カウンタを初期化し、トランザクションデータ各バイト分の gas を差し引く
  4. 指定 ETH 値を送信者から受信者へ移転
  5. 受信者がコントラクトなら、完了または gas 枯渇までコード実行
  6. 実行失敗(gas 切れ・エラー)時は、gas 支払いを除く状態変更を巻き戻す
  7. 余剰 gas を送信者へ返却し、消費分手数料をマイナー/バリデータへ送る

この状態遷移モデルは汎用性が高く、どんな計算も状態遷移列として表現できます。さらに gas 机制が資源安全性を保証します。

ホワイトペーパーで想定されたアプリケーション​

Buterin は Ethereum が可能にする複数カテゴリのアプリを示しました。注目すべきことに、そのほぼすべてが実現されています。

トークンシステム​

「オンチェーントークンシステムには、USD や金のような資産を表すサブ通貨から企業株式まで、多くの応用がある。」

このホワイトペーパーは、後に ERC-20 トークン標準となるものを先取りしていました。数千のトークン、ICO、DeFi プロトコル、stablecoins の土台です。シンプルなトークンコントラクトを、残高状態マッピングと transfer 関数として記述しており、これは ERC-20 そのものです。

金融デリバティブ​

Buterin は、外部データ(価格フィードなど)を参照して金融商品を決済するコントラクトを記述しました。このビジョンは DeFi デリバティブ市場として具現化され、Synthetix、dYdX、GMX などが Ethereum 上で分散型のデリバティブ、オプション、先物取引を提供しています。

ID とレピュテーションシステム​

ホワイトペーパーは、中央当局なしでユーザー自身が管理する自己主権型 ID への Ethereum 活用を論じました。ENS(Ethereum Name Service)、Soulbound Tokens、分散型 ID(DID)標準などが、このビジョンを部分的に実現しています。

分散型ファイルストレージ​

Buterin は Ethereum スマートコントラクトを使って分散型ファイル保存を調整する案を示しました。Ethereum 自体は大容量ファイル保存には不向き(高コスト)ですが、保存ネットワークの調整には使えます。IPFS、Filecoin、Arweave などはこの発想に触発されています。

Decentralized Autonomous Organizations (DAOs)​

「『分散型自律組織』の一般概念とは、あるメンバーまたは株主集合を持つ仮想的主体であり、たとえば 67% 多数で、その資金支出とコード変更の権利を持つ、というものである。」

DAO は Ethereum エコシステムで主要なガバナンスモデルになりました。MakerDAO、Uniswap ガバナンス、トレジャリー管理プロトコルまで、オンチェーン組織統治という Buterin のビジョンは広く採用されています。

貯蓄ウォレットとマルチシグ​

ホワイトペーパーでは、出金制限、複数当事者承認、ソーシャルリカバリーを備えた安全な貯蓄用スマートコントラクトが説明されています。これらの概念は、スマートコントラクトウォレット、マルチシグウォレット(Safe/Gnosis Safe など)、アカウント抽象化の流れに直接つながりました。

設計判断とトレードオフ​

なぜチューリング完全性なのか?​

Buterin は、意図的に制限された Bitcoin Script と異なり、Ethereum 言語をチューリング完全(計算可能な関数をすべて計算可能)にすることを選びました。これは論争的でした。チューリング完全性は無限ループや複雑な攻撃面のリスクを持ち込むからです。

解決策は gas でした。計算ステップごとの課金により、表現力を制限せず計算量を制限します。永遠に走ろうとするプログラムも最終的に gas 切れで停止します。複雑なスマートコントラクトのバグや脆弱性リスクは残りますが、それはプロトコル層ではなくアプリケーション層のセキュリティ課題です。

なぜアカウントモデルなのか?​

Buterin が UTXO よりアカウントを選んだ理由は主に次の通りです。

  1. 空間効率: アカウントは状態を1回保持するが、UTXO は未使用出力ごとにデータが複製される
  2. 単純性: スマートコントラクトロジックで残高を扱いやすい
  3. 代替可能性: 1アカウント内の ETH は同質だが、UTXO は個別履歴を持つ

トレードオフは、並列性の低下(同一アカウントに触れる取引は順序付けが必要)と、状態管理の複雑化です。

なぜ Bitcoin 上に構築しなかったのか?​

Buterin は、Bitcoin 拡張だけでは不十分な理由を説明しました。

  1. 限定的スクリプト: Bitcoin Script にはループ、複雑状態、豊富なデータ型がない
  2. Value-blindness: スクリプトで金額をきめ細かく制御できない
  3. Blockchain-blindness: スクリプトがブロックチェーンメタデータ(タイムスタンプ、ブロック番号)へアクセスできない
  4. 状態欠如: 単純な使用済み/未使用の二値以外に永続状態がない

これらの制約により、複雑なアプリには根本的に異なるプラットフォームが必要でした。

ホワイトペーパーが的中させたこと​

スマートコントラクト需要​

最も根本的な予測、すなわちプログラマブル・ブロックチェーンアプリへの巨大需要は、見事に的中しました。DeFi、NFT、DAO、ゲーム、エンタープライズ用途により、Ethereum 上で数千億ドル規模の経済活動が生まれています。

コンポーザビリティ​

ホワイトペーパーが描いた、コントラクト同士が相互作用するビジョン("money legos")は、Ethereum を特徴づける機能の1つになりました。レンディング、取引所、利回り最適化が連携する DeFi のコンポーザビリティは、このビジョンの直接的な実現です。

ネットワーク効果​

Buterin は、汎用プラットフォームが開発者を呼び、開発者がユーザーを呼び、ユーザーがさらに開発者を呼ぶ循環を予見していました。このフライホイールにより、Ethereum は最大の開発者コミュニティ、最多のアプリ、最大の流動性を持つ主要スマートコントラクト基盤になりました。

ホワイトペーパー以後の変化​

コンセンサスメカニズム​

当初のホワイトペーパーは Bitcoin に近い proof-of-work を記述していました。Ethereum は 2015 年に PoW でローンチしましたが、当初から proof of stake への移行計画がありました。The Merge は 2022 年 9 月にこの移行を完了し、Ethereum のセキュリティモデルと環境特性を根本的に変えました。

スケーリング戦略​

ホワイトペーパーは、Ethereum が直面するスケーリング課題を十分には予見していませんでした。当初はベースレイヤー処理能力で足りる想定でしたが、2020-2021 年の DeFi/NFT 拡大で Layer 2 の必要性が明確になりました。ロードマップは rollup-centric へ転換し、ベースレイヤーはデータ可用性を最適化、実行は Layer 2 が担う形になりました。

MEV (Maximal Extractable Value)​

ホワイトペーパーは MEV を想定していませんでした。これはブロック生成者がトランザクションの並び替え・包含・除外で抽出できる価値です。MEV は主要研究領域となり、MEV 保護メカニズム(Flashbots、PBS)の開発を促し、今では Ethereum インフラの中核要素です。

Gas 価格メカニズム​

当初のホワイトペーパーは gas を単純な第一価格オークションで説明していました。EIP-1559 はこれを、burn される base fee と tip を含む高度な方式へ置き換え、手数料予測可能性を高め、ETH 供給にデフレ圧力を生みました。

原文を読む​

Ethereum ホワイトペーパーは ethereum.org/en/whitepaper/ で読めます。Bitcoin whitepaper より長く技術的ですが、基本的なプログラミングと暗号知識があれば十分読めます。Vitalik は多数のブログ記事・エッセイも公開しており、さらに新しい技術文書として EVM 仕様を形式化した yellow paper(Gavin Wood)もあります。

SafeSeed Tool

ETH を安全に管理するには、Ethereum の鍵導出を理解することが重要です。SafeSeed Key Derivation Tool を使うと、1つの BIP-39 シードフレーズから BIP-44 パス(m/44'/60'/0'/0/x)を通じて異なる Ethereum アドレスが導出される仕組みを確認できます。1つのシードフレーズで、すべての Ethereum アカウントを保護できます。

FAQ​

Ethereum ホワイトペーパーは誰が書いたのですか?​

Ethereum ホワイトペーパーは、2013年末に Vitalik Buterin が執筆しました。当時 19 歳でした。主著者は Vitalik ですが、Ethereum 開発には多くの共同創設者が関わっています。Gavin Wood(EVM を形式化した技術文書 "yellow paper" の著者)、Charles Hoskinson(後に Cardano を創設)、Joseph Lubin(ConsenSys を創設)などです。

Ethereum ホワイトペーパーはいつ公開されましたか?​

ホワイトペーパーは 2013 年末から 2014 年初頭にかけて最初に流通しました。Ethereum のクラウドセール(ICO)は 2014 年 7-8 月に実施され、約 1,800 万ドルを調達しました。Ethereum メインネットは 2015 年 7 月 30 日にローンチしました。

Ethereum ホワイトペーパーはどんな問題を解決しますか?​

このホワイトペーパーは、既存ブロックチェーン(主に Bitcoin)が複雑なアプリを支えられないという制約を扱います。Bitcoin は価値移転を可能にしますが、分散型取引所、レンディング、自己実行型契約のようなプログラマブルアプリは支えられません。Ethereum は、あらゆる分散型アプリを構築できる汎用プラットフォームを提供します。

Ethereum の whitepaper と yellow paper の違いは何ですか?​

whitepaper(Vitalik Buterin)は、Ethereum のビジョン、設計、用途を説明する概念文書です。yellow paper(Gavin Wood)は、EVM、状態遷移関数、gas コストを含む Ethereum プロトコルの厳密な技術仕様です。yellow paper は実装の参照ガイドです。

Ethereum ホワイトペーパーは今でも有効ですか?​

中核概念であるスマートコントラクト、EVM、アカウント、gas は、現在の Ethereum の基本です。一方で公開以降に大きな変更もありました。proof of stake への移行、EIP-1559 手数料機構、Layer 2 スケーリング戦略、アカウント抽象化です。ホワイトペーパーは重要な背景知識を与えますが、より新しい文書と併読すべきです。

Ethereum ホワイトペーパーは Bitcoin のものと比べてどうですか?​

Bitcoin のホワイトペーパー(9ページ)は P2P 電子キャッシュに焦点を絞っています。Ethereum のホワイトペーパーはより長く広範で、汎用計算プラットフォームを提案しています。Bitcoin は二重支払い問題を解き、Ethereum はブロックチェーン概念をプログラマブルアプリへ拡張しました。どちらも暗号資産理解に本気で取り組む人が読むべき基礎文書です。

ホワイトペーパーで最も議論を呼んだ点は何でしたか?​

Ethereum をチューリング完全にする決定が最も議論されました。批判者(特に Bitcoin コミュニティ)は、チューリング完全性が受け入れ難いほど大きな攻撃面を持ち込むと主張しました。支持者は、gas メータリングでリスクを十分制御しつつ広大な設計空間を可能にすると主張しました。歴史的には双方に妥当性がありました。Ethereum の表現力は卓越した革新を生みましたが、スマートコントラクト脆弱性(The DAO hack、reentrancy attacks、oracle manipulation)による大きな損失も発生しました。

関連ガイド​