Cardano が Plutus のスコープチェック廃止を提案

CIP-0205 はスクリプト実行前に行われる別個のチェックを廃止し 新たな言語バージョンとハードフォークを要する変更により検証作業を軽減する

By SongMarketCap

Updated:

Cardano News - Cardano が Plutus のスコープチェック廃止を提案

Cardano の提案 CIP-0205 は Plutus スクリプトの実行準備に用いられている手順の一つを廃止するものだ。著者 Jacco Krijnen は 事前にプログラム全体をチェックするのではなく 実行時に未束縛変数エラーを処理することを提案している。9月25日に提出され この提案は現在も審査中だ。

Plutus スクリプト準備のコスト

スクリプトを実行する前に ノードはプログラム内で変数が適切に定義されているかを確認する。スコープチェックとして知られるこの処理は トランザクション検証の第2段階で行われる。

提案が引用する以前のベンチマークでは デコードやバージョンチェックを含むスクリプト準備時間の約20%をこのチェックが占めていたことが示された。完全な検証のベンチマークでは 総検証時間の約3%を占めた。これらの数値は そのテストワークロードにおける当該チェックの処理時間の比率を測定したものだ。

これを削除すると 対象となるスクリプトの処理作業が減少する。提案によれば 手数料のパラメータがその後調整されるかどうかに応じて トランザクション手数料が引き下がる可能性がある。

Plutus は変数エラーをどのように扱うか

Plutus Core は Cardano 上でスマートコントラクトスクリプトを実行するための言語だ。その実行エンジンである CEK machine は 既に束縛されていない値を持つ変数を使用しようとする試みを処理できる。

提案のレビュー議論の中で 開発者 Seungheon Oh は CEK が事前のスコープチェックに依存していないと指摘した。未束縛の変数を評価しようとすると 通常の実行失敗となる。

提案された規則の下では 実行されないコードの中にのみ未束縛変数が現れる場合 そのプログラムは成功する可能性がある。適切にスコープ付けされたプログラムは 同じ実行結果を維持する。

提案は Aiken や Plinth や Plutarch を含む開発言語が 既にブロックチェーンに到達する前に 型チェッカーによって変数のスコープを強制していると指摘している。

新たな言語バージョンとハードフォーク

この草案は 変更を Plutus Core の言語バージョン 1.2.0 に結び付けており ハードフォークを要することになる。実装には 仕様 実行コード 形式モデル 適合性テストの更新が含まれる。

この提案は 9月29日に番号 CIP-0205 を付与された。CIP 編集者 Robert Phair は 変更の範囲が広いことを理由に レビューを進める前に作業部会間でより広く回覧するよう求めた。

現行の草案では 言語バージョン 1.0.0 と 1.1.0 を使用する既存のスクリプトは その挙動を維持する。アクティベーション後は バージョン 1.2.0 を宣言する新しいスクリプトは 別個の事前スコープチェックなしで実行できる。