ENSとは
名前解決というと、耳馴染みのない人もいるかもしれませんが、類似する仕組みとして、インターネットのドメイン名とIPアドレスの対応関係を管理するとDNS(Domain Name System)があります。
ENSは、ブロックチェーンのウォレットアドレスなどのコンピュータが扱う識別子と人間が読みやすい文字列を紐付けます。たとえば、Ethereumの42文字の英数字からなるアドレスを覚えられるという人はなかなかいませんが、「gaiaxblockchain.eth」のような文字列であれば認識しやすいでしょう。
ENS(Ethereum Name Service)は、シンガポールに拠点を置く非営利団体True Names LTDが開発をリードする分散型の名前解決サービスです。
2016年にNick Johnson氏がEIP137としてEthereum Domain Name Serviceの仕様を提案したのがきっかけとなり、Ethereum FoundationのもとENS開発が始まりました。2017年にはサービスがローンチされ、2018年からはEthereum Foundationを離れ、True Names LTDを中心に開発が続けられています。当初ENSはユーザーからデポジットを受け取ってENS名を貸し出していましたが、現在は一年あたり5ドルでENS名を登録できるモデルを採用しています。
2021年10月には、同月30日時点でのENS名所有者に対して、ガバナンストークン$ENSが配布されました(サービス名とトークン名が同じなので、以降トークンは$ENSと表記します)。ENS名のこれまでの所有期間や残りの有効期間によってはかなりの金額相当の$ENSが配布されたことから界隈で話題になりました。
冒頭でENSはウォレットアドレスなどを扱うと書きましたが、Ethereumのほか、Bitcoin、Litecoin、Dogecoinのアドレスを扱えるだけでなく、email、URL、アバター、Twitter、Discordのアカウントなども設定でき、ENS名はいわばIDのようにも利用できます。ENSに対応したウォレットのユーザーは、アドレスではなくENS名をして送金することができます。また、ENSとIPFSを使って分散型の検閲に強いウェブサイトを立ち上げることもできます。
画像: ENSで設定できる項目
ENS名の実体はEthereumのNFT(代替不可能で唯一無二のトークン)の標準ERC721なので、柔軟に譲渡や取引ができます。世界最大規模の老舗NFTマーケットプレイスOpenSeaでもENS名が取引されています。
画像: OpenSeaで取引されるENS名
ENS名は「○○.eth」という形式が一般的ですが、多少の制約のもと「○○.com」、「○○.org」といったすでに所有している既存のDNS名を使うこともできます。2021年11月現在、ENSのウェブサイトによると、19万8千人が48万8千のENS名を所有しています。ENS名を取得してみたいという人は、以下のページで取得できます。
ENS名を取得するには、ENS名が利用可能かを調べ、利用可能であれば登録手続きに進みます。一年間の登録料は5文字以上のものは5ドル(4文字のものは160ドル、3文字のものは640ドル)で、2021年11月現在ガス代を加えると5文字以上のENS名の取得には100ドルから300ドルの費用がかかります。費用を抑えるには数年分まとめて登録することが推奨されています。
画像: ENS名の登録画面
ENSの仕組み
ENSはスマートコントラクト群として実装され、Ethereumネットワーク上で稼働しています。ENSを構成する主要な要素としてレジストラとレジストリ、リゾルバがあります。レジストラはENS名の割り当てと販売を扱い、独立してその所有権をトラッキングしています。
レジストリは単一のスマートコントラクトでドメインとその所有者、リゾルバ、有効期限を保持しています。リゾルバはENS名をアドレスにマッピングします。
画像: ENSのレジストリとリゾルバ(ENSの技術文書より)
ENSで名前を解決する(ENS名からアドレスを探す)プロセスを見てみましょう。まず、レジストリに対してENS名で問い合わせると、どのリゾルバが名前解決を担当しているか返答があります。次にこのリゾルバに対して名前を送ると、アドレスが返ってきます。
画像: ENSでの名前解決のプロセス(ENSの技術文書より)
ENS自体はEthereumネットワーク上でスマートコントラクトとして稼働しているため分散型のシステムで、登録がアクティブである限り誰も一度発行されたENS名を取り消すことはできないといいます。
一方、現状では、すべてのENS名を扱うルートはマルチシグコントラクトによって所有されているため、完全に分散化されているわけではありません。マルチシグは鍵を持つ7人中4人の署名で有効で、ENSの提案者であるNick Johnson氏のほか、Chainlink、Metamask、MyCrypto、Colony、Ethereum Foundationのメンバーが鍵を所有しています。
ENSのウェブサイトによると、ルートのマルチシグについては、今後分散型の意思決定方式に置き換えたいとのこと。ENSではすでにENS DAOと呼ばれるコミュニティで意思決定を行うためのDAOが存在します。2021年10月のガバナンストークン$ENSの配布にはじまり、今後分散化が進むことが期待されます。
ENSの詳しい仕組みやガバナンスについてはそれぞれ文書が公開されています。
ENSが注目される理由
ブロックチェーンのアドレスは、長い文字列でお世辞にも扱いやすいものとはいえず、ブロックチェーンや仮想通貨に親しんでいない人が見たら戸惑うことでしょう。また、慣れている人の中にも、アドレスをコピーしたり、QRコードを読み取ったりしてアドレスを入力したとしても、送金の際には緊張して文字列を確かめてしまうといった人もいるでしょう。かくいう筆者もその一人です。
アドレスを人間が認識しやすい文字列に置き換える仕組みは、特定のサービス内では存在しましたが、ENSはこれをパブリックブロックチェーンを使ってオープンに分散型で実現しようとしています。Ethereum Foundationのもと、2017年から2018年にかけての仮想通貨ブームの前に開発が始まり着実に開発が続けられてきた点にも注目したいところです。
分散化という点では、ルートが特定の複数の個人によってマルチシグで管理されているという課題はありますが、それ以外の点ではEthereumが分散化されていることを考慮すると、Ethereumネットワーク上で稼働しているENSも同様に分散化されているシステムと考えることができます。
WikipediaでDNSルートサーバーのページを見てみると、ルートサーバーの位置を記した地図が掲載されています。Ethereumのノードの位置と比較してみましょう。単純な比較はできませんが、DNSでは13クラスタのルートサーバーが冗長化されて稼働し、Ethereumは2780ノードが稼働しています。ノードの位置では、双方ともに欧米を中心にノードが分布しています。
画像: DNSのルートノードの分布(左、Wikipediaより)と
Ethereumノードの分布(右、Etherscanより)
ENSのエコシステム
ENSのウェブサイトでは、ENSのエコシステムを紹介しています。まず、MetaMask、など50を超えるウォレットがENSに対応しています。ENSに関連するアプリケーションとしてはUniswap、Aave、OpenSea、Gitcoinといった著名サービスを含め数多くの名前が挙がっています。
画像: ENSに対応しているウォレットや関連するアプリケーション
(ENSウェブサイトより)
また、BraveブラウザやOperaのように、ENSとIPFSを組み合わせて作られた分散型のウェブサイトを通常のウェブサイトのように表示できるブラウザもあります。
ENSがウェブサイト上で紹介しているCloudflareのブログ記事にあるURL「app.ens.eth」にBraveブラウザでアクセスし、Cloudflareのサーバーを利用することに同意すると、ウェブサイトが表示されます。一般のブラウザでもURLの末尾に「.link」をつけたURL「app.ens.eth.link」にアクセスすると、eth.linkを介してENSとIPFSを使って構築された分散型のウェブサイトにアクセスできます。
おわりに
本記事ではEthereumネットワーク上で稼働する分散型の名前解決サービスENSについて説明しました。Ethereum Foundationから生まれ、着実に開発が続いてきたプロジェクトでもあり、今後Web3が広がりを見せる中で、IDのように使われる重要な要素になると感じさせるプロジェクトではないでしょうか。