2019.10.15

Plasmaの最新の研究トレンドを紹介する

Pocket

こんにちは。次世代システム研究室のL.W.です。

今回は、トークイベントにて紹介した「Plasmaの最新の研究トレンドを紹介する」を、時間の都合上お話できなかった部分の補足などを交えて取り上げたいと思います。



概要

2017年8月にPlasmaは発表されて、二年経ちました。最近のPlasma界隈には何が起きましたか。我々は最新の研究のトレンドを捉えて、plasmaに関わる論文、記事を読んだり、ソースを解読したりすることで、plasmaの知見を高めています。Plasmaの研究トレンドを紹介します。

本ブログ記事はブロックチェーンとイーサリアムの知識だけじゃなくて、レイヤ2の知識を持つ、またはスケーリング問題を認識している方を対象としています。この辺についてご存じでない方は、事前にイーサリアムとレイヤ2の基礎知識をおさえてください。

 

キーワード

UTXO

未使用トランザクションアウトプット(Unspent Transaction Output)。

ブロックチェーン世界では、二つの残高管理モデルがあります。UTXOベースとアカウントベースとなります。

Merkle Tree

日本語訳は「マークルツリー」で、トランザクションデータを要約する技術。

Merkle Tree proofs(Merkle proofs)

日本語訳はマークルツリープルーフ、あるいはマークル証明です。

マークルツリープルーフは、次の要素を決定するために使用されます。
  • データがマークルツリーに属している。
  • データセット全体を保存せずに、データセットの一部であるデータの有効性を簡潔に証明する。
  • 完全なデータセットまたはそのサブセットのいずれかを明らかにすることなく、より大きなデータセットに含まれる特定のデータセットの有効性を保証する。

Sparse Merkle Tree

日本語訳はスパースマークルツリーです。

スパースマークルツリーは標準のマークルツリーに似ていますが、含まれるデータにインデックスが付けられ、各データポイントはそのデータポイントのインデックスに対応するリーフに配置されます。

Merkle Sum Tree

range-basedのトランザクションのライトプルーフの実現できるようにツリーノードにHashの隣にSum値も加えて、標準のマークルツリーを改造したツリーです。

Merkle Interval Tree

Merkle Sum Treeのように、ツリーで同じ状態オブジェクトを参照する2つのトランザクションの存在を許せないマークルツリーの構造です。

Plasma Groupより提唱されます。

State Object

日本語訳は状態オブジェクトあるいはステートオブジェクトです。

システム内の特定の状態を表します。

Plasma論文(Plasma白書、Plasmaホワイトペーパー)

Plasma論文は2017年8月にイーサリアム創設者のVitalik Buterin氏とライトニングネットワークの共同開発者であるJoseph Poon氏によって発表された「Plasma: Scalable Autonomous Smart Contracts」と指します。

Plasma MVP

2018年1月、VitalikはJoseph PoonおよびDavid Knottの協力で、Plasma MVP規範を発表しました。 Minimal Viable Plasmaとまります。

Omisegoチームはオープンソースを公開しました。

Plasma Cash

2018年3月、Vitalik、Karl FloerschおよびDan Robinson三人がPlasma Cashを共同発表した「Plasma Cash: Plasma with much less per-user data checking」となります。

Omisegoチームはオープンソースを公開しました。

Plasma Cashflow

Plasma CashflowはPlasma Cashの進化であり、Plasma Debitも参照、Plasma Cash defragmentationの最適化に基づいています。

Plasma Chamber

Plasma Chamberは、Cryptoeconomics Lab社の最初の製品で、汎用プラズマを目指しています。実装は、Plasma Cashflow設計をベースとして使用しましたが、セキュリティを犠牲にすることなく分散アプリケーション(DAPP)をサポートします。

State Update

状態遷移、あるいは状態更新のことです。

例えば、トークンの所有権の変更など。

Predicatesコントラクト

Plasma Groupのこの記事で始めて出てきた概念です。

Plasmaスマートコントラクトから状態遷移の真偽を判定するロジックを分離して、作られたコントラクトです。

Predicatesアドレス

イーサリアムのデプロイした各Predicateのスマートコントラクトアドレスと指します。

例えば、所有権の状態遷移の真偽を判定するスマートコントラクトOwershipPredicateのアドレスなど。
contract OwnershipPredicate { 
     function  verifyDeprecation(Range(s,e), update: stateUpdate, deprecationWitness: bytes)) public returns (bool) 
     function canInitiateExit(stateUpdate: bytes, initiationWitness: bytes) public returns (bool) 
     function finalizeExit(exit: bytes) public returns (void)
}

Validity Proofs and Fraud Proof

Validity Proofs(有効性証明)は、状態遷移が正しいという証拠を提示します。
Fraud Proof(不正証明)は、状態遷移が間違っていたという証拠を提示します。

この記事で詳しく記載があります。

Adjudication Contracts

イーサリアムにデプロイされたスマートコントラクトです。レイヤ2からのクレームあるいはdisputeを受付し、不正があるか裁定するコントラクトです。

公平公正を保つ裁定コントラクトとなります。

OVM

Optimistic Virtual Machine。Plamsa Groupにより提唱されたレイヤ2ソリューションズ(Plasma、State Channel、Rollupなど)を抽象化し、同じ枠組みで扱えるもの。

Property

命題は論理学において判断を言語で表したもので、真または偽という性質をもつもの。

OVMでのPropertyは、ローカル情報によってあるクレームの正当性を保証するという命題だと思います。

一階述語理論( first-order predicate logic )

個体(individual)に関する性質を述語(predicate)として扱う論理。

抽象しすぎますね。まずは基本から抑えて頂ければと思います。

Fast Finality(ファストファイナリティ)

ファイナリティは元々は金融業界の用語で「決済の確定」を意味します。

ブロックチェーンにおけるファイナリティーは、合意形成アルゴリズムによって異なります。ビットコインとイーサリアムを始めのPOW合意形成アルゴリズムのブロックチェーンは「時間の経過とともにその時点の合意が覆る確率が0へ収束するプロトコル」であるとしています。

例えばビットコインの場合、6個のブロックが承認されるのを待って決済が確定したとみなし、これは6回の承認の後で決済が覆される可能性は確率的に相当低く、ほぼおこらないとみなしてるからです。

ファイスファイナリティとは、より高いファイナリティを目指しています。

例えばビットコインの場合、6個のブロックではなく、一個のが承認されるのを待って、決済が覆されないことをある方法で保証できれば、ファイスファイナリティとみなします。

 

さいごに

次世代システム研究室では、グループ全体のインテグレーションを支援してくれるアーキテクトを募集しています。インフラ設計、構築経験者の方、次世代システム研究室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ募集職種一覧からご応募をお願いします。

皆さんのご応募をお待ちしています。