[エンジニア向け] サルでも分かる Plasma 入門 〜スケーラブルな DApp を作ろう〜

Daiki Sekiguchi
Cryptoeconomics Lab
9 min readJun 19, 2019

本記事では「Plasma って名前は知っているけどよくわからない」「Plasma には興味あるけどキャッチアップの仕方がわからない」といったブロックチェーンエンジニア向きに、入門編として Plasma とはなんなのか簡潔に解説していきます。

この記事を読めば Plasma の大枠を簡単に理解することができます。
Plasma の基礎的な部分を網羅できるようにまとめましたのでぜひ読んでみてください!

〜目次〜

  1. Plasma は何のためにあるの?
  2. Plasma はどうやって動いてるの?
  3. 結局、Plasma 使うと何が起こるの?
  4. で、Plasma って今どうなってるの?
  5. これから Plasma はどうなっていくの?

1. Plasma は何のためにあるの?😕

1–1. ブロックチェーンのトリレンマ

こちらの図を見たことはありますでしょうか。ブロックチェーンのトリレンマの図です。

この図はブロックチェーンでは「Decentralization (分散性)」「Scalability (拡張性)」「Security (安全性)」のうち3つ全てを同時に実現することはできないということを意味しています。

例えば、Bitcoin や Ethereum では PoW で、多くのノードが存在することによって、「Decentralization」「Security」を実現しています。
しかしその代わりに「Scalability」を失っています。

EOS を見てみましょう。ノード数を減らし、コンセンサス・アルゴリズムを DPoS にすることによって、「Decentralization」を犠牲にしていますが、「Scalability」と「Security」を実現しています。

といった具合でブロックチェーンにはトリレンマが存在しており、世界中でこのトリレンマを解消すべく研究が進んでいます。

1–2. スケーラビリティソリューション

ブロックチェーンの TPS(Transactions Per Second)やユーザビリティの問題(GAS コストなど)を解決し、ブロックチェーンをスケールさせるべく様々なソリューションが提案されています。

State Channel を利用した Lightning Network や Raiden Network など多数のソリューションが存在しており、この中に僕らが研究している Plasma も含まれています。

Plasma はブロックチェーンをスケールさせるものである

2. Plasma はどうやって動いてるの?🧐

ブロックチェーンをスケールさせるために、Plasma はどんな仕組みで動いているのか。図を用いて説明していきます。

まずは Plasma の全体像に加え、根幹となる4つのアクションについて理解しましょう。
この仕組みで動くことによって、Plasma は Ethereum と同レベルのセキュリティを保ちながらブロックチェーンをスケールすることに成功しています。

Plasma における一番重要な基礎の部分ですので、しっかり理解していきましょう!

2–1. 全体像

前提として、Plasma は Ethereum の下に独自のチェーン (Plasma Chain) が存在しているような形となります。

Plasma Chain 上でやり取りされた取引 (TX: トランザクション) は、マークルツリーという手法を使って1つのハッシュ値 (Merkle Root) にまとめられます。

この Merkle Root が定期的に Ethereum 上へ保存され、それをユーザーが検証することで、セキュリティレベルを維持しながらデータ量を圧縮することができるのです。

続いてユーザーが Plasma を使う際の4つのアクションについて解説していきます。

2–2. Deposit (デポジット)

Plasma Chain 上で資産を利用するためには Ethereum から Plasma Chain へ資産を移す必要があり、このことを Deposit (デポジット) と呼びます。

2–3. Transfer (送金)

Transfer はその名の通り送金を行うことで、Plasma Chain 上で Deposit した資産を取引することを意味します。

受取手が先程の Merkle Root を検証し、資産の取引履歴を確認することによって、二重支払いなどの不正な取引を防いでいます。

2–4. Withdraw / Exit (引き出し)

Plasma 上に Deposit した資産は、Ethereum 上へ引き出し、再び Ethereum 上で使うことができます。

この引き出しのことを Withdraw / Exit と言います。

2–5. Challenge (不正証明)

Plasma における資産が盗まれてしまう攻撃パターンは、Plasma Chain 上で取引履歴が改ざんされ、その不正な状態で Withdraw / Exit をされてしまうというものです。

この不正な引き出しを防ぐために Challenge というアクションが存在しています。

自分が所持している正しい取引の履歴を持って Challenge を行うことによって、特定の引き出しが不正であることを証明し、盗難を防止することができるのです。

※Plasma では Withdraw / Exit の際に Challenge 期間というものが存在しており、引き出しの申請から Ethereum へ資産が完全に移動するまでに、1週間ほど時間がかかります。
その間、不正な引き出しに対して Challenge を行うことができます。

3. 結局、Plasma 使うと何が起こるの?🤔

Ethereum 上ではなく Plasma Chain 上で取引を行うことによって、TPS の問題を解決するだけでなく、GAS コストがほとんどかからない DApp を実現しています。

また、この仕組みによって他のスケーラビリティソリューションでは実現できていなかった、Ethereum と同等のセキュリティを維持しながら、スケーラブルな DApp を作るということも可能にしています。

Ethereum と同等のセキュリティを保ちながら、TPS や GAS コストの問題を解決する

※Plasma を使うと何ができるのか、もっと詳しく知りたい方はこちらの記事にまとめているので、ぜひご覧ください!

4. で、Plasma って今どうなってるの?🤨

現在の Plasma の実装状況をお伝えするためにデモ動画を作成しました!
コーヒーショップで Plasma を使って決済を行うシーンです。まずはこちらをご覧ください。

Cryptoeconomics Lab が開発している Plasma Chamber では以下の機能を実装することによって、通常のQRコード決済と何ら変わりない体験を提供することを可能にしています。

5. これから Plasma はどうなっていくの?😯

Plasma は送金においてはトリレンマを攻略し、DApp として完全に近いものを実現しました。

現在、Cryptoeconomics Lab では、今までの研究成果を生かしながら、Plasma Group が提案した Predicate という新しいインターフェースに関する研究を行っています。

この Predicate が完成すると、みなさんが普段開発しているようなゲームやエスクローなどといった、送金以上の複雑なアプリケーションが Plasma 上で動く世界に変わっていきます。

そんな世界を実現するために、これからも研究開発を進めていきますので、今後もぜひ Plasma とCryptoeconomics Lab をウォッチしてください!

※Predicate についての詳細はこちらで確認できます!

もっと詳しく知りたい方は…

この記事を読んで Plasma についてもっと知りたくなった方は、ぜひこちらのリンクから Telegram グループへ参加してください!

Telegram では、Plasma の最新情報が知れるだけでなく、実装者の Shuhei HiyaShogo Ochiai へ直接質問をすることもできます!

Cryptoeconomics Lab とは?

ブロックチェーンのセキュリティを失うことなくスケーラビリティ、ユーザビリティを兼ね合わせた DApps を開発することができるフレームワーク「Plasma Chamber」の社会実装に取り組んでいる研究チームです。

--

--

Daiki Sekiguchi
Cryptoeconomics Lab

Cryptoeconomics Lab / BizDev / Jack of all trades, master of none.