Ethereum Name Serviceについて調べてみた

799b4d576fb0584dc9ddb83021665f47?s=47 okutoshi
March 16, 2018

Ethereum Name Serviceについて調べてみた

Ethereum Name Service

799b4d576fb0584dc9ddb83021665f47?s=128

okutoshi

March 16, 2018
Tweet

Transcript

  1. Ethereum Name Service について調べてみた 1

  2. 自己紹介 大久保俊彦 https://www.facebook.com/toshihiko.okubo.39 株式会社Speee 新規事業戦略室所属 https://speee.jp/ 最近はAdTech 系のプロダクトを作ってます 2 月までネイティブアドプラットフォー

    ムUZOU の開発をしていま した 現在はブロックチェー ンデー タプラットフォー ム Datachain の開発 をしてます 2
  3. ENS って何? ethereum のアドレス 0 x a b c d

    a e g . . . を x x x . e t h という文字列に bind してくれるdapps EIP137 で策定 https://github.com/ethereum/EIPs/blob/master/EIPS/eip‑ 137.md Domain の販売・ レンタルも出来る https://enslisting.com/ 第2 次ドメインネー ム戦争の予感 3
  4. 名前を取得する方法 公式サイトやMyEthereumWallet から申請したい名前を申し込む ENS のオー クションコントラクトでオー クション開始 入札期間3 日間、 入札額公表期間2

    日間 入札の際に最低額0.01ETH をデポジット 誰も入札しない、 または最高の入札額を提示した人が使用権獲得 ルー ルの詳細はhttp://individua1.net/ethereum‑name‑service/ 4
  5. コンポー ネント registry resolver 5

  6. registry DomainOwnerAddress Domain のResolver 保持 Domain TTL 保持 Domain のOwner

    権限移譲も可能 6
  7. i n t e r f a c e E

    N S { e v e n t N e w O w n e r ( b y t e s 3 2 i n d e x e d n o d e , b y t e s 3 2 i n d e x e d l a b e l , e v e n t T r a n s f e r ( b y t e s 3 2 i n d e x e d n o d e , a d d r e s s o w n e r ) ; e v e n t N e w R e s o l v e r ( b y t e s 3 2 i n d e x e d n o d e , a d d r e s s r e s o l v e r ) ; e v e n t N e w T T L ( b y t e s 3 2 i n d e x e d n o d e , u i n t 6 4 t t l ) ; f u n c t i o n s e t S u b n o d e O w n e r ( b y t e s 3 2 n o d e , b y t e s 3 2 l a b e l , a d d r e s s f u n c t i o n s e t R e s o l v e r ( b y t e s 3 2 n o d e , a d d r e s s r e s o l v e r ) p u b l i c ; f u n c t i o n s e t O w n e r ( b y t e s 3 2 n o d e , a d d r e s s o w n e r ) p u b l i c ; f u n c t i o n s e t T T L ( b y t e s 3 2 n o d e , u i n t 6 4 t t l ) p u b l i c ; f u n c t i o n o w n e r ( b y t e s 3 2 n o d e ) p u b l i c v i e w r e t u r n s ( a d d r e s s ) ; f u n c t i o n r e s o l v e r ( b y t e s 3 2 n o d e ) p u b l i c v i e w r e t u r n s ( a d d r e s s ) f u n c t i o n t t l ( b y t e s 3 2 n o d e ) p u b l i c v i e w r e t u r n s ( u i n t 6 4 ) ; } 7
  8. c o n t r a c t E N

    S R e g i s t r y i s E N S { s t r u c t R e c o r d { a d d r e s s o w n e r ; a d d r e s s r e s o l v e r ; u i n t 6 4 t t l ; } / / e x . ) o k u b o - t o s h i h i k o . e t h / / k e y = n o d e = k e c c a k 2 5 6 ( " t o s h i h i k o " , k e c c a k 2 5 6 ( " e t h " ) ) m a p p i n g ( b y t e s 3 2 = > R e c o r d ) r e c o r d s ; m o d i f i e r o n l y _ o w n e r ( b y t e s 3 2 n o d e ) { r e q u i r e ( r e c o r d s [ n o d e ] . o w n e r = = m s g . s e n d e r ) ; _ ; } f u n c t i o n s e t O w n e r ( b y t e s 3 2 n o d e , a d d r e s s o w n e r ) p u b l i c o n l y _ o w n e r ( n o d e ) { T r a n s f e r ( n o d e , o w n e r ) ; r e c o r d s [ n o d e ] . o w n e r = o w n e r ; } . . . / / 以降o w n e r , r e s o l v e r , t t l のs e t t e r , g e t t e r } 8
  9. resolver https://github.com/ethereum/ens/blob/master/contracts/PublicResolve r.sol 名前解決ロジック担当 登録したName をchain 上に保存するのでプライバシー 的な観点で hash 保持

    9
  10. resolver 1/2 c o n t r a c t

    P u b l i c R e s o l v e r { ・ ・ ・ s t r u c t R e c o r d { a d d r e s s a d d r ; / / e t h e r e u m a d d r e s s b y t e s 3 2 c o n t e n t ; / / S w a r m h a s h s t r i n g n a m e ; / / E N S N a m e x x x . e t h P u b l i c K e y p u b k e y ; m a p p i n g ( s t r i n g = > s t r i n g ) t e x t ; / / u n u s e s m a p p i n g ( u i n t 2 5 6 = > b y t e s ) a b i s ; / / a b i } E N S e n s ; / / k e y ( b y t e 3 2 ) = n o d e m a p p i n g ( b y t e s 3 2 = > R e c o r d ) r e c o r d s ; m o d i f i e r o n l y _ o w n e r ( b y t e s 3 2 n o d e ) { r e q u i r e ( e n s . o w n e r ( n o d e ) = = m s g . s e n d e r ) ; _ ; } f u n c t i o n P u b l i c R e s o l v e r ( E N S e n s A d d r ) p u b l i c { e n s = e n s A d d r ; } 10
  11. resolver 2/2 f u n c t i o n

    s e t A d d r ( b y t e s 3 2 n o d e , a d d r e s s a d d r ) p u b l i c o n l y _ o w n e r ( n o d e ) { r e c o r d s [ n o d e ] . a d d r = a d d r ; A d d r C h a n g e d ( n o d e , a d d r ) ; } f u n c t i o n a d d r ( b y t e s 3 2 n o d e ) p u b l i c v i e w r e t u r n s ( a d d r e s s ) { r e t u r n r e c o r d s [ n o d e ] . a d d r ; } / / s e t t e r , g e t t e r / / c o n t e n t , n a m e , p u b k e y , t e x t , a b i s 11
  12. コントラクトからのコー ル i m p o r t ' .

    / E N S . s o l ' ; c o n t r a c t M y C o n t r a c t { E N S e n s ; f u n c t i o n M y C o n t r a c t ( a d d r e s s e n s A d d r e s s ) { e n s = E N S ( e n s A d d r e s s ) ; } f u n c t i o n r e s o l v e ( b y t e s 3 2 n o d e ) c o n s t a n t r e t u r n s ( a d d r e s s ) v a r r e s o l v e r = e n s . r e s o l v e r ( n o d e ) r e t u r n r e s o l v e r . a d d r ( n o d e ) ; } } 12
  13. ロジック担当コントラクトのname を取得しておいてresolver から コントラクトアドレスを切り替えることでデプロイにも使えそう 13

  14. toshihiko‑okubo.eth を登録してみる 14

  15. 15

  16. 最低額の0.01ETH でオー クションに出す($7.12) 16

  17. ん? 17

  18. 18

  19. GasFee($13.38) 19

  20. 結論 Gas 高いよ!!! 20

  21. 結論 アドレスが文字列になることで直感的に使いやすくなる 良いか悪いは置いといてロジック担当コントラクトの更新が容易に なるのではないか 21

  22. Link github https://github.com/ethereum/ens Doc http://ens.readthedocs.io/en/latest/introduction.html etherscan https://etherscan.io/ens Interface App https://www.npmjs.com/package/ethereum‑ens

    22
  23. 最後に 23

  24. 24

  25. 25

  26. DMP とは 広告主やメディアからオー ディエンスデー タ( クリックや購入といった Web 上の行動ログなど) を収集・ 解析し、

    広告やマー ケティングに活用 できるようにするデー タ管理プラットフォー ム。 26
  27. Datachain とは Mission デー タがつながるをあたらしく Vision 世界中のデー タをブロックチェー ンによって安全に共有できるようにす る

    27
  28. 第三者と共有出来ず死蔵されていたデー タをブロックチェー ンによ って安全に共有され、 あらゆる社会に役立てられる社会 トー クンによるデー タ取引の基軸通貨を作る 28

  29. 一緒にDatachain を創り上げる仲間を募集しています Blockchain を使ったアプリケー ションを作りたい 世界初となるシステムを作りたい 29

  30. https://datachain.jp/ 30

  31. ご静聴ありがとうございました 31