ERC‑165 Interface Detection Standardとは、Ethereumブロックチェーン上でスマートコントラクトが自身の機能(インターフェース)を外部から照会可能にするための規格である。
概要

Ethereumは分散型アプリケーションを構築する際に、多種多様なトークンやサービスが登場した。各コントラクトは独自に機能を実装することができる一方、外部のウォレットやマーケットプレイスなどが「このコントラクトはERC‑20互換か」「NFTとして扱えるか」等を判断する必要があった。そこでEIP(Ethereum Improvement Proposal)で定められたERC‑165は、インターフェース検出のための共通プロトコルを提供した。
ERC‑165自体は機能の実装ではなく、コントラクトが「supportsInterface(bytes4)」という単一関数を持ち、引数にインターフェースID(4バイト)を渡すことで真偽値を返す仕組みを規定している。これにより、異なる標準や拡張機能を実装したコントラクトでも、外部から一貫した方法で互換性を確認できるようになった。
役割と機能

ERC‑165は主に以下の場面で利用される。
1. ウォレット・取引所:ユーザーが保有するトークンを正しく表示し、送金や交換操作を許可するか判断する際に、対象コントラクトが必要なインターフェース(例:ERC‑20のbalanceOfなど)をサポートしているか確認できる。
2. マーケットプレイス・オークション:NFTとして取引される資産はERC‑721やERC‑1155であることが前提となるため、supportsInterfaceにより「このコントラクトはNFTを発行できる」か事前に検証できる。
3. DeFiプロトコル:流動性プールやレンディングサービスでは、担保として使える資産の種類を制限するため、ERC‑165でインターフェースをチェックし、取引対象となるか決定する。
機能的には、supportsInterface(bytes4)が返す真偽値により、呼び出し側は追加のコードやデータ構造を必要とせずに互換性判定を行える点が大きなメリットである。
特徴

- インターフェースID:各標準(ERC‑20、ERC‑721等)は4バイトのハッシュ値で識別される。
- 最小限のオーバーヘッド:supportsInterfaceは単一関数呼び出しのみで済むため、ガスコストが低い。
- 拡張性:既存の標準に加えて独自インターフェースを追加しても、ERC‑165の枠組み内で検証可能。
- 非機能仕様:ERC‑165は「どのように動作するか」を規定せず、単なる検出メカニズムのみを提供するため、他の標準と自由に併用できる。
これらの特徴により、ERC‑165はEthereumエコシステム全体でインターフェース互換性を保証する基盤として機能している。
現在の位置づけ

ERC‑165は、ERC‑721(NFT)やERC‑1155(マルチトークン)など主要な標準に必須要件として組み込まれており、実質的に全ての新規トークンコントラクトで採用されるケースが多い。DeFiプロトコルはもちろん、NFTマーケットプレイスやウォレットサービスもERC‑165の検出機能を前提に設計されているため、相互運用性の観点から不可欠な規格となっている。
近年ではLayer2ソリューション(Optimistic Rollup・ZK-Rollup)においても、オフチェーンで実行されたコントラクトのインターフェース検出をサポートするためにERC‑165が活用されている。規制面では直接的な影響は少ないものの、投資家保護や取引透明性を高めるためのツールとして注目されており、監査機関もERC‑165対応をチェックリストに含むケースが増えている。
総じて、ERC‑165はEthereum上でスマートコントラクト間の相互運用性を担保する中核的規格として位置付けられ、今後も新たな標準やレイヤーとの統合によりその重要性はさらに高まる見込みである。
続きを読むには確認が必要です

