Ethereum Name Service

AragonOSのローカル開発環境を整えようとしています。ローカルの開発チェーンを適切に設定する必要があり、その1つにENS ( イーサリアムネームサービス, Ethereum Name Service)があります。

インターネットの世界でDNSにより、IPアドレスを人間が分かる形のドメイン名(例:このサイトのsuperbc.devなど)に対応付けられるように、ENS (イーサリアムネームサービス, Ethereum Name Service)により、イーサリアムブロックチェーン上で同じようなことが可能となります。「alice.eth」のような人間が判読できる名前を、イーサリアムアドレス、コンテンツハッシュ、メタデータなどの機械可読な識別子にマッピングしてくれます。

ENSの利用の際には、ENSマネージャーや、ホームページ上の多くのENS対応アプリケーションを利用することができます。

ブロックチェーン上のサービスであるため、DNSとはアーキテクチャが大きく異なります。ENSは大きく分けて、RegistryResolverに機能を分けることが出来ます。「.eth」や「.test」などのトップレベルドメインは、レジストラと呼ばれるスマートコントラクトによって所有されており、サブドメインの割り当てを管理するルールを指定しています。

Registryはそのドメインのサブドメインを、コントラクトで定義されたルールのセットに従うユーザーに発行します。Registryは、名前から*Resolverにマップするためだけの単純な役割を担います。Registryは、すべてのドメインとサブドメインのリストを維持し、それぞれに関する以下の3つの重要な情報を保存する単一のスマートコントラクトで構成されています。

  • ドメインの所有者
  • ドメインのリゾルバー
  • ドメイン内のすべてのレコードのキャッシュ有効期間

外部アカウント(EOA , ユーザー)またはスマートコントラクトがドメインの所有者となります。これらの所有者はRegistryに対し、以下の操作が可能です。

  • ドメインのリゾルバーとTTLを設定します
  • ドメインの所有権を別のアドレスに移管する
  • サブドメインの所有権を変更する

以上のような役割を担うRegistryに対し、Resolverは、実際に名前をアドレスに変換する処理を行います。

ENSでは、2段階のプロセスで名前の解決を行います。

  1. 名前について担当するResolver情報を、レジストリに問い合わせる。
  2. Resolverに対し、名前解決のリクエストを行う

AragonOS では、AragonOS上のスマートコントラクトに対しRegistryResolverが適切に連携することで、Upgradabilityや認証などが柔軟に設定できるものと考えられます。

次の投稿では具体例で、 Ethereum Name Serviceのスマートコントラクトについて見ていきたいと思います。

コメント

タイトルとURLをコピーしました