イーサリアム・ネーム・サービス(ENS)を聞いたことはありますでしょうか?
聞いたことあるけどわからないという方へ、ENSとは何かを、今回Pacific Metaマガジンではお知らせします。
イーサリアム・ネーム・サービス
インターネット初期の子をコンピューターサイエンティストたちが直面していた中心的な課題の一つは、ドメイン名とIPアドレスが紐づいて居られていなかったため、一般的なユーザーにとってとても使いづらいものとなっていたことです。
つまり、Webサービスサイトにアクセスしたい場合には、54.235.191.121など、訪れたいサイトのIPアドレスをすべてタイプ入力する必要がありました。IPアドレスは数字とドットの長い羅列で覚えにくかったため、ウェブサイトの閲覧は困難でありました。
しかし、アメリカの科学者エリザベス・ファインラー氏が1970年代に実施した最先端の研究を受けて、アメリカのコンピューターサイエンティスト、ポール・モカペトリス氏が、1983年、ドメイン名システム(Domain Name System : DNS)を開発しました。
DNSは、人に分かりやすいドメイン名をIPアドレスに紐づけるので、例えば、54.235.191.121とタイプ入力する代わりに、cindeskjapan.comと検索バーに入力するだけで、ウェブサイトにたどり着けるのです。
暗号資産(仮想通貨)業界では、あらゆるテクノロジーの魔術が駆使されているにも関わらず、暗号資産はいまだにおおむね、昔のIPアドレスのようなシステムを使用しています。
例えば、ビットコイン(BTC)を誰かのアドレスに送りたければ、ウォレットの所有者の名前など、人に分かりやすいものではなく、その人のウォレットアドレスを使う必要があります。
そこで、イーサリアム・ネーム・サービス(Ethereum Name Service : ENS)の出番です。
ENSとは?
イーサリアム・ネーム・サービスは、イーサリアムブロックチェーンとやり取りできる、分散型で拡張可能、オープンなネーミングシステムです。
前述のDNSのように、EMSの役割は「john.eth」といった人間が読める名前を、「8g978dl39ji9xl」といったウォレットアドレスのようなマシーンが読み込み可能な名前に紐づけることです。
ENSを使えば、ユーザーは自らのドメインを購入、管理できます。つまり、長く複雑なアドレスを使わなくても、分散型の安全な取引を実行できるのです。さらに、送金の受けてのアドレスを入力するときのタイピングミスの可能性も減らすことが出来ます。
ENSは、1980年代に開発されたDNSシステムと全く同じように聞こえるかもしれませんが、そのアーキテクチャは大きく異なります。
DNSと同様に、ENSもドメインと呼ばれる階層的なネームのシステムを採用し、ドメインの作り手と所有者が、自分のトップレベルのドメインと、それに付随するサブドメインを管理しています。
ENSの仕組み
レジストリ
まず、ENSの中に記録されたあらゆるドメインネームには所有者がいます。所有者はネームのついたドメインを所有し、そのネームを自由に新しい所有者へと移譲することが出来ます。
ドメイン購入を希望する人は「登録者」と呼ばれます。ENSにそのドメインを登録しなければいけないからです。ドメインを誰が登録したか記録、監視、追跡する役割を担う「レジストラ」の仕事は、「レジストリ」と呼ばれるENSの機能が担当します。
「レジストラ」は、サブドメイン名を分配するスマートコントラクトで、パーマネントレジストラと呼ばれるメインのレジストラに管理されます。ENSの中でどの時点でも、どのレベルでも変更が可能です。
登録者も、自らのドメイン登録を別のアカウントへと移譲することが出来ます。さらに、ドメインネームを取り戻したい人がいた場合、そのネームとドメインを取り戻すことが可能です。
こうすると、あらゆるアカウントを取り戻したレジストラへと、ENSネームの所有権リセットされることになります。
ネーム
前述のとおり、ネームを所有することと、登録を所有することには違いがあります。「ネーム」は「jon.eth」なと、ENSがあるドメインを特定するための方法としうて機能し、ドットで区切った異なるラベルから構成されます。
ENSに登録されたドメインネームを処理するのにつかわれるアルゴリズムは「ネームハッシュ(namehash)」と呼ばれます。限られた長さの256ビットの暗号化ハッシュだけれ機能するENSシステムでは、人にわかりやすい名前が置換されているため、ネームハッシュが役に立つのです。
ネームからハッシュを抽出し、ドメインの階層的性質を維持したい場合に、ネームハッシュが使用されます。例えば、「john.eth」の場合、ネームハッシュは「0x787192fc5378cc32aa」です。
ネームハッシュを使う前に、まずネームを正規化する必要があります。つまり、大文字と小文字のネームを平等に扱うのです。これが重要なのは、ネームハッシュのプロセスによってすべてのユーザーがENSで利用可能なネームとドメインを同じように見ることができるようにするためです。
ENSはなぜ重要なのか?
ENSはイーサリアムのスマートコントラクト用に開発され、イーサリアムエコシステムにネイティブなため、DNSシステムが抱えるようなセキュリティ上も問題には悩まされません。DNSのドメインとネームの記録は中央集権型サーバーに保管されており、ハッキングの可能性があります。
例えば、2020年10月、Googleの脅威分析グループは、中国のインターネットサービスプロパイダー発の、DNSおよびその他のネットワークに対する過去最高の18万懸の攻撃を検知しました。
対照的に、ENSの記録は破壊することが不可能で、イーサリアムブロックチェーンによって安全が保たれています。
さらにENSによって、ネームとアドレスはより透明性が高まり、やり取りが簡単になります。オークションに参加することで、誰でも「.eth」ドメインを作成、登録できるからです。入札額が最も高かった人がドメインネームを獲得し、サブドメインを作成したり、ドメインをリースすることが出来るようになります。
ENSのおかげで、イーサリアムブロックチェーンのユーザーはイーサリアムネットワーク上で自らの居場所を確立し、アドレスの海の中で、わかりやすい連絡先となることが出来るのです。
いかがでしたでしょうか?
ドメイン名やIPアドレスといった今までにも使われていて、聞いたことあるけど、それが何かを説明できるかと言われたら難しい方も多かったと思います。
当方もそうでしたが、この記事を読んで勉強になったのと、いかにイーサリアム・ネーム・サービスの機能がドメインに比べて安全かがわかりましたね。
これからも安心・安全に暗号資産やWeb3を扱っていくならこのような勉強もたまには必要ですね。