プラズマ生成プログラムとは?

プラズマ生成プログラムとはいったいなんでしょう?

“プラズマでのEVM※1はなぜ難しいのか?”に書かれてあるように、プラズマのほとんとが、UTXO※2か、あるいはNFT※3を基本としています。理由としては、基軸チェーンにある少ないデータでセキリティを保護するためです。もし、さらに複雑なプログラミングをしたいのであれば、鍵のかかっていないスクリプト(Scriptsigともいう※4)のような状態で“価値”を次に送ることです。(“鍵のかかっていないスクリプト”の複雑なプログラミングに興味がある方は、TxVM※5を検索してください)。それにしても、どのようにしたら、鍵のかかっていないスクリプト(Scriptsig)をプラズマのUTXOに導入することができるでしょうか?

※1 The Virtual Machineの略で、「イーサリアム仮想コンピュータ」のこと
※2 unspent outputの略で「未使用のトランザクションアウトプット」のこと
※3 Non-Fungible Tokenの略で「代替不可能なトークン」のこと
※4 トランザクションスクリプトの1つでインプットにおける条件解除のこと。「鍵のかかっていない=unlocking」になり、Scriptsigの方が知名度の高い表現である
※5 VERITAS Volume Managerの略でVERITAS社のソフトウェアの1つ

一般化されたプラズマの問題その1

最初の問題は、鍵のかかっていないスクリプト(Scriptsig)の検証方法です。プラズマの文脈では、“startExit”、“challengeExit”、“respondChallenge”と“依頼人履歴検証”における状態の移り変わり(この移り変わりはUTXOsが次のUTXOsに移動するこを意味します)を検証しなければなりません。しかし、第三者(中央管理者)のいない状態で鍵のかかっていないスクリプト(Scriptsig)を検証するために、EVMに低いコストの VM※6があるでしょうか?この問題の解決として、“プラズマ生成プログラム”が全ての基軸チェーンコントラクトを生成しました。そのコントラクトには、鍵のかかっていないスクリプト(Scriptsig)を検証する部分が含まれています。それゆえ、基軸チェーン上にVMは必要ではありません。

※6Virtual Machineの略で仮想コンピュータのこと

一般化されたプラズマの問題その2

二つ目は、誰がUTXOを終了することができるかという問題です。ユーザーはどんな時でも自分の資産を終了しなければなりません。しかし。これに関する完璧な答えはまだありません。マルチシグ※7コントラクトを想像してください。マルチシグコントラクトの価値の所有者は誰でしょう(チェスゲームなど)?どちらの署名者もその価値を持つ可能性があります。しかし、もし、片方のユーザーがマルチシグを終了できると、ユーザーはいつでもゲームをブロックできます。それに、マルチシグユーザーの1人が長い間、返答しないとなれば何が起きるでしょう?この場合、もう1人のユーザーが全てのコインを取得し、プラズマブロックのタイムズスタンプ(日付の刻印)をすることで解決できます。しかし、プラズマでは受信者の承認署名が必要であることに念頭におかなければならず、返答のないユーザーにコインを返却することはできません。

このように、「承認署名」や「終了する」など、プラズマ特有の事柄には、開発者にとってスマートコントラクト(自動化された契約)を記述するのに妨げとなる問題が多くあります。この解決には特有のアプリケーションがあります。このアプリが完璧な考えであるかどうかはわかりませんが、最初のオブジェクトが「価値」と「終了する人」であるプラズマの言語はこれらの難題を確実に解決してくれるであろうと考えています

※7 マルチ=複数+シグ(シグネチャー)=署名、つまり「複数の署名」の意味で、トランザクションの署名に複数の秘密鍵を必要とする技術のこと。これによりセキュリティが高くなる

結論

これらの点から、プラズマ生成プログラムは必要です。ただ、もし分散型アプリケーションのエンジニアがこれらの問題を解決するために独自のプラズマを開発するとなれば、プラズマ実行の1つ1つにバグが含んでしまう可能性があります。それは恐ろしいことです。プラズマ言語とプラズマ生成プログラムを通して、自分たちの知識を正確に広めなければなりません。ブロックチェーンのレイヤー2※8には“ドメイン固有言語”が必要なのです。

※8 ブロックチェーン上(レイヤー1)に記載されないオフチェーンのこと。