
1つのトランザクションは複数のスマートコントラクトにアクセスし、それぞれが「何を先に実行すべきか」に異なる考え方を持っています。 これは難しい課題を生み出します。 あるコントラクトがキャンセルを優先し、別のコントラクトが清算を優先すると仮定しましょう。1つのトランザクションが両方にアクセスした場合、一方のコントラクトの順序ルールを満たすことが、他方のルールを複雑化する可能性があります。 Ritualのドキュメントは、この課題を「コンポーザビリティ」の観点から問い直しています:異なるアプリケーション固有の順序ポリシーは、どのようにして衝突を引き起こすことなく共存できるでしょうか? 提案されている方向性の1つが「単調優先システム」です。これは、関数呼び出しに優先順位を割り当てる一方で、それらの依存関係も考慮します。このシステム下では、ブロック構築が優先順位によるソートに還元されます。 より広い教訓は、1つのアプリケーション内でルールを強制することが課題の一部にすぎず、そのルールがアプリケーション間の相互作用においても機能しなければならないということです。
