本記事は、2024年2月12日のIOGブログ「Plutus V3でチャンスを広げる(Unlocking more opportunities with Plutus V3)」を翻訳したものです。
——————————————————————————————
Plutus V3は、スマートコントラクトの採用の改善、ガバナンスと投票機能のサポート、そしてブロックチェーン間の相互運用性を促進することで、開発者の開発体験を向上させます。
執筆:Olga Hryniuk(IOG)
現在、SanchoNetでテスト可能となっている「Plutus V3」は、高度なPlutusプリミティブを導入しているため、開発者に対してより多くのツールを提供し、スマートコントラクト作成における可能性をさらに多く引き出すことができます。
開発者の開発体験の向上と、スマートコントラクトの拡大は、カルダノ上でのスマートコントラクトの状況を繁栄させるために不可欠です。 過去1年間で、コミュニティが構築した開発者ツールと「代替言語(注:Plutusを使わず、一般的なプログラム言語でカルダノのスマートコントラクトを構築できる)」の登場と拡大は、開発者の選択肢と、カルダノ開発におけるエコシステムを大きく活気づけてくれました。その能力を高め続けるため、Input Output Global (IOG)のPlutusと暗号化チームは、MLabsと共同で、パフォーマンス、スループット、スマートコントラクトのサイズ、プラットフォーム機能に焦点を当て「Plutus V3」の開発に取り組みました。 充実した開発者ツールキットとより優れた運用効率により、このアップグレードはコストを削減するだけでなく、新しい開発者の獲得にも役立ちます。
「Plutus V3」とは何か?
「Plutus V3」は、「Plutus Core」の暗号機能を強化し、カルダノが最新の業界標準に準拠することを可能にします。 1年前のValentineアップグレードでは、SECP楕円曲線(ECDSAとSchnorr)のサポートが追加されました。
「V3」による新しい暗号プリミティブの導入は、開発者が業界のベストプラクティスを満たし、よく認知されている最適な暗号アルゴリズムを使用しています。これはイーサリアムからスマートコントラクトを移植し、サイドチェーンブリッジを作成するのに役立ちます。 暗号プリミティブに加えて「Plutus V3」は、異なるデータタイプの直接エンコーディングをサポートするSOPs(Sums of Products)機能を追加することにより、パフォーマンスを向上させます。
最後に「V3」は、CIP-1694におけるガバナンス機関を見ることができる、スクリプト・コンテキストを更新しています。
その新機能を詳しく見てみましょう
「積の合計」(Sum of Products)
Plutus Coreでデータ型をエンコードする「一般的な方法」としては、Scott(スコット・エンコーディング)アプローチがあります。
「Plutus V3」では、このScottエンコーディングと比較し、より小さく、より安価なスクリプトにつながるデータ型のエンコーディング方法「積和演算(sum of products)」を採用しています。
積和のアプローチは、スクリプトの効率を高め、Plutus Coreコンパイラのコード生成を改善することを目的としています。 この変更には、コンストラクタ値にフィールドをパックするための新しいターム・コンストラクタと、ケース・ブランチのための効率的なタグ検査が含まれます。
これは大幅なパフォーマンスの最適化であり、オペレーションを合理化し、スマートコントラクトの迅速な実行を保証します。
(詳細はCIP-85を参照)
新しい暗号プリミティブ
すべてのブロックチェーンにおいて、そのコア(核)となるのは、「ハッシュ関数」「デジタル署名」「ゼロ知識証明(ZKP)システムを含む暗号プリミティブの使用」です。
これらの基本要素は、それぞれの用途に合わせた強固なセキュリティを確保しつつ、計算効率を高めるように作られています。その結果、カルダノのピアツーピア(P2P)ネットワークと分散型アプリケーション(DApps)との円滑な連携を促進し、トラストレス(信頼不要の)エコシステムを確立する、一連のセキュリティ保証を得ることができます。
「Plutus言語」では、組み込み関数はスクリプト内で明示的に定義されていませんが、言語のランタイム環境の一部となっています。これらの関数を使用することで、インタプリタがスクリプトを実行する際に、そのシステムに特化した最適化された実装を提供することができます。組み込み関数は、算術演算、制御、その他の重要なタスクを含み、頻繁に使用され、よく定義された操作を実行します。
「Plutus V3」における、言語の能力を豊かにする新しい組み込みプリミティブを探ってみましょう:
- BLS12-381 – この曲線ペアは、暗号曲線をサポートする17のプリミティブを含み、シームレスなサイドチェーン仕様の実装とMithril統合への扉を開く
- Blake2b-224 – トランザクション署名の検証のための公開鍵ハッシュのオンチェーン計算のための暗号ハッシュ関数。Blake2b-224の実装はコミュニティプロジェクトをサポートし、様々なアプリケーションに対応することで、Cardanoの汎用性と普及に貢献する
- Keccak-256 – 256ビット(32バイト)のハッシュ値を生成する暗号ハッシュ関数で、安全なデータ検証によく使用される。 Keccak-256はスクリプト内でイーサリアムの署名検証をサポートする。 これはクロスチェーンソリューションにとって重要であり、カルダノでのユースケースを拡大することでコミュニティプロジェクトを促進する
ビット単位のプリミティブで開発者を強化
CIP-58における「ビット単位(ビットワイズ)のプリミティブの導入」により、開発者は低レベルのビット操作のための堅牢な機能を利用できるようになります。 この追加は、パフォーマンスの最適化と暗号機能の両方において、開発者に大きなメリットをもたらします。「ビットワイズ・プリミティブ」は、段階的な導入計画により、シームレスな統合プロセスを保証し、開発者がカルダノ上で強力かつ効率的なソリューションを構築するための強固な環境を育成します。
この「ビットワイズ・プリミティブ」は、以下の機能を提供します:
- パフォーマンスの向上。 ビットワイズ・プリミティブは、Plutus内で非常に低レベルのビット操作の機能を導入する。 この機能は、効率的なソリューションを求める開発者にとって極めて重要な、高性能なデータ操作の実行のための基礎を築く
- 暗号サポート。ビット単位でのプリミティブを含めることは、スマートコントラクト開発の標準要件であるED25519のような暗号関数をサポートするために不可欠となる。 これらのプリミティブはPlutus内で安全で堅牢な暗号アルゴリズムを実装する
- スムーズな統合のための整数-文字列変換。 ビットワイズ・プリミティブは、整数と文字列間の変換のための標準的で高性能な実装を容易にする。プリミティブは整数形式の引数を必要とするが、データは文字列形式で提示されることが多いため、この能力は不可欠である
- 効率的なアルゴリズムとデータ構造 CIP-58は、非常に効率的なアルゴリズムとデータ構造のための低レベル関数のクラスを追加。一般的なキー・バリュー・マッピング・データ構造である効率的なハッシュ・テーブルを構築する機能は、性能の高いソリューションの構築におけるこれらの低レベル関数の実用的な影響を示している
このPlutusアップグレードでは、「integerToByteString」と、「byteStringToInteger」の2つのビットワイズ・プリミティブが追加されます。残りのプリミティブは、「Plutus V3」に徐々に追加される予定です。
今後、このようなアップグレードには、新しい言語バージョンは必要ありません。 このインクリメンタル・デプロイメントのアプローチは、Plutus言語へのこれらの強力な機能の体系的な統合を保証します。
Cardano node v.8.8.0-preのリリースを皮切りに、Plutus V3はSanchoNetで利用可能になり、CIP-1694のガバナンス機能を管理されたテストネット環境でCardanoコミュニティに紹介しています。
結論
「Plutus V3」の利点は、カルダノ・ビルダー・コミュニティ(開発者コミュニティ)に、より高い効率性、オプション性(注:選択肢の拡大)、使いやすさを提供することにあります。 パフォーマンス、スループット、スマートコントラクトのサイズ、プラットフォーム機能などを優先することで、カルダノの開発者が最新の標準規格を使用できるようになります。 これらの改善は、イーサリアムからのスマートコントラクトのスムーズな移行を促進し、サイドチェーンブリッジの作成を可能にし、最終的にカルダノのエコシステムの拡大に貢献するでしょう。