Midnight、単一トランザクション内でのスマートコントラクト相互呼び出しを計画

今後のアップグレードにより、開発者は再利用可能なコントラクト関数を接続できるようになる。ネットワークのロードマップには、2027年第1四半期にPrivate Composabilityが掲げられている。

By SongMarketCap

Updated:

Midnight News - Midnight、単一トランザクション内でのスマートコントラクト相互呼び出しを計画

Midnightは、同一トランザクション内でスマートコントラクト同士が互いを呼び出せるようにする今後のアップグレードを発表した。予定されている機能はコントラクト間実行と呼ばれ、このプライバシー重視のネットワーク上に構築されたアプリケーション間で関数を組み合わせる新たな手段を開発者に提供する。

Midnightは、この変更が、より高度なコントラクトを作成する際に既存の機能を拡張し、コンポーネントを再利用する助けになると見込んでいる。発表では有効化時期は示されなかった。

Midnightのコントラクトはどのように連携するか

スマートコントラクトには、アプリケーションが実行できる操作を定義するコードが含まれる。予定されている機能により、あるコントラクトが別のコントラクト内の関数を呼び出し、その結果をトランザクションの一部として利用できるようになる。

独立したコンポーネントを組み合わせる能力はcomposabilityと呼ばれる。例えば、あるコントラクトが条件を検査し、別のコントラクトがその結果を用いて処理を実行するようなアプリケーション設計が考えられる。これは実現可能な設計例の説明であり、Midnightが発表した製品ではない。

MidnightのCompactドキュメントには、より単純な例も載っている。ある関数が与えられた数値を二倍にし、その結果を別のコントラクト内の関数へ渡すというものだ。この例は、一つのコントラクトが別のコントラクトで定義された操作を呼び出し、必要な情報を提供できることを示している。

ネットワークは、コントラクトが宣言した呼び出しがトランザクションに含まれる呼び出しと対応しているかも検証する。呼び出し元のコントラクトは、想定される対象、エントリポイント、そして呼び出しの入力と出力に結び付いた暗号学的コミットメントを特定する。トランザクションが該当する有効性条件を満たすには、宣言された各呼び出しが同一トランザクションの同一セグメント内にあるただ一つの呼び出しと厳密に一致しなければならない。

Ledger 9とCompact開発ツール

コントラクト間呼び出しには、Midnightのコントラクトをコンパイルするためのツール群であるCompactツールチェーンの対応版と、Ledger 9が必要となる。ドキュメントによれば、Ledger 8を対象とするツールチェーンはコンパイル時にこれらの呼び出しを拒否する。

最新の更新時点では、MidnightのPreview、Preprod、Mainnetの各ネットワークはLedger 8で稼働している。したがって、新しい呼び出しを用いるコントラクトは、これらのパブリックネットワークにはまだデプロイできない。Compactツールチェーン0.35.0はLedger 9を対象とし、コントラクト間呼び出し向けのランタイムインターフェース変更を含んでいる。

現行のCompactリファレンスは、コントラクト同士の呼び出し方法に関する制約も記している。例えば、コントラクトAがコントラクトBを呼び出し、Bが再びAを呼び出すといった循環的な連鎖は、実行時に失敗する。ドキュメントはこれを現行のレジャーの制約として挙げている。

Midnightは次回のネットワークハードフォークに向けてLedger 9.1.0.0をリリースした。ソフトウェアのリリースやそれを対象とするツールは、ネットワーク上で対応機能が有効化されることとは別である。

[NEWSBREAK]

プライバシーとComposabilityのロードマップ

Midnightは、基礎データのすべてを開示せずに条件を検証できるアプリケーションを支えるため、ゼロ知識証明を用いている。そのコントラクトは、台帳に記録されるパブリックな状態に加え、利用者の端末に保持されるプライベートな状態も扱える。

どの情報を可視化するかはコントラクトの設計が決める。MidnightのCompactリファレンスは、コントラクト間呼び出しでは呼び出し先コントラクトのアドレスが明らかになり、コントラクト間で引数を受け渡す際の開示に配慮する必要があると指摘している。したがって、連携するアプリケーションは、公開台帳上の公開情報と、公開台帳の外で扱われるプライベートなデータの双方を含められる。

Midnightのロードマップには、2027年第1四半期にPrivate Composabilityが予定されている。プロジェクトはその目標を、各コントラクトのデータのプライバシーを維持したまま相互に呼び出せるようにし、開発者がプライベートなアプリケーション同士を結合してより大きな製品を構築できるようにすることだと説明している。