Ethereum Name Service (ENS) 是一個建立在 Ethereum 的服務,它可以讓 0x4cbe58c50480… 地址變得有可讀性,比如 aardvark.eth ,將錢包地址與網域這兩者關聯起來,簡單來說就像是 Domain Name System (DNS) 一樣。根據官方網站首頁顯示已有 34 個錢包及 84 個 APP 已經支援,這數字持續增加中,而且可以綁定的資料格式不僅限於 ETH 的地址,這讓我更期待之後的發展。
ENS 的收費方式就跟 DNS 一樣,採取的是每年續費的方式,只是繳交的是 ETH 。這邊的頂級網域是 .eth ,也就是說這邊的網域都是 .eth 結尾的。價格主要是受到二級網域的長短或是有意義單詞而不同,也可使用中文網域,中文一個字跟英文一個字母相等,一般人大概都是買五個字的吧,如果不想花錢或是只想買斷也可以使用子網域寄人籬下。
買到的 ENS 會以 ERC721 的形式存在錢包中,可以轉讓或是在 OpenSea 上面交易,二級網域可以設定多個子網域,也因此有人做起二房東的生意,若是父網域沒有繼續續費子網域也會跟著失效。如果你本身也有架站,不妨可以先買個跟網站網域相同的 ENS 來玩玩。如果你曾經有在 Decentraland 註冊過名字,你會有個 xxx.dcl.eth 的 ENS ,可以先拿來體驗一下。
註冊 ENS
需要使用具有 DApp 功能的錢包來操作,先去 ENS App 上面搜尋你想找的名稱,中英皆可,我這邊就用 dreambreakerx.eth 當作範例,若是搜尋地址則會列出此地址所擁有的網域。每個網域最左邊的色塊都代表著狀態,綠色是可購買,青色是已擁有,灰色是已被其他人持有。這邊可以看到價格及持有者詳細資訊,確定要註冊就點選 Request To Register 。
![註冊](https://blog.dreambreakerx.com/wp-content/uploads/2020/03/buy-ens-1-1024x316.jpg)
![詳細資訊](https://blog.dreambreakerx.com/wp-content/uploads/2020/03/buy-ens-2-1024x310.jpg)
![註冊完成](https://blog.dreambreakerx.com/wp-content/uploads/2020/03/buy-ens-4-1024x317.jpg)
第一步驟會有兩筆交易,第二步驟需要等1分鐘確保不會有其他人跟你搶這網域,第三步驟需要一筆交易,之後點選 Manage Name 進入管理頁面。
管理 ENS
![註冊後的預設值](https://blog.dreambreakerx.com/wp-content/uploads/2020/03/ens-default-1024x544.jpg)
PARENT 父域名,此域名的父域名
REGISTRANT 註冊人,真正擁有此 ENS 的人,可以轉讓 ENS 或設置管理員
CONTROLLER 管理員 ,可做各種設定
EXPIRATION DATE 域名到期時間
RESOLVER 解析器,域名的解析器地址(智能合約)
ADDRESS 以太坊地址
Reverse record 反向解析紀錄,地址反向解析到域名
OTHER ADDRESSES 其他區塊鏈地址
這裡需要補充一下, ENS 在二月份有改版,若是在這之前購買的需要自己設定解析器及解析紀錄,若是在這之後買的只要設定反向解析紀錄即可。
註冊人和管理員的權限彼此並不重疊,若將管理員權限給另一個地址,那也將喪失管理員的權限。
解析器、以太坊地址、反向解析紀錄、其他地址、子網域設定
點選 RESOLVER 右邊的 Set 按鈕即可設定解析器,點選 Use Public Resolver 按鈕使用公用的解析器。
![解析器設定](https://blog.dreambreakerx.com/wp-content/uploads/2020/03/ens-resolver-1024x160.jpg)
點選 RECORDS 的 + 來新增以太坊地址或是點選 ADDRESS 右邊的鉛筆來修改以太坊地址。
![地址設定](https://blog.dreambreakerx.com/wp-content/uploads/2020/03/ens-address-1024x169.jpg)
點選 Reverse record 區塊展開設定,設定此地址對應的網域,同一個地址只能反向解析到另一個網域,但可以多個網域正向解析至同一個地址。
新版已將此設定移動到左側選單的 My Account 裡
![反向解析設定](https://blog.dreambreakerx.com/wp-content/uploads/2020/03/ens-reverse-record-1024x261.jpg)
可以設定其他區塊鏈的地址。
![其他地址設定](https://blog.dreambreakerx.com/wp-content/uploads/2020/03/ens-other-addresses-1024x507.jpg)
點選最右上方的 Subdomains 來設定子網域,可以根據使用需求或情境來新增,設定方式一樣就不再贅述。
![新增子網域](https://blog.dreambreakerx.com/wp-content/uploads/2020/03/add-subdomain-1024x270.jpg)
![子網域預設值](https://blog.dreambreakerx.com/wp-content/uploads/2020/03/subdomain-1024x414.jpg)
支援情況
我實際使用了 MetaMask 、Trust Wallet 、 Coinomi 來識別綁定 BTC 、 BCH 的網域,三者雖然都支持 Ethereum Name Service (ENS) ,但支援程度不一樣, MetaMask 是單鏈錢包沒甚麼好說的,Trust Wallet 支援 BTC 、 BCH 的地址 , Coinomi 只支援 ETH 地址,看來 ENS 只是 API 接口,實際要怎麼運用就要看開發者。除了錢包地址以外,也支援其他格式的文字資料,例如 Email 、 URL 之類的,另外 IPFS 與 Tor 的網站也可透過 ENS 取代那長長的網址方便瀏覽,期待之後 ENS 能被更多應用、服務廣泛運用。