イーサリアムとスマートコントラクト入門 / BlockTecCo vol.1

Ba0cce2241a7133aec62afc8ed15a172?s=47 Kenji Suzuki
August 20, 2018
260

イーサリアムとスマートコントラクト入門 / BlockTecCo vol.1

BlockTecCo vol.1での登壇資料です。
https://blocktecco.connpass.com/event/95413/
イーサリアムとスマートコントラクトの基本的な内容となっています。

Ba0cce2241a7133aec62afc8ed15a172?s=128

Kenji Suzuki

August 20, 2018
Tweet

Transcript

  1. ΠʔαϦΞϜͱ εϚʔτίϯτϥΫτೖ໳ #MPDL5F$P7P ,FOKJ4V[VLJ

  2. "HFOEB w جຊతͳ஌ࣝ w ΠʔαϦΞϜͱ͸ʁ w ϏοτίΠϯͱͷҧ͍͸ʁ w εϚʔτίϯτϥΫτͱ͸ʁ w

    τʔΫϯͱ͸ʁ w Ϣʔεέʔε঺հ w ΠʔαϦΞϜͷ։ൃϩʔυϚοϓͱࠓޙ w ։ൃπʔϧ঺հ
  3. ΠʔαϦΞϜʹ͍ͭͯͷ جૅతͳͱ͜Ζ

  4. w ೥7JUBMJL#VUFSJOʹΑΓ։ൃ͕ ελʔτ w &UIFSFVN'PVOEBUJPOΛத৺ʹ։ ൃ͕ਐΊΒΕ͍ͯΔ w #VJMEVOTUPQQBCMFBQQMJDBUJPOT ΠʔαϦΞϜͱ͸ʁ

  5. w IUUQTXXXFUIFSFVNPSHΑΓ w ΠʔαϦΞϜ͸εϚʔτίϯτϥΫτ͕࣮ߦͰ͖ΔඇதԝूݖతͳϓϥοτϑΥʔϜͰ͋Δ #VJME6OTUPQQBCMF"QQMJDBUJPO

  6. ࡀ͔Βࡀ·ͰήʔϜ8PSMEPG8BSDSBGUʹເ தͰ͕͋ͬͨɺ͓ؾʹೖΓͷΩϟϥΫλʔͷೳྗ஋ ͕ಥવௐ੔͞ΕɺήʔϜձࣾͱ͍͏தԝػ͕ؔݖྗ ΛѲΔ͜ͱʹࣦ๬ͨ͠ͱ͍͏ɻ͜ͷܦݧ͕෼ࢄܕͷ Ծ૝௨՟ʹڵຯΛ͖͔͚࣋ͭͬʹͳͬͨͱৼΓฦͬ ͍ͯΔɻ 8JLJQFEJB %FDFOUSBMJ[FE"QQMJDBUJPO

  7. ϏοτίΠϯͱͷҧ͍ w ϏοτίΠϯ΋ඇதԝूݖత͕ͩʁ w ΠʔαϦΞϜ͸༷ʑͳΞϓϦέʔγϣϯΛεϚʔτί ϯτϥΫτͰهड़Ͱ͖ɺ11ωοτϫʔΫ্ʹߏஙͰ ͖ΔϓϥοτϑΥʔϜ

  8. w ͋Β͔͡ΊܾΊΒΕͨϩδοΫ͕͋Γ w ΠϯϓοτΛߦ͏ͱ w ΠϯϓοτʹԊͬͯϩδοΫ͕ࣗಈࣥߦ͞ΕΔ εϚʔτίϯτϥΫτͱ͸ʁ ྫࣗಈൢചػ w ԁೖΕΔ

    w Ϙλϯԡ͢ w ҿΈ෺͕ग़ͯདྷΔ
  9. w ΠʔαϦΞϜ্ʹεϚʔτίϯτϥΫτΛσϓϩΠ w ͜ͷίϯτϥΫτ͸վ͟ΜͰ͖ͳ͍ w ίϯτϥΫτ಺ʹهड़͞Εͨ௨Γʹॲཧ͕ࣗಈࣥߦ͞ ΕΔ w தԝ؅ཧ͍ͯ͠Δ୭͔͕ॲཧʹհೖͰ͖ͳ͍ w

    ਓखΛհ͞ͳ͍ͷͰίετ͕௿͍ ΠʔαϦΞϜʹ͓͚ΔεϚʔτίϯτϥΫτ
  10. w &0" &YUFSOBMMZ0XOFE"DDPVOU  w ਓ͕ؒ࣋ͭΞΧ΢ϯτɺίʔυ͸࣋ͨͳ͍ w τϥϯβΫγϣϯΛ։࢝Ͱ͖Δ w ίϯτϥΫτΞΧ΢ϯτ

    w εϚʔτίϯτϥΫτΛ࣮ߦ͢ΔΞΧ΢ϯτ w τϥϯβΫγϣϯΛࣗ෼Ͱ͸։࢝Ͱ͖ͳ͍ ΠʔαϦΞϜͰͷೋͭͷΞΧ΢ϯτ &0" ίϯτϥΫτ ΞΧ΢ϯτ ίϯτϥΫτ ΞΧ΢ϯτ ΠʔαϦΞϜωοτϫʔΫ ࡞੒ݺͼग़͠
  11. w ΠʔαϦΞϜͷ֤ΞΧ΢ϯτ͸ঢ়ଶ 4UBUF Λอ࣋͢Δ w #5$Ͱ͸6590ϕʔεͰ͕͋ͬͨɺΠʔαϦΞϜ͸ ΞΧ΢ϯτຖʹ&UIFS#BMBODFΛ͍࣋ͬͯΔ ΞΧ΢ϯτͷঢ়ଶ

  12. w ϒϩοΫνΣʔϯ্Ͱൃߦ͢Δಠࣗ௨՟ w εϚʔτίϯτϥΫτͷͻͱͭ w ΠʔαϦΞϜͷηΩϡϦςΟʹ૬৐Γͨ͠ঢ়ଶͰಠࣗͷτʔ ΫϯͱτʔΫϯΤίϊϛʔΛߏங͢Δ͜ͱ͕Ͱ͖Δ w ΠʔαϦΞϜͰ͸ඪ४తͳτʔΫϯΛ͍͔ͭ͘ఆ͍ٛͯ͠Δ ن֨ͷඪ४Խ

     w &3$ w &3$ τʔΫϯͱ͸ʁ
  13. w 'VOHJCMF5PLFO w ୅ସՄೳͳτʔΫϯ w ԁۄΈ͍ͨͳ΋ͷ w "͞Μͱ#͞Μ͕ԁۄΛަ׵ͯ͠΋ಛʹҙຯ͸ͳ ͍ w

    ୭͕Ͳͷ͘Β͍ͷԁۄΛ͍࣋ͬͯΔ͔͕ॏཁ &3$
  14. &3$Ϣʔεέʔε*$0 w *OJUJBM$PJO0⒎FSJOH w ࢿۚௐୡΛ͍ͨ͠اۀ΍ࣄۀϓϩδΣΫτ͕ಠࣗͷ௨՟Λൃߦൢച͠ɺࢿۚௐୡ͢Δ w *$0ͷن੍ʹ͍ͭͯ͸ࠓճ͸ׂѪ ൃߦ اۀ͕ԿΛ΍Γ͍͔ͨΛ֬ೝ ڞײͨ͠৔߹ʹൃߦͨ͠ίΠϯΛߪೖ

  15. w ৴པͰ͖Δهࣄͱ৴པͰ͖Δ৘ใൃ৴ऀ͕ू·͍ͬͯΔϝσΟΞαΠτ w ΞϦετʔΫϯ &3$ ΛΠϯηϯςΟϒͱͯ͠෇༩͢Δ͜ͱͰ৴པੑΛ্͍͛ͯ͘ w ϝσΟΞࣗମͷՁ஋ͷ޲্ʹΑΓτʔΫϯͷՁ஋΋޲্͍ͯ͘͠ &3$Ϣʔεέʔε"-*4 ༏ྑهࣄ

    هࣄΛॻ͍ͯ "-*4τʔΫϯΛ(&5 ༏ྑهࣄʹ͍͍Ͷͯ͠ "-*4τʔΫϯΛ(&5 "-*4τʔΫϯΛΠϯηϯςΟϒͱͨ͠ ༏ྑͳϝσΟΞϓϥοτϑΥʔϜʹ੒௕͢Δ
  16. w એ఻"-*4ʹهࣄΛॻ͍͍ͯΔͷͰ͍͍ͶΛ͓ئ͍͠·͢ w ͱ͍͏ͷ͸৑ஊͰɺ"-*4ϓϩδΣΫτͷ࣮ࡍͷ*$0εϚʔτίϯτϥΫτΛղઆ͍ͯ͠Δ ͷͰڵຯ͋Δํ͸ಡΜͰΈ͍ͯͩ͘͞ w IUUQTBMJTUPLFOKJT[LBSUJDMFTB;YCX:-K &3$Ϣʔεέʔε"-*4

  17. w /PO'VOHJCMF5PLFO w ୅ସෆՄೳͳτʔΫϯ w ίΠϯͻͱͭͻͱ͕ͭ൑ผՄೳͳϓϩύςΟΛ࣋ͭ w "͞Μͱ#͞Μ͕͍࣋ͬͯΔίΠϯ͕શ͘ผ෺ &3$

  18. w $SZQUP,JUUJFT w &3$Λར༻ w ࣗ෼ͷॴ༗͍ͯ͠Δೣ͕ੈքͰ།ҰͰ͋Δ͜ͱΛ CMPDLDIBJOʹΑΓূ໌Ͱ͖Δ w ͍ΘΏΔ%"QQTͷ࠷΋༗໊ͳ΋ͷͷҰͭ w

    ήʔϜͷΞΠςϜͰͷར༻ͳͲ΋ &3$Ϣʔεέʔε
  19. w ҩྍ෼໺ w αϓϥΠνΣʔϯ τʔΫϯҎ֎ͷϢʔεέʔε

  20. w ిࢠΧϧς w ҩྍػؔͰ୆ாΛڞ༗ w ֤ݸਓ͸ࣗ਎ͷ৘ใެ։ൣғΛϒϩοΫνΣʔϯΛར༻ͯ͠ݫີʹܾΊΒΕΔ w ৘ใެ։͢Δ͜ͱͰτʔΫϯΛ֫ಘͰ͖ΔͳͲͷΠϯηϯςΟϒ΋ w ҩༀ඼ͷτϨʔαϏϦςΟ

    w ར༻͍ͯ͠Δҩༀ඼͕ͲͷΑ͏ͳϓϩηεͰͲͷΑ͏ʹ੡଄͞Ε͔ͨͱ͍ͬͨ͜ ͱΛɺվ͟ΜͰ͖ͳ͍ཤྺͱͯ͠อଘ w ҩྍैࣄऀͷࢿ֨ೝఆ w Ͳͷػ͕͍ؔͭͲ͏͍ͬͨࢿ֨Λೝఆ͔ͨ͠ w աڈʹͲͷΑ͏ͳۀ຿Λߦ͍Ͳ͏͍ͬͨ੒ՌΛ্͍͛ͯΔͷ͔ ҩྍ෼໺ͰͷϢʔεέʔε
  21. w ΦʔετϥϦΞɾίϞϯ΢Σϧεۜߦʢ$#"ʣ͸ɺ೥݄೔ɺ߽اۀࣾͱͷఏܞͷ΋ ͱɺϒϩοΫνΣʔϯΛϕʔεͱ͢Δ๵қϓϥοτϑΥʔϜʹΑͬͯɺ߽ೆ౦෦ϏΫτϦΞ͔Β υΠπ๺෦ϋϯϒϧάʹग़ՙ͞ΕͨΞʔϞϯυτϯͷ༌ૹϓϩηεͷ௥੻ʹ੒ޭͨ͜͠ͱΛ ൃදͨ͠ɻ αϓϥΠνΣʔϯͰͷϢʔεέʔε ֤εςοϓͷঢ়گΛϒ ϩοΫνΣʔϯ্ʹه ࿥͢Δ͜ͱͰग़ՙঢ়گ ΛϦΞϧλΠϜʹ೺Ѳ

    *P5ٕज़ͱ૊Έ߹ΘͤΔ͜ͱͰτ ϥοΫ΍૔ݿͷঢ়گΛ֬ೝՄೳ ྫ͑͹ɺอ؅Թ౓͕ҰఆҎ্ߴ ͘ͳͬͨ৔߹ʹ͸༌ૹΛதࢭ͢ ΔͳͲͱ͍ͬͨ͜ͱΛεϚʔτ ίϯτϥΫτͰࣗಈతʹࣥߦ
  22. ։ൃϩʔυϚοϓ

  23. w ҎԼͷϖʔδͰ֬ೝՄೳ w IUUQTHJUIVCDPNFUIFSFVNXJLJXJLJ3FMFBTFT ։ൃϩʔυϚοϓ 1SFSFMFBTFTUFQ0MZNQJDUFTUOFUMBVODIFE.BZ 3FMFBTFTUFQ'SPOUJFS MBVODIFE+VMZ 3FMFBTFTUFQ)PNFTUFBE MBVODIFE.BSDI

    3FMFBTFTUFQ%"0)BSE'PSL 3FMFBTFTUFQ5BOHFSJOF8IJTUMF 3FMFBTFTUFQ4QVSJPVT%SBHPO 3FMFBTF4UFQ.FUSPQPMJTQIBTF#Z[BOUJVN 0DUPCFS 3FMFBTF4UFQ.FUSPQPMJTQIBTF$POTUBOUJOPQMF 5#" FYQFDUFEJO 3FMFBTF4UFQ'PVS4FSFOJUZ 5#"
  24. 4FSFOJUZ w 1SPPGPG4UBLF΁ͷҠߦ w 1SPPGPG8PSLͰ͸ϚΠχϯάʹΑΓେྔͷిྗΛ ফඅ͢Δ w &UIFSͷอ༗ྔʹԠͨ͡࢓૊Έ w γϟʔσΟϯά

    w ฒྻॲཧ
  25. 4DBMBCJMJUZ w ΠʔαϦΞϜͰ͸4DBMBCJMJUZ͕͠͹͠͹໰୊ͱͳΔ w ͳͥ೉͍͠ͷ͔ʁ w ҎԼͷࡾͭΛಉ࣌ʹຬͨ͢͜ͱ͕೉͍͠ w ׬શͳඇதԝूݖ w

    ηΩϡϦςΟɾ߈ܸ଱ੑ w εέʔϥϏϦςΟ
  26. &*1T w ΠʔαϦΞϜʹؔͯ͠ͷ։ൃʹڵຯͷ͋Δํ͸ w IUUQTHJUIVCDPNFUIFSFVN&*14JTTVFT w &UIFSFVN*NQSPWFNFOU1SPQPTBMT

  27. ։ൃπʔϧͳͲ

  28. ։ൃπʔϧ঺հ w .FUBNBTL w 5SV⒐F w 0QFO;FQQFMJO w (BOBDIF w

    *OGVSB
  29. .FUBNBTL w $ISPNFͰར༻Ͱ͖Δ΢ΥϨοτ w %"QQTΛར༻͢Δ৔߹͸ඞਢ w τʔΫϯͷߪೖ΍ૹ৴

  30. 5SV⒐F w %"QQT։ൃ༻ͷϑϨʔϜϫʔΫ w σϓϩΠɺςετͳͲ΋׬උ

  31. 0QFO;FQQFMJO w εϚʔτίϯτϥΫτΛ࣮૷͢ΔͨΊͷϑϨʔϜϫʔ Ϋ w &3$ͷػೳ͕࣮૷͞Ε͍ͯͨΓɺ*$0ͷͨΊͷػೳ͕ ࣮૷͞Ε͍ͯΔ w جຊతʹಠ࣮ࣗ૷͠ͳ͍ͰͳΔ΂͘ར༻͢Δ

  32. (BOBDIF w ϩʔΧϧ؀ڥʹΠʔαϦΞϜͷϒϩοΫνΣʔϯΛಈ ͔ͤΔπʔϧ w ϩʔΧϧ։ൃʹศར

  33. *OGVSB w ΠʔαϦΞϜͷϗεςΟϯάαʔϏε w ࣗલͰϊʔυΛ༻ҙ͠ͳͯ͘΋ྑ͍ w ςετωοτʹ΋ରԠ

  34. ։ൃશମ૾ 0QFO;FQQFMJO ϩʔΧϧ։ൃ؀ڥ ίʔσΟϯά ϩʔΧϧ σϓϩΠ ςετωοτ ຊ൪ΠʔαϦΞϜ σϓϩΠ σϓϩΠ

  35. ·ͱΊ

  36. ·ͱΊ w ࠓ೔࿩ͨ͜͠ͱ w ΠʔαϦΞϜͷجຊతͳ஌ࣝ w Ϣʔεέʔε঺հ w ΠʔαϦΞϜͷ։ൃϩʔυϚοϓͱࠓޙ w

    ωΫετεςοϓGPSΤϯδχΞ w ࣗ෼ͷ&3$Λൃߦͯ͠ΈΔ ؆୯  w $SZQUP;PNCJFTΛ΍ͬͯΈΔ ָ͍͠