見出し画像

Ethereum Name Serviceとその応用方法とは?

今回はEthereum Name Service(ENS)について解説したいと思います。ENSは簡潔にまとめるとDNSのEthereumバージョンです。DNSではIPアドレスを分かりやすい文字(URL)に置き換えていますが、ENSではアカウントアドレスやコントラクトアドレスを文字に置き換えます。
本記事ではアドレスを割り当てた.ethで終わる文字をETH名とします。

アドレスを文字として登録できる

DNSでは、例えば216.58.196.227というipアドレスにgoogle.comという名前が与えられ、ユーザーはipアドレスの代わりにURLを入力することでウェブサイトにアクセスできます(記事執筆時点では216.58.196.227でアクセスするとgoogle.comに飛ばされます)。

ENSでも同様に0x05Dxxxxxxxxのようなアドレスに、例えばgoogle.ethという名前をつけることで、人間からも分かりやすいアドレスにすることができ、今まで送金するのに相手のアドレスを入力していたところを、google.ethの様な名前を入力すれば送金可能となります(google.ethというETH名とアドレスはこの投稿を書いている段階では紐づいてないので、送金はできません)。

試しにmetamaskでTwitterでVitalikが公開しているETH名のvitalik.eth(https://twitter.com/VitalikButerin)を検索すると、下記の様にVitalikのアドレスが表示されます(アドレスの省略されている部分は次の画面に進めば見ることができます)。あとは、このままvitalik.ethを選択しEtherを送金すれば、Vitalikのアドレスに送金することができます。

画像1

画像2

因みにこのアドレスをEtherscanで調べると830Etherほど入っていました。
この様にETH名を公開することはアドレスを公開するのと同じで、保有Etherやトランザクションの履歴等が他人にオープンになるので、公開する際には気をつけて下さい。

現在、ETH名による送金はMetaMaskやTrust Walletなど30以上のウォレットに対応しており、順次増えています。

また、ドメインオーナーはサブドメインを自由に作成することができます。サブドメインは親ドメインの前につく形で、doc.google.eth、sheet.google.eth、map.google.ethの様に作成し、それぞれに別のオーナーをセットすることも可能です。そのため、例えばゲームのユーザーごとにアドレスを割り当てる(user1.game.eth、user2.game.eth)といった使い方も考えられます。

マルチコイン対応

複数種類のコイン(マルチコイン)、例えばビットコインやリップルのアドレスもENSで登録することができると打ち出しています。

TLD(Top Level Domain)が全て.ethなので分かりづらいですが、例えばgoogle.ethというアドレスにENS上でビットコインアドレスが登録されているとします。ウォレットがENS対応していれば、送金時、google.ethに対応したビットコインアドレスに送金を行うことができます。これはウォレットがENSコントラクトを経由してビットコインアドレスに自動的に変換しています。(実際にはgoogle.ethというドメインとビットコインアドレスはこの投稿を書いている段階では紐づいてないので送金はできません)。

なお、ENSコントラクトの役割としては、Ethereumブロックチェーンから他コインのブロックチェーンに直接送金をするわけではなく、あくまでウォレットなどのアプリケーションにENSに紐づいたアドレスを提供しているだけになります。

少し分かりづらいので整理します。下記の様なEthereumとビットコインのアドレスを持っていたとします(実際にはEthereumのアドレスは42桁、ビットコインは34桁ですが、ここでは省略していずれも8桁で表します)。

Ethereum: 0x05D3ba
Bitcoin: bc1qv4ai

google.ethというETH名をそれぞれのアドレスに紐づけることで、Etherを送れば0x05D3baというアドレスに送金し、ビットコインを送ればbc1qv4aiというアドレスにビットコインが送金されます。

下図はTrust Walletでのビットコイン送金画面です。bc1qv4ai...の様なアドレスではなくexaproof.ethと入力しても送金が可能です。

画像3

現在Ethereumやビットコインを含む10種類の仮想通貨でこの機能が使用可能で、20以上のウォレットがこの機能に対応しています。

DNSとの連携

ENSは、現在のDNSと同じ様に扱えるようにすることを目的の一つとしています。現在.xyzドメインでENSとしてもDNSとしても利用が可能です。つまり、hogehoge.xyzをURLとしてアクセスすればウェブサイトに繋がり、hogehoge.xyzにetherを送金すればEthereumのアドレスとして認識され、etherがそのアカウントに送金されます。

下図1枚目では、myxyzwallet.xyzにEtherを送金することが可能で、2枚目ではURLにmyxyzwallet.xyzにアクセスすることでウェブサイトに繋がります。

画像4

画像5

Decentralized websitesへの応用

Decentralized websiteは邦訳すると非中央集権型ウェブサイトや自律分散型ウェブサイトです。詳細は割愛しますが、特定のホストを持たないウェブサイトです。

例えば有名な分散型のファイルシステムであるIPFSを利用したウェブサイトは、静的サイトを構成するHTMLファイルをピア間で共有し、その内容のハッシュ値をアクセス用IDとしてマッピングしています。アクセス用IDを用いてhttpアクセスすることで静的サイトを閲覧することができます。IDにENSを割り当てることで、ENSを経由したサイトアクセスを可能としています。つまり、今まではhttps://gateway.ipfs.io/ipfs/QmPumE41kWAnpfqXfYSa1zNHtfa3R2VLaXH8Z7gJNbixFF/ というIPFSのIDを用いていましたが、almonit.eth/ というドメイン名をENSに設定することでアクセスできます。(上記2つのURLは同じサイトに繋がります。Operaはネイティブでサポート、chromeであればmemask経由でアクセス可能です)

さらに、IPFSはサイトの内容が変わると、ハッシュ値も変わってしまいますが、ENSにそのハッシュ値を割り当てることで、毎回同じETH名でアクセスが可能になります。

ENSの購入方法

ENSはEthereum Name Serviceで購入することができます(ここでEthereum Name ServiceはENSを購入するサービス名を指しています)。1年単位での登録になりますが、更新も可能です。具体的な購入方法は以下にスライドでまとめましたので、こちらを参照して頂ければと思います。


また、公式からだけではなく仲介サイトでも購入が可能となっています。例えば、ETHSimpleというサービスではドメイン名を指定するだけでシンプルに購入ができますし、EtherだけでなくPaypalからでも購入が可能です。

まとめ

今回の記事ではENSでできることをまとめました。

・0xで始まるアドレスではなく、登録したETH名で送金ができる
・ドメインオーナーが自由にサブドメインを作ることができる
・Ethereumだけでなく、ビットコインなどの他のコインにもETH名で送金できる
・DNSと同じドメイン名も使える(.xyz等)
・Decentralized WebsiteのURLとして使える


他にもメールアドレスや任意の文字列にETH名をつけることができ、様々な応用が考えられます。

例えば、ブロックチェーンゲームで同じアドレスを使う限り、異なるゲームでもわざわざ名前を登録せずに持っているETH名でプレイするといった使い方が考えられます。

また現状DNSと共通のドメインは非常に限られたものですが、いずれはDNSと統合することも考えられ、今のDNSの様にインターネットのスタンダードとしてENSが使用される未来も遠くないかもしれません。

実際に、直近3週間で新たに12000ものETH名が登録され、今後も登録数は増えていくと予想されますので、欲しい名前は早めに登録することをおすすめします。

エンジニアがブロックチェーンを見るマガジンでは、単純なプロジェクトやプロダクトの紹介だけでなく、その裏で何が起きているかを技術視点、ビジネス視点から紹介していこうと思いますので、是非フォローお願いします!


この記事が気に入ったらサポートをしてみませんか?