Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

名前を取得する方法 公式サイトやMyEthereumWallet から申請したい名前を申し込む ENS のオー クションコントラクトでオー クション開始 入札期間3 日間、 入札額公表期間2 日間 入札の際に最低額0.01ETH をデポジット 誰も入札しない、 または最高の入札額を提示した人が使用権獲得 ルー ルの詳細はhttp://individua1.net/ethereum‑name‑service/ 4

Slide 5

Slide 5 text

コンポー ネント registry resolver 5

Slide 6

Slide 6 text

registry DomainOwnerAddress Domain のResolver 保持 Domain TTL 保持 Domain のOwner 権限移譲も可能 6

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

resolver https://github.com/ethereum/ens/blob/master/contracts/PublicResolve r.sol 名前解決ロジック担当 登録したName をchain 上に保存するのでプライバシー 的な観点で hash 保持 9

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

コントラクトからのコー ル 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

Slide 13

Slide 13 text

ロジック担当コントラクトのname を取得しておいてresolver から コントラクトアドレスを切り替えることでデプロイにも使えそう 13

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

15

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

ん? 17

Slide 18

Slide 18 text

18

Slide 19

Slide 19 text

GasFee($13.38) 19

Slide 20

Slide 20 text

結論 Gas 高いよ!!! 20

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

最後に 23

Slide 24

Slide 24 text

24

Slide 25

Slide 25 text

25

Slide 26

Slide 26 text

DMP とは 広告主やメディアからオー ディエンスデー タ( クリックや購入といった Web 上の行動ログなど) を収集・ 解析し、 広告やマー ケティングに活用 できるようにするデー タ管理プラットフォー ム。 26

Slide 27

Slide 27 text

Datachain とは Mission デー タがつながるをあたらしく Vision 世界中のデー タをブロックチェー ンによって安全に共有できるようにす る 27

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

https://datachain.jp/ 30

Slide 31

Slide 31 text

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