Web3におけるコンポーザビリティ:コントラクトが互いにどう構築されるか
Web3におけるコンポーザビリティとは、スマートコントラクトが互いを呼び出し、レゴブロックのように組み合わせられることを意味し、アプリが1つのチェーン上でコードと流動性を再利用できます。

- 呼び出し可能な関数は、作者が制限しない限りどのコントラクトにも開かれています。
- コンポーザビリティは1つのチェーン上のアプリをつなぎ、相互運用性はチェーンをつなぎます。
- 壊れたプロトコルは同じトランザクション内のすべてのアプリを巻き込んで崩壊させ得ます。
この特性は特定のアプリではなくプラットフォームに属します。開発者が何を構築でき、ユーザーが1ステップで何を行えるかを形作ります。
コンポーザビリティはどのように機能しますか?
1つのチェーン上のコントラクトはレゴブロックのように組み合わさります。新しいアプリは、自ら構築する代わりに、すでにそこにあるコード、流動性、残高を再利用できます。
コントラクトは1つのトランザクション内で別のコントラクトのパブリック関数を呼び出せます。呼び出しが失敗し処理されない場合、トランザクション全体がロールバックされますが、一部の失敗は捕捉できます。
人々はどこでコンポーザビリティを見るのか?
コンポーザビリティが最も多く見られるのはDeFiです。別々のプロトコルが1つのフローの部品として機能します。
- スワップはあるトークンを別のトークンと交換します。
- レンディングアプリがトークンを担保として受け取ります。
- イールド戦略が借りたトークンを運用に回します。
- ウォレットは呼び出しを1つの確認にまとめます。
コンポーザビリティのリスクと限界は何ですか?
アプリが互いに依存していると、1つの問題が他のアプリにも波及します。バグやプールの枯渇はトランザクション全体で連鎖的な障害を引き起こす可能性があります。流動性も移動し得ます。
相互運用性とはどう違いますか?
コンポーザビリティは1つのチェーン上で機能し、コントラクトが別のコントラクトを直接呼び出せます。相互運用性は別々のブロックチェーンをつなぎます。
よくある質問
いいえ。どのスマートコントラクトプラットフォームも呼び出し可能な関数を公開できるため、ゲームやアートのアプリもコンポーザブルになり得ます。
通常は直接できません。クロスチェーンのコンポーザビリティは限定的で、しばしばリスクを伴うブリッジに依存します。
悪化し得ます。その場合、あなたのアプリの安全性は自分が書いていないコードに依存します。
どの関数を呼び出し可能にするかは開発者が決めます。アクセス制御がない限り、パブリック関数はどのコントラクトにも開かれています。






