---
title: "プラズマ・チェーン"
description: "現在イーサリアム・コミュニティで利用されているスケーリング・ソリューションとしてのプラズマ・チェーンの紹介。"
lang: ja
incomplete: true
sidebarDepth: 3
---

プラズマ・チェーンは、[イーサリアム](/)・メインネットに固定された独立したブロックチェーンですが、独自のブロック検証メカニズムを使用してオフチェーンでトランザクションを実行します。プラズマ・チェーンは「子」チェーンと呼ばれることもあり、基本的にはイーサリアム・メインネットの縮小コピーです。プラズマ・チェーンは、紛争を仲裁するために（[オプティミスティック・ロールアップ](/developers/docs/scaling/optimistic-rollups/)のように）[不正証明](/glossary/#fraud-proof)を使用します。

マークル・ツリーにより、親チェーン（イーサリアム・メインネットを含む）から帯域幅をオフロードするために機能する、これらのチェーンの無限のスタックを作成できます。ただし、これらのチェーンは（不正証明を介して）イーサリアムからある程度のセキュリティを引き出しますが、そのセキュリティと効率はいくつかの設計上の制限の影響を受けます。

## 前提条件 {#prerequisites}

すべての基礎的なトピックを十分に理解し、[イーサリアムのスケーリング](/developers/docs/scaling/)について高いレベルで理解している必要があります。

## プラズマとは？ {#what-is-plasma}

プラズマは、イーサリアムのようなパブリック・ブロックチェーンのスケーラビリティを向上させるためのフレームワークです。オリジナルの[プラズマのホワイトペーパー](https://plasma.io/plasma.pdf)で説明されているように、プラズマ・チェーンは別のブロックチェーン（「ルート・チェーン」と呼ばれます）の上に構築されます。各「子チェーン」はルート・チェーンから拡張され、一般的に親チェーンにデプロイされたスマート・コントラクトによって管理されます。

プラズマのコントラクトは、とりわけ、ユーザーがイーサリアム・メインネットとプラズマ・チェーンの間で資産を移動できるようにする[ブリッジ](/developers/docs/bridges/)として機能します。これにより、[サイドチェーン](/developers/docs/scaling/sidechains/)に似たものになりますが、プラズマ・チェーンは、少なくともある程度は、イーサリアム・メインネットのセキュリティの恩恵を受けます。これは、独自のセキュリティに単独で責任を負うサイドチェーンとは異なります。

## プラズマはどのように機能するのか？ {#how-does-plasma-work}

プラズマ・フレームワークの基本的なコンポーネントは以下の通りです。

### オフチェーン計算 {#offchain-computation}

イーサリアムの現在の処理速度は1秒あたり約15〜20トランザクションに制限されており、より多くのユーザーを処理するための短期的なスケーリングの可能性を低下させています。この問題が存在する主な理由は、イーサリアムの[コンセンサス・メカニズム](/developers/docs/consensus-mechanisms/)では、ブロックチェーンの状態に対するすべての更新を検証するために、多くのピア・ツー・ピア・ノードが必要になるためです。

イーサリアムのコンセンサス・メカニズムはセキュリティのために必要ですが、すべてのユースケースに適用できるとは限りません。たとえば、アリスがボブにコーヒー1杯分の支払いをする場合、両者の間にはある程度の信頼関係が存在するため、イーサリアム・ネットワーク全体で検証する必要はないかもしれません。

プラズマは、イーサリアム・メインネットがすべてのトランザクションを検証する必要はないと想定しています。代わりに、メインネット外でトランザクションを処理し、ノードがすべてのトランザクションを検証する負担から解放することができます。

プラズマ・チェーンは速度とコストを最適化できるため、オフチェーン計算が必要です。たとえば、プラズマ・チェーンは、トランザクションの順序付けと実行を管理するために単一の「オペレーター」を使用する場合があります（そしてほとんどの場合そうしています）。トランザクションを検証するエンティティが1つだけであるため、プラズマ・チェーンでの処理時間はイーサリアム・メインネットよりも速くなります。

### 状態のコミットメント {#state-commitments}

プラズマはオフチェーンでトランザクションを実行しますが、それらはメインのイーサリアム実行レイヤーで決済されます。そうしないと、プラズマ・チェーンはイーサリアムのセキュリティ保証の恩恵を受けることができません。しかし、プラズマ・チェーンの状態を知らずにオフチェーンのトランザクションをファイナライズすると、セキュリティ・モデルが壊れ、無効なトランザクションの増殖を許してしまいます。このため、プラズマ・チェーンでブロックを生成する責任を負うエンティティであるオペレーターは、定期的にイーサリアム上で「状態のコミットメント」を公開する必要があります。

[コミットメント・スキーム](https://en.wikipedia.org/wiki/Commitment_scheme)は、他の当事者に明らかにすることなく、値またはステートメントにコミットするための暗号化技術です。コミットメントは、一度コミットした値やステートメントを変更できないという意味で「拘束力」があります。プラズマにおける状態のコミットメントは、（[マークル・ツリー](/whitepaper/#merkle-trees)から派生した）「マークル・ルート」の形式をとり、オペレーターはこれを一定間隔でイーサリアム・チェーン上のプラズマ・コントラクトに送信します。

マークル・ルートは、大量の情報を圧縮できる暗号プリミティブです。マークル・ルート（この場合は「ブロック・ルート」とも呼ばれます）は、ブロック内のすべてのトランザクションを表すことができます。また、マークル・ルートを使用すると、小さなデータの一部がより大きなデータセットの一部であることを簡単に検証できます。たとえば、ユーザーは[マークル証明](/developers/tutorials/merkle-proofs-for-offline-data-integrity/#main-content)を生成して、特定のブロックにトランザクションが含まれていることを証明できます。

マークル・ルートは、オフチェーンの状態に関する情報をイーサリアムに提供するために重要です。マークル・ルートは「セーブポイント」と考えることができます。オペレーターは「これはある時点xにおけるプラズマ・チェーンの状態であり、これが証拠としてのマークル・ルートです」と言っているのです。オペレーターはマークル・ルートを使用してプラズマ・チェーンの_現在の状態_にコミットしているため、「状態のコミットメント」と呼ばれます。

### エントリーとエグジット {#entries-and-exits}

イーサリアムのユーザーがプラズマを利用するには、メインネットとプラズマ・チェーンの間で資金を移動するメカニズムが必要です。ただし、プラズマ・チェーン上のアドレスにイーサを任意に送信することはできません。これらのチェーンは互換性がないため、トランザクションは失敗するか、資金の損失につながります。

プラズマは、イーサリアム上で実行されるマスター・コントラクトを使用して、ユーザーのエントリーとエグジットを処理します。このマスター・コントラクトは、（前述の）状態のコミットメントを追跡し、不正証明を介して不正行為を罰する（後述）役割も担っています。

#### プラズマ・チェーンへのエントリー {#entering-the-plasma-chain}

プラズマ・チェーンにエントリーするには、アリス（ユーザー）はETHまたは任意のERC-20トークンをプラズマ・コントラクトに入金する必要があります。コントラクトへの入金を監視しているプラズマのオペレーターは、アリスの初期入金と同額を再作成し、プラズマ・チェーン上の彼女のアドレスに解放します。アリスは子チェーンで資金を受け取ったことを証明する必要があり、その後、これらの資金をトランザクションに使用できます。

#### プラズマ・チェーンからのエグジット {#exiting-the-plasma-chain}

プラズマ・チェーンからのエグジットは、いくつかの理由から、エントリーするよりも複雑です。最大の理由は、イーサリアムはプラズマ・チェーンの状態に関する情報を持っていますが、その情報が真実かどうかを検証できないことです。悪意のあるユーザーが誤った主張（「私は1000 ETHを持っている」）を行い、その主張を裏付ける偽の証明を提供して逃げおおせる可能性があります。

悪意のある引き出しを防ぐために、「チャレンジ期間」が導入されています。チャレンジ期間（通常は1週間）中、誰でも不正証明を使用して引き出しリクエストに異議を唱えることができます。チャレンジが成功した場合、引き出しリクエストは拒否されます。

しかし、通常、ユーザーは正直であり、所有する資金について正しい請求を行います。このシナリオでは、アリスはプラズマ・コントラクトにトランザクションを送信することで、ルート・チェーン（イーサリアム）上で引き出しリクエストを開始します。

彼女はまた、プラズマ・チェーン上で彼女の資金を作成したトランザクションがブロックに含まれていることを検証するマークル証明を提供する必要があります。これは、[Unspent Transaction Output (UTXO)](https://en.wikipedia.org/wiki/Unspent_transaction_output)モデルを使用するPlasma MVPなどのプラズマのイテレーションに必要です。

Plasma Cashなどの他のイテレーションでは、資金をUTXOではなく[非代替性トークン](/developers/docs/standards/tokens/erc-721/)として表します。この場合、引き出しにはプラズマ・チェーン上のトークンの所有権の証明が必要です。これは、そのトークンに関連する最新の2つのトランザクションを送信し、それらのトランザクションがブロックに含まれていることを検証するマークル証明を提供することによって行われます。

ユーザーはまた、正直な行動の保証として、引き出しリクエストに保証金を追加する必要があります。チャレンジャーがアリスの引き出しリクエストが無効であることを証明した場合、彼女の保証金はスラッシングされ、その一部は報酬としてチャレンジャーに支払われます。

誰も不正証明を提供せずにチャレンジ期間が経過した場合、アリスの引き出しリクエストは有効と見なされ、イーサリアム上のプラズマ・コントラクトから入金を回収できるようになります。
### 紛争の仲裁 {#dispute-arbitration}

他のブロックチェーンと同様に、プラズマ・チェーンには、参加者が悪意を持って行動した場合（資金の二重支払いなど）にトランザクションの整合性を強制するメカニズムが必要です。この目的のために、プラズマ・チェーンは不正証明を使用して、状態遷移の有効性に関する紛争を仲裁し、不正行為を罰します。不正証明は、プラズマの子チェーンが親チェーンまたはルート・チェーンに苦情を申し立てるためのメカニズムとして使用されます。

不正証明は、単に特定の状態遷移が無効であるという主張です。例として、ユーザー（アリス）が同じ資金を2回使おうとした場合が挙げられます。おそらく彼女はボブとのトランザクションでUTXOを使用し、別のトランザクションで同じUTXO（現在はボブのもの）を使用したいと考えています。

引き出しを防ぐために、ボブは、アリスが以前のトランザクションで当該UTXOを使用したという証拠と、そのトランザクションがブロックに含まれていることのマークル証明を提供することによって、不正証明を構築します。Plasma Cashでも同じプロセスが機能します。ボブは、アリスが引き出そうとしているトークンを以前に転送したという証明を提供する必要があります。

ボブのチャレンジが成功した場合、アリスの引き出しリクエストはキャンセルされます。ただし、このアプローチは、ボブが引き出しリクエストがないかチェーンを監視する能力に依存しています。ボブがオフラインの場合、チャレンジ期間が経過すると、アリスは悪意のある引き出しを処理できます。

## プラズマにおける大量エグジット問題 {#the-mass-exit-problem-in-plasma}

大量エグジット問題は、多数のユーザーが同時にプラズマ・チェーンから引き出そうとしたときに発生します。この問題が存在する理由は、プラズマの最大の問題の1つである**データの可用性の欠如（data unavailability）**に関係しています。

データの可用性とは、提案されたブロックの情報が実際にブロックチェーン・ネットワーク上で公開されたことを検証する能力です。プロデューサーがブロック自体を公開しても、ブロックの作成に使用されたデータを保留している場合、ブロックは「利用不可」になります。

ノードがブロックをダウンロードしてトランザクションの有効性を検証できるようにするには、ブロックが利用可能である必要があります。ブロックチェーンは、ブロック・プロデューサーにすべてのトランザクション・データをオンチェーンに投稿させることで、データの可用性を確保します。

データの可用性は、イーサリアムのベース・レイヤー上に構築されるオフチェーン・スケーリング・プロトコルの保護にも役立ちます。これらのチェーンのオペレーターにイーサリアム上でトランザクション・データを公開させることで、誰でもチェーンの正しい状態を参照する不正証明を構築して、無効なブロックに異議を唱えることができます。

プラズマ・チェーンは主にトランザクション・データをオペレーターに保存し、**メインネットにはデータを公開しません**（つまり、定期的な状態のコミットメントを除いて）。これは、ユーザーが無効なトランザクションに異議を唱える不正証明を作成する必要がある場合、ブロック・データを提供するオペレーターに依存しなければならないことを意味します。このシステムが機能すれば、ユーザーは常に不正証明を使用して資金を保護できます。

問題は、単なるユーザーではなく、オペレーターが悪意を持って行動する当事者である場合に始まります。オペレーターはブロックチェーンを単独で制御しているため、プラズマ・チェーン上のユーザーに属する資金を盗むなど、より大規模に無効な状態遷移を進めるインセンティブが高くなります。

この場合、従来の不正証明システムを使用しても機能しません。オペレーターは、アリスとボブの資金を自分のウォレットに転送する無効なトランザクションを簡単に作成し、不正証明の作成に必要なデータを隠すことができます。これは、オペレーターがユーザーやメインネットにデータを利用可能にする必要がないために可能です。

したがって、最も楽観的な解決策は、プラズマ・チェーンからのユーザーの「大量エグジット」を試みることです。大量エグジットは、資金を盗むという悪意のあるオペレーターの計画を遅らせ、ユーザーにある程度の保護を提供します。引き出しリクエストは、各UTXO（またはトークン）が作成された日時に基づいて順序付けられ、悪意のあるオペレーターが正直なユーザーをフロントランニングするのを防ぎます。

それにもかかわらず、大量エグジット中に引き出しリクエストの有効性を検証する方法が依然として必要です。これは、日和見主義的な個人が無効なエグジットを処理する混乱に乗じて利益を得るのを防ぐためです。解決策は簡単です。ユーザーが資金をエグジットするには、**チェーンの最後の有効な状態**を投稿するようにリクワイアすることです。

しかし、このアプローチにはまだ問題があります。たとえば、プラズマ・チェーン上のすべてのユーザーがエグジットする必要がある場合（悪意のあるオペレーターの場合は可能です）、プラズマ・チェーンの有効な状態全体を一度にイーサリアムのベース・レイヤーにダンプする必要があります。プラズマ・チェーンの任意のサイズ（高いスループット＝より多くのデータ）とイーサリアムの処理速度の制約を考慮すると、これは理想的な解決策ではありません。

エグジット・ゲームは理論的には良さそうに聞こえますが、実際の大量エグジットは、イーサリアム自体にネットワーク全体の輻輳を引き起こす可能性があります。イーサリアムの機能を損なうだけでなく、調整が不十分な大量エグジットは、オペレーターがプラズマ・チェーン上のすべてのアカウントを空にする前に、ユーザーが資金を引き出せなくなる可能性があることを意味します。

## プラズマの長所と短所 {#pros-and-cons-of-plasma}

| 長所                                                                                                                                                                                                                             | 短所                                                                                                                                                                         |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 高いスループットとトランザクションあたりの低コストを提供します。                                                                                                                                                                             | 一般的な計算をサポートしていません（スマート・コントラクトを実行できません）。述語論理を介してサポートされるのは、基本的なトークン転送、スワップ、およびその他のいくつかのトランザクション・タイプのみです。    |
| 任意のユーザー間のトランザクションに適しています（両方がプラズマ・チェーン上で確立されている場合、ユーザー・ペアごとのオーバーヘッドはありません）。                                                                                                            | 資金のセキュリティを確保するために、定期的にネットワークを監視する（ライブネス要件）か、この責任を他の誰かにデリゲートする必要があります。                          |
| プラズマ・チェーンは、メイン・チェーンとは無関係の特定のユースケースに適応させることができます。企業を含む誰もが、プラズマのスマート・コントラクトをカスタマイズして、さまざまなコンテキストで機能するスケーラブルなインフラストラクチャを提供できます。 | データを保存し、リクエストに応じて提供するために、1つ以上のオペレーターに依存しています。                                                                                                     |
| 計算とストレージをオフチェーンに移動することで、イーサリアム・メインネットの負荷を軽減します。                                                                                                                                                    | チャレンジを可能にするため、引き出しは数日間遅れます。代替可能資産の場合、これは流動性プロバイダーによって軽減できますが、関連する資本コストがかかります。 |
|                                                                                                                                                                                                                                  | あまりにも多くのユーザーが同時にエグジットしようとすると、イーサリアム・メインネットが輻輳する可能性があります。                                                                                          |

## プラズマとレイヤー2スケーリング・プロトコルの比較 {#plasma-vs-layer-2}

プラズマはかつてイーサリアムの有用なスケーリング・ソリューションと考えられていましたが、その後、[レイヤー2 (L2) スケーリング・プロトコル](/layer-2/)を支持して廃止されました。L2スケーリング・ソリューションは、プラズマのいくつかの問題を解決します。

### 効率性 {#efficiency}

[ゼロ知識ロールアップ](/developers/docs/scaling/zk-rollups)は、オフチェーンで処理されるトランザクションの各バッチの有効性の暗号証明を生成します。これにより、ユーザー（およびオペレーター）が無効な状態遷移を進めるのを防ぎ、チャレンジ期間やエグジット・ゲームの必要性を排除します。これはまた、ユーザーが資金を保護するために定期的にチェーンを監視する必要がないことを意味します。

### スマート・コントラクトのサポート {#support-for-smart-contracts}

プラズマ・フレームワークのもう1つの問題は、[イーサリアムのスマート・コントラクトの実行をサポートできないこと](https://ethresear.ch/t/why-smart-contracts-are-not-feasible-on-plasma/2598/4)でした。その結果、プラズマのほとんどの実装は、主に単純な支払いやERC-20トークンの交換のために構築されました。

逆に、オプティミスティック・ロールアップは[イーサリアム仮想マシン](/developers/docs/evm/)と互換性があり、イーサリアム・ネイティブの[スマート・コントラクト](/developers/docs/smart-contracts/)を実行できるため、[分散型アプリケーション (dapp)](/developers/docs/dapps/)をスケーリングするための有用で_安全な_ソリューションになります。同様に、ZKロールアップが任意のロジックを処理し、スマート・コントラクトを実行できるようにする[EVMのゼロ知識実装（zkEVM）を作成する](https://ethresear.ch/t/a-zk-evm-specification/11549)計画が進行中です。

### データの可用性の欠如 {#data-unavailability}

前述のように、プラズマはデータの可用性の問題に悩まされています。悪意のあるオペレーターがプラズマ・チェーン上で無効な遷移を進めた場合、オペレーターは不正証明の作成に必要なデータを保留できるため、ユーザーはそれに異議を唱えることができません。ロールアップは、オペレーターにイーサリアム上でトランザクション・データを投稿させることでこの問題を解決し、誰でもチェーンの状態を検証し、必要に応じて不正証明を作成できるようにします。

### 大量エグジット問題 {#mass-exit-problem}

ZKロールアップとオプティミスティック・ロールアップはどちらも、さまざまな方法でプラズマの大量エグジット問題を解決します。たとえば、ZKロールアップは、いかなるシナリオでもオペレーターがユーザーの資金を盗むことができないようにする暗号メカニズムに依存しています。

同様に、オプティミスティック・ロールアップは引き出しに遅延期間を課し、その間に誰でもチャレンジを開始して悪意のある引き出しリクエストを防ぐことができます。これはプラズマに似ていますが、違いは、検証者が不正証明の作成に必要なデータにアクセスできることです。したがって、ロールアップのユーザーは、イーサリアム・メインネットへの熱狂的な「我先に逃げ出す」移行に参加する必要はありません。

## プラズマはサイドチェーンやシャーディングとどう違うのか？ {#plasma-sidechains-sharding}

プラズマ、サイドチェーン、シャーディングは、すべて何らかの形でイーサリアム・メインネットに接続するため、かなり似ています。ただし、これらの接続のレベルと強度は異なり、各スケーリング・ソリューションのセキュリティ特性に影響を与えます。

### プラズマとサイドチェーンの比較 {#plasma-vs-sidechains}

[サイドチェーン](/developers/docs/scaling/sidechains/)は、双方向ブリッジを介してイーサリアム・メインネットに接続された独立して運営されるブロックチェーンです。[ブリッジ](/bridges/)を使用すると、ユーザーは2つのブロックチェーン間でトークンを交換してサイドチェーンでトランザクションを実行できるため、イーサリアム・メインネットの輻輳が軽減され、スケーラビリティが向上します。
サイドチェーンは個別のコンセンサス・メカニズムを使用し、通常はイーサリアム・メインネットよりもはるかに小規模です。その結果、これらのチェーンに資産をブリッジすることにはリスクの増加が伴います。サイドチェーン・モデルではイーサリアム・メインネットから継承されるセキュリティ保証がないため、ユーザーはサイドチェーンへの攻撃で資金を失うリスクがあります。

逆に、プラズマ・チェーンはメインネットからセキュリティを引き出します。これにより、サイドチェーンよりもはるかに安全になります。サイドチェーンとプラズマ・チェーンはどちらも異なるコンセンサス・プロトコルを持つことができますが、違いは、プラズマ・チェーンがイーサリアム・メインネット上の各ブロックのマークル・ルートを公開することです。ブロック・ルートは、プラズマ・チェーンで発生するトランザクションに関する情報を検証するために使用できる小さな情報です。プラズマ・チェーンで攻撃が発生した場合、ユーザーは適切な証明を使用して資金をメインネットに安全に引き出すことができます。

### プラズマとシャーディングの比較 {#plasma-vs-sharding}

プラズマ・チェーンとシャード・チェーンはどちらも、定期的にイーサリアム・メインネットに暗号証明を公開します。ただし、両者のセキュリティ特性は異なります。

シャード・チェーンは、各データ・シャードに関する詳細情報を含む「照合ヘッダー」をメインネットにコミットします。メインネット上のノードはデータ・シャードの有効性を検証して強制し、無効なシャード遷移の可能性を減らし、悪意のあるアクティビティからネットワークを保護します。

プラズマは異なり、メインネットは子チェーンの状態に関する最小限の情報しか受け取りません。これは、メインネットが子チェーンで実行されたトランザクションを効果的に検証できないことを意味し、安全性が低下します。

**注:** イーサリアム・ブロックチェーンのシャーディングは、もはやロードマップにはありません。これは、ロールアップと[ダンクシャーディング](/roadmap/danksharding)によるスケーリングに取って代わられました。

### プラズマの使用 {#use-plasma}

複数のプロジェクトが、dappに統合できるプラズマの実装を提供しています。

- [ポリゴン](https://polygon.technology/)（旧Matic Network）

## 参考文献 {#further-reading}

- [「共有セキュリティ」の意味と、それが非常に重要である理由の簡単なリマインダー](https://old.reddit.com/r/ethereum/comments/sgd3zt/a_quick_reminder_of_what_shared_security_means/)
- [サイドチェーン、プラズマ、シャーディングの比較](https://vitalik.eth.limo/general/2019/06/12/plasma_vs_sharding.html)
- [プラズマを理解する、パート1：基礎](https://www.theblockcrypto.com/amp/post/10793/understanding-plasma-part-1-the-basics)
- [プラズマの生と死](https://medium.com/dragonfly-research/the-life-and-death-of-plasma-b72c6a59c5ad#)

_役に立ったコミュニティ・リソースをご存知ですか？このページを編集して追加してください！_
## チュートリアル：イーサリアム上のプラズマ・チェーン {#tutorials}

- [プライバシーを保護するアプリ固有のプラズマを作成する](/developers/tutorials/app-plasma/) _– ゼロ知識証明とオフチェーン・コンポーネントを使用して、プライバシーを保護するプラズマ・アプリケーションを構築します。_
