ブログ > 2022 > April > スクリプト参照でCardanoスループットを向上

スクリプト参照でCardanoスループットを向上

Vasilアップグレードに伴うCardanoの改良の一部を紹介します

2022年 4月 13日 Olga Hryniuk 6 分で読めます

スクリプト参照でCardanoスループットを向上

Basho(バショウ)開発期を通じて、需要の高まりに応じた台帳の最適化とスケーリングが続けられます。パラメーターの調整とノードのアップグレードとともに、Plutusの機能は堅調に開発が続けられています。

Plutusは生きた、進化するスマートコントラクト言語です。この進化において、CIP(Cardano改善提案)が重要な役割を果たします。CIPメカニズムを通じて、誰もがCardanoの改善案を提案することができます。CIPはコミュニティによるエンゲージメントと提案のレビューを促します。改善案はCardano財団のGitHubリポジトリで継続的に維持されます。

このうち2つの詳細を見てみましょう。参照インプット(CIP-31)と参照スクリプト(CIP-33)の各CIPはすべてCardanoに実装されるべく提出され、6月のVasilハードフォークで実装予定に含まれています。他のスケーラビリティ向上の手段とともに、こうしたPlutusの強化は、Cardanoにおける分散型アプリケーション(DApp)、分散型金融(DeFi)、リアルFi、製品、スマートコントラクト、そして取引所の構築や運営のためのスループットを向上させます。

本稿では、これらのCIPがどのようなものか、さらに、そのメリットとCardanoのスケーラビリティを最適化する方法について紹介します。

参照インプット

トランザクションアウトプットは、ブロックチェーンで情報の保管、アクセスを可能にするデータムを運びます。しかし、データムは多くの方法で制約を受けています。たとえば、データムのインフォメーションにアクセスするためには、データムが添付されたアウトプットを使用しなければなりません。このため、送信アウトプットを改めて作成する必要がでてきます。対象データを確認したいユーザーは、古いアウトプット(もうない)を使用できず、新しいアウトプット(次のブロックまで知ることができない)を使用せざるをえません。実質的に、これで一部のアプリケーションのブロックごとの「操作」は1つに限られてしまうため、望ましいパフォーマンスに達しません。

CIP-31はデータムの情報にアクセスするための新しいメカニズム、参照インプットを導入します。参照インプットにより、アウトプットを消費せずに確認することができるようになります。これは、未使用トランザクションアウトプット(UTXO)の消費と新規作成を必要とせずに、ブロックチェーンに保存された情報へのアクセスを提供します。

参照インプットはもう1つの重要な改良、参照スクリプトを有効化します。

参照スクリプト

Plutusスクリプトにロックされたアウトプットを使用するときは、支払いトランザクションにスクリプトを含む必要があります。したがって、スクリプトのサイズがトランザクションサイズに影響し、これが直接Cardanoのスループットに影響してきます。

スクリプトサイズが大きいと、以下のようにユーザーに問題が生じます。

  1. トランザクションが大きくなると手数料が上がる。
  2. トランザクションにはサイズ制限がある。大きなスクリプトは制限内に収まらない可能性がある。1つのスクリプトが制限内に収まったとしても、スクリプトが複数ある場合は1つのトランザクションに収まらない可能性がある。このため、複数のスクリプトに依存する複雑なトランザクションの実行が難しくなる。

CIP-33はこの対応策としてスクリプト参照を提案しています。これは、各トランザクションにスクリプトを含めずにスクリプトを参照できる機能であり、トランザクションサイズへのスクリプトの影響を大幅に緩和します。複数のトランザクションでスクリプトを参照することで、トランザクションサイズが大幅に縮小され、スループットの向上とスクリプト実行コストの削減につながります。

スクリプト参照の仕組み

考え方としては、参照インプットと、実際のスクリプト(参照スクリプト)を運ぶアウトプットを使用するというものです。スクリプト参照提案により、頻繁に使用されるスクリプトを使用するたびにチェーンへ送信する必要がなくなります。代わりに、スクリプトはオンチェーンで永続的に使用できるようになります。つまり、このスクリプトを使用するトランザクションは、スクリプトを含んでいるアウトプットを参照する限り、スクリプト自体を含む必要はなくなります。

このアプローチは、参照インプット提案(CIP-31)に従っています。CIP-31はオンチェーンでのデータ共有を可能にする手段を検討したもので、UTXOを参照することがもっとも妥当な解決策であると結論しています。UTXOはデータを安全に保存し、既存のサイズ管理メカニズムを活用します。

参照スクリプトのために、スクリプトを含むためのオプションフィールドを運べるよう、トランザクションアウトプットを拡張する必要があります。このようなアウトプットの最小UTXO値は、coinsPerUTxOWordプロトコルパラメーターに従うスクリプトのサイズに規定されます。

コミュニティのエンゲージメントが重要

提案はすでに提出、実装されており、Plutusスクリプト参照および参照インプットはVasilアップグレードに含まれる予定です。CIPプロセスは、コミュニティが提案、議論、レビューを行い、改良案を出すことによって、Cardanoの開発に貢献することを可能にします。開発者コミュニティはぜひCIPのディスカッションに参加し、Cardano財団のCIPリポジトリで詳細をご覧ください。